diff --git a/.github/workflows/ql-for-ql-build.yml b/.github/workflows/ql-for-ql-build.yml index 9c568a9b5729..e05a7c39c4b8 100644 --- a/.github/workflows/ql-for-ql-build.yml +++ b/.github/workflows/ql-for-ql-build.yml @@ -27,6 +27,7 @@ jobs: uses: github/codeql-action/init@main with: languages: javascript # does not matter + tools: nightly - uses: ./.github/actions/os-version id: os_version ### Build the extractor ### diff --git a/.github/workflows/ql-for-ql-tests.yml b/.github/workflows/ql-for-ql-tests.yml index fdb9da284cef..e21860519041 100644 --- a/.github/workflows/ql-for-ql-tests.yml +++ b/.github/workflows/ql-for-ql-tests.yml @@ -30,6 +30,7 @@ jobs: uses: github/codeql-action/init@main with: languages: javascript # does not matter + tools: nightly - uses: ./.github/actions/os-version id: os_version - uses: actions/cache@v3 @@ -75,6 +76,7 @@ jobs: uses: github/codeql-action/init@main with: languages: javascript # does not matter + tools: nightly - uses: ./.github/actions/os-version id: os_version - uses: actions/cache@v3 diff --git a/MODULE.bazel b/MODULE.bazel index 8ba6c2fcd8c8..9b326127ce7b 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -24,7 +24,7 @@ bazel_dep(name = "bazel_skylib", version = "1.8.1") bazel_dep(name = "abseil-cpp", version = "20240116.1", repo_name = "absl") bazel_dep(name = "nlohmann_json", version = "3.11.3", repo_name = "json") bazel_dep(name = "fmt", version = "12.1.0-codeql.1") -bazel_dep(name = "rules_kotlin", version = "2.1.3-codeql.1") +bazel_dep(name = "rules_kotlin", version = "2.2.0-codeql.1") bazel_dep(name = "gazelle", version = "0.40.0") bazel_dep(name = "rules_dotnet", version = "0.21.5-codeql.1") bazel_dep(name = "googletest", version = "1.14.0.bcr.1") @@ -221,10 +221,6 @@ use_repo( kotlin_extractor_deps, "codeql_kotlin_defaults", "codeql_kotlin_embeddable", - "kotlin-compiler-1.6.0", - "kotlin-compiler-1.6.20", - "kotlin-compiler-1.7.0", - "kotlin-compiler-1.7.20", "kotlin-compiler-1.8.0", "kotlin-compiler-1.9.0-Beta", "kotlin-compiler-1.9.20-Beta", @@ -234,10 +230,7 @@ use_repo( "kotlin-compiler-2.1.20-Beta1", "kotlin-compiler-2.2.0-Beta1", "kotlin-compiler-2.2.20-Beta2", - "kotlin-compiler-embeddable-1.6.0", - "kotlin-compiler-embeddable-1.6.20", - "kotlin-compiler-embeddable-1.7.0", - "kotlin-compiler-embeddable-1.7.20", + "kotlin-compiler-2.3.0", "kotlin-compiler-embeddable-1.8.0", "kotlin-compiler-embeddable-1.9.0-Beta", "kotlin-compiler-embeddable-1.9.20-Beta", @@ -247,10 +240,7 @@ use_repo( "kotlin-compiler-embeddable-2.1.20-Beta1", "kotlin-compiler-embeddable-2.2.0-Beta1", "kotlin-compiler-embeddable-2.2.20-Beta2", - "kotlin-stdlib-1.6.0", - "kotlin-stdlib-1.6.20", - "kotlin-stdlib-1.7.0", - "kotlin-stdlib-1.7.20", + "kotlin-compiler-embeddable-2.3.0", "kotlin-stdlib-1.8.0", "kotlin-stdlib-1.9.0-Beta", "kotlin-stdlib-1.9.20-Beta", @@ -260,14 +250,15 @@ use_repo( "kotlin-stdlib-2.1.20-Beta1", "kotlin-stdlib-2.2.0-Beta1", "kotlin-stdlib-2.2.20-Beta2", + "kotlin-stdlib-2.3.0", ) go_sdk = use_extension("@rules_go//go:extensions.bzl", "go_sdk") -go_sdk.download(version = "1.25.0") +go_sdk.download(version = "1.26.0") go_deps = use_extension("@gazelle//:extensions.bzl", "go_deps") go_deps.from_file(go_mod = "//go/extractor:go.mod") -use_repo(go_deps, "org_golang_x_mod", "org_golang_x_tools") +use_repo(go_deps, "com_github_stretchr_testify", "org_golang_x_mod", "org_golang_x_tools") ripunzip_archive = use_repo_rule("//misc/ripunzip:ripunzip.bzl", "ripunzip_archive") diff --git a/actions/ql/lib/CHANGELOG.md b/actions/ql/lib/CHANGELOG.md index 1759333d659d..d2e85ddb6a27 100644 --- a/actions/ql/lib/CHANGELOG.md +++ b/actions/ql/lib/CHANGELOG.md @@ -1,3 +1,9 @@ +## 0.4.27 + +### Bug Fixes + +* Fixed a crash when analysing a `${{ ... }}` expression over around 300 characters in length. + ## 0.4.26 ### Major Analysis Improvements diff --git a/actions/ql/lib/change-notes/released/0.4.27.md b/actions/ql/lib/change-notes/released/0.4.27.md new file mode 100644 index 000000000000..d56c7bd36e89 --- /dev/null +++ b/actions/ql/lib/change-notes/released/0.4.27.md @@ -0,0 +1,5 @@ +## 0.4.27 + +### Bug Fixes + +* Fixed a crash when analysing a `${{ ... }}` expression over around 300 characters in length. diff --git a/actions/ql/lib/codeql-pack.release.yml b/actions/ql/lib/codeql-pack.release.yml index 06a4605c7674..5e24b634389f 100644 --- a/actions/ql/lib/codeql-pack.release.yml +++ b/actions/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.4.26 +lastReleaseVersion: 0.4.27 diff --git a/actions/ql/lib/codeql/actions/ast/internal/Ast.qll b/actions/ql/lib/codeql/actions/ast/internal/Ast.qll index b922214e21c5..6c2adbf461fd 100644 --- a/actions/ql/lib/codeql/actions/ast/internal/Ast.qll +++ b/actions/ql/lib/codeql/actions/ast/internal/Ast.qll @@ -27,8 +27,8 @@ string getADelimitedExpression(YamlString s, int offset) { // not just the last (greedy match) or first (reluctant match). result = s.getValue() - .regexpFind("\\$\\{\\{(?:[^}]|}(?!}))*\\}\\}", _, offset) - .regexpCapture("(\\$\\{\\{(?:[^}]|}(?!}))*\\}\\})", 1) + .regexpFind("\\$\\{\\{(?:[^}]|}(?!}))*+\\}\\}", _, offset) + .regexpCapture("(\\$\\{\\{(?:[^}]|}(?!}))*+\\}\\})", 1) .trim() } diff --git a/actions/ql/lib/qlpack.yml b/actions/ql/lib/qlpack.yml index 4aeb44050836..d700f90710ab 100644 --- a/actions/ql/lib/qlpack.yml +++ b/actions/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/actions-all -version: 0.4.26 +version: 0.4.28-dev library: true warnOnImplicitThis: true dependencies: diff --git a/actions/ql/src/CHANGELOG.md b/actions/ql/src/CHANGELOG.md index f667d2841851..ebf6b7214c99 100644 --- a/actions/ql/src/CHANGELOG.md +++ b/actions/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.6.19 + +No user-facing changes. + ## 0.6.18 No user-facing changes. diff --git a/actions/ql/src/change-notes/released/0.6.19.md b/actions/ql/src/change-notes/released/0.6.19.md new file mode 100644 index 000000000000..db142fe8aed1 --- /dev/null +++ b/actions/ql/src/change-notes/released/0.6.19.md @@ -0,0 +1,3 @@ +## 0.6.19 + +No user-facing changes. diff --git a/actions/ql/src/codeql-pack.release.yml b/actions/ql/src/codeql-pack.release.yml index b694a16787b1..2baec50a823b 100644 --- a/actions/ql/src/codeql-pack.release.yml +++ b/actions/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.6.18 +lastReleaseVersion: 0.6.19 diff --git a/actions/ql/src/qlpack.yml b/actions/ql/src/qlpack.yml index f8b801a168a5..7c19f90be064 100644 --- a/actions/ql/src/qlpack.yml +++ b/actions/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/actions-queries -version: 0.6.18 +version: 0.6.20-dev library: false warnOnImplicitThis: true groups: [actions, queries] diff --git a/actions/ql/test/library-tests/.github/workflows/commands.yml b/actions/ql/test/library-tests/basic/.github/workflows/commands.yml similarity index 100% rename from actions/ql/test/library-tests/.github/workflows/commands.yml rename to actions/ql/test/library-tests/basic/.github/workflows/commands.yml diff --git a/actions/ql/test/library-tests/.github/workflows/expression_nodes.yml b/actions/ql/test/library-tests/basic/.github/workflows/expression_nodes.yml similarity index 100% rename from actions/ql/test/library-tests/.github/workflows/expression_nodes.yml rename to actions/ql/test/library-tests/basic/.github/workflows/expression_nodes.yml diff --git a/actions/ql/test/library-tests/.github/workflows/many_strings.yml b/actions/ql/test/library-tests/basic/.github/workflows/many_strings.yml similarity index 100% rename from actions/ql/test/library-tests/.github/workflows/many_strings.yml rename to actions/ql/test/library-tests/basic/.github/workflows/many_strings.yml diff --git a/actions/ql/test/library-tests/.github/workflows/multiline.yml b/actions/ql/test/library-tests/basic/.github/workflows/multiline.yml similarity index 100% rename from actions/ql/test/library-tests/.github/workflows/multiline.yml rename to actions/ql/test/library-tests/basic/.github/workflows/multiline.yml diff --git a/actions/ql/test/library-tests/.github/workflows/multiline2.yml b/actions/ql/test/library-tests/basic/.github/workflows/multiline2.yml similarity index 100% rename from actions/ql/test/library-tests/.github/workflows/multiline2.yml rename to actions/ql/test/library-tests/basic/.github/workflows/multiline2.yml diff --git a/actions/ql/test/library-tests/.github/workflows/poisonable_steps.yml b/actions/ql/test/library-tests/basic/.github/workflows/poisonable_steps.yml similarity index 100% rename from actions/ql/test/library-tests/.github/workflows/poisonable_steps.yml rename to actions/ql/test/library-tests/basic/.github/workflows/poisonable_steps.yml diff --git a/actions/ql/test/library-tests/.github/workflows/shell.yml b/actions/ql/test/library-tests/basic/.github/workflows/shell.yml similarity index 100% rename from actions/ql/test/library-tests/.github/workflows/shell.yml rename to actions/ql/test/library-tests/basic/.github/workflows/shell.yml diff --git a/actions/ql/test/library-tests/.github/workflows/test.yml b/actions/ql/test/library-tests/basic/.github/workflows/test.yml similarity index 100% rename from actions/ql/test/library-tests/.github/workflows/test.yml rename to actions/ql/test/library-tests/basic/.github/workflows/test.yml diff --git a/actions/ql/test/library-tests/commands.expected b/actions/ql/test/library-tests/basic/commands.expected similarity index 100% rename from actions/ql/test/library-tests/commands.expected rename to actions/ql/test/library-tests/basic/commands.expected diff --git a/actions/ql/test/library-tests/commands.ql b/actions/ql/test/library-tests/basic/commands.ql similarity index 100% rename from actions/ql/test/library-tests/commands.ql rename to actions/ql/test/library-tests/basic/commands.ql diff --git a/actions/ql/test/library-tests/poisonable_steps.expected b/actions/ql/test/library-tests/basic/poisonable_steps.expected similarity index 100% rename from actions/ql/test/library-tests/poisonable_steps.expected rename to actions/ql/test/library-tests/basic/poisonable_steps.expected diff --git a/actions/ql/test/library-tests/poisonable_steps.ql b/actions/ql/test/library-tests/basic/poisonable_steps.ql similarity index 100% rename from actions/ql/test/library-tests/poisonable_steps.ql rename to actions/ql/test/library-tests/basic/poisonable_steps.ql diff --git a/actions/ql/test/library-tests/test.expected b/actions/ql/test/library-tests/basic/test.expected similarity index 100% rename from actions/ql/test/library-tests/test.expected rename to actions/ql/test/library-tests/basic/test.expected diff --git a/actions/ql/test/library-tests/test.ql b/actions/ql/test/library-tests/basic/test.ql similarity index 100% rename from actions/ql/test/library-tests/test.ql rename to actions/ql/test/library-tests/basic/test.ql diff --git a/actions/ql/test/library-tests/workflowenum.expected b/actions/ql/test/library-tests/basic/workflowenum.expected similarity index 100% rename from actions/ql/test/library-tests/workflowenum.expected rename to actions/ql/test/library-tests/basic/workflowenum.expected diff --git a/actions/ql/test/library-tests/workflowenum.ql b/actions/ql/test/library-tests/basic/workflowenum.ql similarity index 100% rename from actions/ql/test/library-tests/workflowenum.ql rename to actions/ql/test/library-tests/basic/workflowenum.ql diff --git a/actions/ql/test/library-tests/very-long-expression/.github/workflows/very_long_expression_node.yml b/actions/ql/test/library-tests/very-long-expression/.github/workflows/very_long_expression_node.yml new file mode 100644 index 000000000000..d94655caae13 --- /dev/null +++ b/actions/ql/test/library-tests/very-long-expression/.github/workflows/very_long_expression_node.yml @@ -0,0 +1,1002 @@ +on: issue_comment + +jobs: + echo-chamber: + runs-on: ubuntu-latest + steps: + - run: | + LINE 1 echo '${{ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + }}' diff --git a/actions/ql/test/library-tests/very-long-expression/very_long_expression_node.expected b/actions/ql/test/library-tests/very-long-expression/very_long_expression_node.expected new file mode 100644 index 000000000000..0757bb2f7dc9 --- /dev/null +++ b/actions/ql/test/library-tests/very-long-expression/very_long_expression_node.expected @@ -0,0 +1 @@ +| 97418 | diff --git a/actions/ql/test/library-tests/very-long-expression/very_long_expression_node.ql b/actions/ql/test/library-tests/very-long-expression/very_long_expression_node.ql new file mode 100644 index 000000000000..d83ce6c7ea9c --- /dev/null +++ b/actions/ql/test/library-tests/very-long-expression/very_long_expression_node.ql @@ -0,0 +1,5 @@ +import codeql.actions.ast.internal.Ast + +int getAnExpressionLength() { result = any(ExpressionImpl e).toString().length() } + +select max(getAnExpressionLength()) diff --git a/cpp/downgrades/7e7c2f55670f8123d514cf542ccb1938118ac561/old.dbscheme b/cpp/downgrades/7e7c2f55670f8123d514cf542ccb1938118ac561/old.dbscheme new file mode 100644 index 000000000000..7e7c2f55670f --- /dev/null +++ b/cpp/downgrades/7e7c2f55670f8123d514cf542ccb1938118ac561/old.dbscheme @@ -0,0 +1,2517 @@ + +/*- 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: + * + * gcc -c f1.c f2.c f3.c + * + * 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: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#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 +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file 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 +); + +/** + * 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( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int 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`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + 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 +); + +/*- C++ dbscheme -*/ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +/** + * Gives the TRAP filename that `trap` is associated with. + * For debugging only. + */ +trap_filename( + int trap: @trap, + string filename: string ref +); + +/** + * In `build-mode: none` overlay mode, indicates that `source_file` + * (`/path/to/foo.c`) uses the TRAP file `trap_file`; i.e. it is the + * TRAP file corresponding to `foo.c`, something it transitively + * includes, or a template instantiation it transitively uses. + */ +source_file_uses_trap( + string source_file: string ref, + int trap_file: @trap ref +); + +/** + * Holds if there is a definition of `element` in TRAP file `trap_file`. + */ +in_trap( + int element: @element ref, + int trap_file: @trap ref +); + +pch_uses( + int pch: @pch ref, + int compilation: @compilation ref, + int id: @file ref +) + +#keyset[pch, compilation] +pch_creations( + int pch: @pch, + int compilation: @compilation ref, + int from: @file ref +) + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location_default ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +case @function.kind of + 0 = @unknown_function +| 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +// ... 6 = @builtin_function deprecated // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +builtin_functions( + int id: @function ref +) + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +// ... 40 _Decimal32 +// ... 41 _Decimal64 +// ... 42 _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +case @type_operator.kind of + 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +case @usertype.kind of + 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location_default ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location_default ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype + | @decltype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_default ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_default ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +| 394 = @isinvocable +| 395 = @isnothrowinvocable +| 396 = @isbitwisecloneable +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + | @isinvocable + | @isnothrowinvocable + | @isbitwisecloneable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +param_ref_to_this( + int expr: @param_ref ref +) + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_default ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 17 = @ppd_embed +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +embeds( + unique int id: @ppd_embed ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/*- Database metadata -*/ + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +/*- Overlay support -*/ + +/** + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. + */ +overlayChangedFiles( + string path: string ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; diff --git a/cpp/downgrades/7e7c2f55670f8123d514cf542ccb1938118ac561/semmlecode.dbscheme b/cpp/downgrades/7e7c2f55670f8123d514cf542ccb1938118ac561/semmlecode.dbscheme new file mode 100644 index 000000000000..9439176c1d13 --- /dev/null +++ b/cpp/downgrades/7e7c2f55670f8123d514cf542ccb1938118ac561/semmlecode.dbscheme @@ -0,0 +1,2489 @@ + +/*- 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: + * + * gcc -c f1.c f2.c f3.c + * + * 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: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#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 +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file 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 +); + +/** + * 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( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int 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`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + 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 +); + +/*- C++ dbscheme -*/ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +pch_uses( + int pch: @pch ref, + int compilation: @compilation ref, + int id: @file ref +) + +#keyset[pch, compilation] +pch_creations( + int pch: @pch, + int compilation: @compilation ref, + int from: @file ref +) + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location_default ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +case @function.kind of + 0 = @unknown_function +| 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +// ... 6 = @builtin_function deprecated // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +builtin_functions( + int id: @function ref +) + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +// ... 40 _Decimal32 +// ... 41 _Decimal64 +// ... 42 _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +case @type_operator.kind of + 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +case @usertype.kind of + 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location_default ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location_default ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype + | @decltype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_default ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_default ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +| 394 = @isinvocable +| 395 = @isnothrowinvocable +| 396 = @isbitwisecloneable +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + | @isinvocable + | @isnothrowinvocable + | @isbitwisecloneable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +param_ref_to_this( + int expr: @param_ref ref +) + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_default ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 17 = @ppd_embed +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +embeds( + unique int id: @ppd_embed ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/*- Database metadata -*/ + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +/*- Overlay support -*/ + +/** + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. + */ +overlayChangedFiles( + string path: string ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; diff --git a/cpp/downgrades/7e7c2f55670f8123d514cf542ccb1938118ac561/upgrade.properties b/cpp/downgrades/7e7c2f55670f8123d514cf542ccb1938118ac561/upgrade.properties new file mode 100644 index 000000000000..2f526418ae81 --- /dev/null +++ b/cpp/downgrades/7e7c2f55670f8123d514cf542ccb1938118ac561/upgrade.properties @@ -0,0 +1,5 @@ +description: Add trap_filename, source_file_uses_trap and in_trap relations +compatibility: full +trap_filename.rel: delete +source_file_uses_trap.rel: delete +in_trap.rel: delete diff --git a/cpp/downgrades/83100310bf73eefc37c1d8d0ac98b2ca3019c7b6/old.dbscheme b/cpp/downgrades/83100310bf73eefc37c1d8d0ac98b2ca3019c7b6/old.dbscheme new file mode 100644 index 000000000000..83100310bf73 --- /dev/null +++ b/cpp/downgrades/83100310bf73eefc37c1d8d0ac98b2ca3019c7b6/old.dbscheme @@ -0,0 +1,2483 @@ + +/*- 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: + * + * gcc -c f1.c f2.c f3.c + * + * 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: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#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 +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file 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 +); + +/** + * 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( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int 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`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + 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 +); + +/*- C++ dbscheme -*/ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +pch_uses( + int pch: @pch ref, + int compilation: @compilation ref, + int id: @file ref +) + +#keyset[pch, compilation] +pch_creations( + int pch: @pch, + int compilation: @compilation ref, + int from: @file ref +) + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location_default ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +case @function.kind of + 0 = @unknown_function +| 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +// ... 6 = @builtin_function deprecated // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +builtin_functions( + int id: @function ref +) + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +// ... 40 _Decimal32 +// ... 41 _Decimal64 +// ... 42 _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +case @type_operator.kind of + 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +case @usertype.kind of + 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location_default ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location_default ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype + | @decltype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_default ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_default ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +| 394 = @isinvocable +| 395 = @isnothrowinvocable +| 396 = @isbitwisecloneable +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + | @isinvocable + | @isnothrowinvocable + | @isbitwisecloneable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +param_ref_to_this( + int expr: @param_ref ref +) + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_default ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/*- Database metadata -*/ + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +/*- Overlay support -*/ + +/** + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. + */ +overlayChangedFiles( + string path: string ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; diff --git a/cpp/downgrades/83100310bf73eefc37c1d8d0ac98b2ca3019c7b6/semmlecode.dbscheme b/cpp/downgrades/83100310bf73eefc37c1d8d0ac98b2ca3019c7b6/semmlecode.dbscheme new file mode 100644 index 000000000000..1402ab319d20 --- /dev/null +++ b/cpp/downgrades/83100310bf73eefc37c1d8d0ac98b2ca3019c7b6/semmlecode.dbscheme @@ -0,0 +1,2479 @@ + +/*- 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: + * + * gcc -c f1.c f2.c f3.c + * + * 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: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#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 +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file 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 +); + +/** + * 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( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int 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`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + 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 +); + +/*- C++ dbscheme -*/ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +pch_uses( + int pch: @pch ref, + int compilation: @compilation ref, + int id: @file ref +) + +#keyset[pch, compilation] +pch_creations( + int pch: @pch, + int compilation: @compilation ref, + int from: @file ref +) + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location_default ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +case @function.kind of + 0 = @unknown_function +| 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +// ... 6 = @builtin_function deprecated // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +builtin_functions( + int id: @function ref +) + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +// ... 40 _Decimal32 +// ... 41 _Decimal64 +// ... 42 _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +case @type_operator.kind of + 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +case @usertype.kind of + 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location_default ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location_default ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype + | @decltype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_default ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_default ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +| 394 = @isinvocable +| 395 = @isnothrowinvocable +| 396 = @isbitwisecloneable +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + | @isinvocable + | @isnothrowinvocable + | @isbitwisecloneable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +param_ref_to_this( + int expr: @param_ref ref +) + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_default ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +/** + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. + */ +overlayChangedFiles( + string path: string ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; diff --git a/cpp/downgrades/83100310bf73eefc37c1d8d0ac98b2ca3019c7b6/upgrade.properties b/cpp/downgrades/83100310bf73eefc37c1d8d0ac98b2ca3019c7b6/upgrade.properties new file mode 100644 index 000000000000..00fae2d3bc61 --- /dev/null +++ b/cpp/downgrades/83100310bf73eefc37c1d8d0ac98b2ca3019c7b6/upgrade.properties @@ -0,0 +1,2 @@ +description: Sections for databaseMetadata and overlayChangedFiles +compatibility: full diff --git a/cpp/downgrades/9439176c1d1312787926458dd54d65a849069118/old.dbscheme b/cpp/downgrades/9439176c1d1312787926458dd54d65a849069118/old.dbscheme new file mode 100644 index 000000000000..9439176c1d13 --- /dev/null +++ b/cpp/downgrades/9439176c1d1312787926458dd54d65a849069118/old.dbscheme @@ -0,0 +1,2489 @@ + +/*- 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: + * + * gcc -c f1.c f2.c f3.c + * + * 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: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#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 +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file 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 +); + +/** + * 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( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int 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`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + 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 +); + +/*- C++ dbscheme -*/ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +pch_uses( + int pch: @pch ref, + int compilation: @compilation ref, + int id: @file ref +) + +#keyset[pch, compilation] +pch_creations( + int pch: @pch, + int compilation: @compilation ref, + int from: @file ref +) + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location_default ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +case @function.kind of + 0 = @unknown_function +| 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +// ... 6 = @builtin_function deprecated // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +builtin_functions( + int id: @function ref +) + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +// ... 40 _Decimal32 +// ... 41 _Decimal64 +// ... 42 _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +case @type_operator.kind of + 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +case @usertype.kind of + 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location_default ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location_default ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype + | @decltype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_default ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_default ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +| 394 = @isinvocable +| 395 = @isnothrowinvocable +| 396 = @isbitwisecloneable +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + | @isinvocable + | @isnothrowinvocable + | @isbitwisecloneable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +param_ref_to_this( + int expr: @param_ref ref +) + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_default ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 17 = @ppd_embed +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +embeds( + unique int id: @ppd_embed ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/*- Database metadata -*/ + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +/*- Overlay support -*/ + +/** + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. + */ +overlayChangedFiles( + string path: string ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; diff --git a/cpp/downgrades/9439176c1d1312787926458dd54d65a849069118/preprocdirects.ql b/cpp/downgrades/9439176c1d1312787926458dd54d65a849069118/preprocdirects.ql new file mode 100644 index 000000000000..c8f927943bd9 --- /dev/null +++ b/cpp/downgrades/9439176c1d1312787926458dd54d65a849069118/preprocdirects.ql @@ -0,0 +1,13 @@ +class PreprocessorDirective extends @preprocdirect { + string toString() { none() } +} + +class Location extends @location_default { + string toString() { none() } +} + +from PreprocessorDirective ppd, int kind, int kind_new, Location l +where + preprocdirects(ppd, kind, l) and + if kind = 17 then kind_new = /* ppd_warning */ 18 else kind_new = kind +select ppd, kind_new, l diff --git a/cpp/downgrades/9439176c1d1312787926458dd54d65a849069118/semmlecode.cpp.dbscheme b/cpp/downgrades/9439176c1d1312787926458dd54d65a849069118/semmlecode.cpp.dbscheme new file mode 100644 index 000000000000..83100310bf73 --- /dev/null +++ b/cpp/downgrades/9439176c1d1312787926458dd54d65a849069118/semmlecode.cpp.dbscheme @@ -0,0 +1,2483 @@ + +/*- 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: + * + * gcc -c f1.c f2.c f3.c + * + * 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: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#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 +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file 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 +); + +/** + * 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( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int 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`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + 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 +); + +/*- C++ dbscheme -*/ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +pch_uses( + int pch: @pch ref, + int compilation: @compilation ref, + int id: @file ref +) + +#keyset[pch, compilation] +pch_creations( + int pch: @pch, + int compilation: @compilation ref, + int from: @file ref +) + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location_default ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +case @function.kind of + 0 = @unknown_function +| 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +// ... 6 = @builtin_function deprecated // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +builtin_functions( + int id: @function ref +) + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +// ... 40 _Decimal32 +// ... 41 _Decimal64 +// ... 42 _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +case @type_operator.kind of + 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +case @usertype.kind of + 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location_default ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location_default ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype + | @decltype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_default ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_default ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +| 394 = @isinvocable +| 395 = @isnothrowinvocable +| 396 = @isbitwisecloneable +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + | @isinvocable + | @isnothrowinvocable + | @isbitwisecloneable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +param_ref_to_this( + int expr: @param_ref ref +) + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_default ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/*- Database metadata -*/ + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +/*- Overlay support -*/ + +/** + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. + */ +overlayChangedFiles( + string path: string ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; diff --git a/cpp/downgrades/9439176c1d1312787926458dd54d65a849069118/upgrade.properties b/cpp/downgrades/9439176c1d1312787926458dd54d65a849069118/upgrade.properties new file mode 100644 index 000000000000..a1d5935c29b8 --- /dev/null +++ b/cpp/downgrades/9439176c1d1312787926458dd54d65a849069118/upgrade.properties @@ -0,0 +1,4 @@ +description: Support embed preprocessor directive +compatibility: partial +embeds.rel: delete +preprocdirects.rel: run preprocdirects.qlo diff --git a/cpp/ql/lib/CHANGELOG.md b/cpp/ql/lib/CHANGELOG.md index a626fec99ae5..6f256c9499b4 100644 --- a/cpp/ql/lib/CHANGELOG.md +++ b/cpp/ql/lib/CHANGELOG.md @@ -1,3 +1,21 @@ +## 7.1.0 + +### New Features + +* Added a subclass `Embed` of `PreprocessorDirective` for C23 and C++26 `#embed` preprocessor directives. +* Added modules `DataFlow::ParameterizedBarrierGuard` and `DataFlow::ParameterizedInstructionBarrierGuard`. These modules provide the same features as `DataFlow::BarrierGuard` and `DataFlow::InstructionBarrierGuard`, but allow for an additional parameter to support properly using them in dataflow configurations that uses flow states. + +### Minor Analysis Improvements + +* The `Buffer.qll` library will no longer report incorrect buffer sizes on certain malformed databases. As a result, the queries `cpp/static-buffer-overflow`, `cpp/overflow-buffer`, `cpp/badly-bounded-write`, `cpp/overrunning-write`, `cpp/overrunning-write-with-float`, and `cpp/very-likely-overrunning-write` will report fewer false positives on such databases. +* Added `taint` summary models and `sql-injection` barrier models for the MySQL `mysql_real_escape_string` and `mysql_real_escape_string_quote` escaping functions. +* The predicate `SummarizedCallable.propagatesFlow` has been extended with the columns `Provenance p` and `boolean isExact`, and as a consequence the predicates `SummarizedCallable.hasProvenance` and `SummarizedCallable.hasExactModel` have been removed. + +### Bug Fixes + +* Fixed a bug in the `GuardCondition` library which sometimes prevented binary logical operators from being recognized as guard conditions. As a result, queries using `GuardCondition` may see improved results. +* Fixed a bug which caused `Node.asDefinition()` to not have a result for certain assignments. + ## 7.0.0 ### Breaking Changes diff --git a/cpp/ql/lib/change-notes/2026-02-03-windows-remote-flow-sources.md b/cpp/ql/lib/change-notes/2026-02-03-windows-remote-flow-sources.md new file mode 100644 index 000000000000..0a884df065a3 --- /dev/null +++ b/cpp/ql/lib/change-notes/2026-02-03-windows-remote-flow-sources.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Added remote flow source models for the `winhttp.h` windows header and the Azure SDK core library for C/C++. \ No newline at end of file diff --git a/cpp/ql/lib/change-notes/released/7.1.0.md b/cpp/ql/lib/change-notes/released/7.1.0.md new file mode 100644 index 000000000000..58ee0e9b6ef1 --- /dev/null +++ b/cpp/ql/lib/change-notes/released/7.1.0.md @@ -0,0 +1,17 @@ +## 7.1.0 + +### New Features + +* Added a subclass `Embed` of `PreprocessorDirective` for C23 and C++26 `#embed` preprocessor directives. +* Added modules `DataFlow::ParameterizedBarrierGuard` and `DataFlow::ParameterizedInstructionBarrierGuard`. These modules provide the same features as `DataFlow::BarrierGuard` and `DataFlow::InstructionBarrierGuard`, but allow for an additional parameter to support properly using them in dataflow configurations that uses flow states. + +### Minor Analysis Improvements + +* The `Buffer.qll` library will no longer report incorrect buffer sizes on certain malformed databases. As a result, the queries `cpp/static-buffer-overflow`, `cpp/overflow-buffer`, `cpp/badly-bounded-write`, `cpp/overrunning-write`, `cpp/overrunning-write-with-float`, and `cpp/very-likely-overrunning-write` will report fewer false positives on such databases. +* Added `taint` summary models and `sql-injection` barrier models for the MySQL `mysql_real_escape_string` and `mysql_real_escape_string_quote` escaping functions. +* The predicate `SummarizedCallable.propagatesFlow` has been extended with the columns `Provenance p` and `boolean isExact`, and as a consequence the predicates `SummarizedCallable.hasProvenance` and `SummarizedCallable.hasExactModel` have been removed. + +### Bug Fixes + +* Fixed a bug in the `GuardCondition` library which sometimes prevented binary logical operators from being recognized as guard conditions. As a result, queries using `GuardCondition` may see improved results. +* Fixed a bug which caused `Node.asDefinition()` to not have a result for certain assignments. diff --git a/cpp/ql/lib/codeql-pack.release.yml b/cpp/ql/lib/codeql-pack.release.yml index e0db21c78694..dcaaa76112a6 100644 --- a/cpp/ql/lib/codeql-pack.release.yml +++ b/cpp/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 7.0.0 +lastReleaseVersion: 7.1.0 diff --git a/cpp/ql/lib/ext/MySql.model.yml b/cpp/ql/lib/ext/MySql.model.yml new file mode 100644 index 000000000000..93608177efdc --- /dev/null +++ b/cpp/ql/lib/ext/MySql.model.yml @@ -0,0 +1,14 @@ +# partial model of the MySQL api +extensions: + - addsTo: + pack: codeql/cpp-all + extensible: summaryModel + data: # namespace, type, subtypes, name, signature, ext, input, output, kind, provenance + - ["", "", False, "mysql_real_escape_string", "", "", "Argument[*2]", "Argument[*1]", "taint", "manual"] + - ["", "", False, "mysql_real_escape_string_quote", "", "", "Argument[*2]", "Argument[*1]", "taint", "manual"] + - addsTo: + pack: codeql/cpp-all + extensible: barrierModel + data: # namespace, type, subtypes, name, signature, ext, output, kind, provenance + - ["", "", False, "mysql_real_escape_string", "", "", "Argument[*1]", "sql-injection", "manual"] + - ["", "", False, "mysql_real_escape_string_quote", "", "", "Argument[*1]", "sql-injection", "manual"] diff --git a/cpp/ql/lib/ext/Windows.model.yml b/cpp/ql/lib/ext/Windows.model.yml index ccebfc9f3401..a2ec30d95bda 100644 --- a/cpp/ql/lib/ext/Windows.model.yml +++ b/cpp/ql/lib/ext/Windows.model.yml @@ -24,6 +24,13 @@ extensions: - ["", "", False, "MapViewOfFileNuma2", "", "", "ReturnValue[*]", "local", "manual"] # ntifs.h - ["", "", False, "NtReadFile", "", "", "Argument[*5]", "local", "manual"] + # winhttp.h + - ["", "", False, "WinHttpReadData", "", "", "Argument[*1]", "remote", "manual"] + - ["", "", False, "WinHttpReadDataEx", "", "", "Argument[*1]", "remote", "manual"] + - ["", "", False, "WinHttpQueryHeaders", "", "", "Argument[*3]", "remote", "manual"] + - ["", "", False, "WinHttpQueryHeadersEx", "", "", "Argument[*5]", "remote", "manual"] + - ["", "", False, "WinHttpQueryHeadersEx", "", "", "Argument[*6]", "remote", "manual"] + - ["", "", False, "WinHttpQueryHeadersEx", "", "", "Argument[**8]", "remote", "manual"] - addsTo: pack: codeql/cpp-all extensible: summaryModel @@ -46,4 +53,6 @@ extensions: - ["", "", False, "RtlMoveMemory", "", "", "Argument[*@1]", "Argument[*@0]", "value", "manual"] - ["", "", False, "RtlMoveVolatileMemory", "", "", "Argument[*@1]", "Argument[*@0]", "value", "manual"] # winternl.h - - ["", "", False, "RtlInitUnicodeString", "", "", "Argument[*1]", "Argument[*0].Field[*Buffer]", "value", "manual"] \ No newline at end of file + - ["", "", False, "RtlInitUnicodeString", "", "", "Argument[*1]", "Argument[*0].Field[*Buffer]", "value", "manual"] + # winhttp.h + - ["", "", False, "WinHttpCrackUrl", "", "", "Argument[*0]", "Argument[*3]", "taint", "manual"] \ No newline at end of file diff --git a/cpp/ql/lib/ext/azure.core.model.yml b/cpp/ql/lib/ext/azure.core.model.yml new file mode 100644 index 000000000000..7c5280b0f180 --- /dev/null +++ b/cpp/ql/lib/ext/azure.core.model.yml @@ -0,0 +1,41 @@ +extensions: + - addsTo: + pack: codeql/cpp-all + extensible: sourceModel + data: # namespace, type, subtypes, name, signature, ext, output, kind, provenance + - ["Azure::Core::Http", "RawResponse", True, "GetHeaders", "", "", "ReturnValue[*]", "remote", "manual"] + - ["Azure::Core::Http", "RawResponse", True, "GetBody", "", "", "ReturnValue[*]", "remote", "manual"] + - ["Azure::Core::Http", "RawResponse", True, "ExtractBodyStream", "", "", "ReturnValue[*]", "remote", "manual"] + - ["Azure::Core::Http", "Request", True, "GetHeaders", "", "", "ReturnValue", "remote", "manual"] + - ["Azure::Core::Http", "Request", True, "GetHeader", "", "", "ReturnValue", "remote", "manual"] + - ["Azure::Core::Http", "Request", True, "GetBodyStream", "", "", "ReturnValue[*]", "remote", "manual"] + + - addsTo: + pack: codeql/cpp-all + extensible: summaryModel + data: # namespace, type, subtypes, name, signature, ext, input, output, kind, provenance + - ["Azure::Core", "Url", True, "Url", "", "", "Argument[*0]", "Argument[-1]", "taint", "manual"] + - ["Azure::Core", "Url", True, "SetScheme", "", "", "Argument[*0]", "Argument[-1]", "taint", "manual"] + - ["Azure::Core", "Url", True, "SetHost", "", "", "Argument[*0]", "Argument[-1]", "taint", "manual"] + - ["Azure::Core", "Url", True, "SetPort", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] + - ["Azure::Core", "Url", True, "SetPath", "", "", "Argument[*0]", "Argument[-1]", "taint", "manual"] + - ["Azure::Core", "Url", True, "SetQueryParameters", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] + - ["Azure::Core", "Url", True, "AppendPath", "", "", "Argument[*0]", "Argument[-1]", "taint", "manual"] + - ["Azure::Core", "Url", True, "AppendQueryParameter", "", "", "Argument[*1]", "Argument[-1]", "taint", "manual"] + - ["Azure::Core", "Url", True, "GetHost", "", "", "Argument[-1]", "ReturnValue[*]", "taint", "manual"] + - ["Azure::Core", "Url", True, "GetPath", "", "", "Argument[-1]", "ReturnValue[*]", "taint", "manual"] + - ["Azure::Core", "Url", True, "GetPort", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["Azure::Core", "Url", True, "GetQueryParameters", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["Azure::Core", "Url", True, "GetScheme", "", "", "Argument[-1]", "ReturnValue[*]", "taint", "manual"] + - ["Azure::Core", "Url", True, "GetRelativeUrl", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["Azure::Core", "Url", True, "GetAbsoluteUrl", "", "", "Argument[-1]", "ReturnValue", "taint", "manual"] + - ["Azure::Core", "Url", True, "Decode", "", "", "Argument[*0]", "ReturnValue", "taint", "manual"] + - ["Azure::Core", "Url", True, "Encode", "", "", "Argument[*0]", "ReturnValue", "taint", "manual"] + - ["Azure::Core::IO", "BodyStream", True, "Read", "", "", "Argument[-1]", "Argument[*0]", "taint", "manual"] + - ["Azure::Core::IO", "BodyStream", True, "ReadToCount", "", "", "Argument[-1]", "Argument[*0]", "taint", "manual"] + - ["Azure::Core::IO", "BodyStream", True, "ReadToEnd", "", "", "Argument[-1]", "ReturnValue.Element", "taint", "manual"] + - ["Azure", "Nullable", True, "Nullable", "", "", "Argument[0]", "Argument[-1]", "taint", "manual"] + - ["Azure", "Nullable", True, "operator=", "", "", "Argument[*0]", "Argument[-1]", "value", "manual"] + - ["Azure", "Nullable", True, "Value", "", "", "Argument[-1]", "ReturnValue[*]", "taint", "manual"] + - ["Azure", "Nullable", True, "operator->", "", "", "Argument[-1]", "ReturnValue[*]", "taint", "manual"] + - ["Azure", "Nullable", True, "operator*", "", "", "Argument[-1]", "ReturnValue[*]", "taint", "manual"] \ No newline at end of file diff --git a/cpp/ql/lib/qlpack.yml b/cpp/ql/lib/qlpack.yml index 0eb6d3814258..eeb5d0adf088 100644 --- a/cpp/ql/lib/qlpack.yml +++ b/cpp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-all -version: 7.0.0 +version: 7.1.1-dev groups: cpp dbscheme: semmlecode.cpp.dbscheme extractor: cpp diff --git a/cpp/ql/lib/semmle/code/cpp/Element.qll b/cpp/ql/lib/semmle/code/cpp/Element.qll index b30503d2c94c..17af69eddacd 100644 --- a/cpp/ql/lib/semmle/code/cpp/Element.qll +++ b/cpp/ql/lib/semmle/code/cpp/Element.qll @@ -192,6 +192,15 @@ class Element extends ElementBase { */ predicate isAffectedByMacro() { affectedByMacro(this) } + /** + * INTERNAL: Do not use. + * + * Holds if this element is affected by the expansion of `mi`. + */ + predicate isAffectedByMacro(MacroInvocation mi) { + affectedbymacroexpansion(underlyingElement(this), unresolveElement(mi)) + } + private Element getEnclosingElementPref() { enclosingfunction(underlyingElement(this), unresolveElement(result)) or result.(Function) = stmtEnclosingElement(this) or diff --git a/cpp/ql/lib/semmle/code/cpp/Macro.qll b/cpp/ql/lib/semmle/code/cpp/Macro.qll index cbffc90d17c1..77139e025e95 100644 --- a/cpp/ql/lib/semmle/code/cpp/Macro.qll +++ b/cpp/ql/lib/semmle/code/cpp/Macro.qll @@ -239,6 +239,9 @@ class MacroInvocation extends MacroAccess { macro_argument_unexpanded(underlyingElement(this), i, result) } + /** Gets the number of arguments for this macro invocation. */ + int getNumberOfArguments() { result = count(int i | exists(this.getUnexpandedArgument(i)) | i) } + /** * Gets the `i`th _expanded_ argument of this macro invocation, where the * first argument has `i = 0`. The result has been expanded for macros _and_ diff --git a/cpp/ql/lib/semmle/code/cpp/Preprocessor.qll b/cpp/ql/lib/semmle/code/cpp/Preprocessor.qll index 6a57f0bcae79..a0dfdcb93822 100644 --- a/cpp/ql/lib/semmle/code/cpp/Preprocessor.qll +++ b/cpp/ql/lib/semmle/code/cpp/Preprocessor.qll @@ -328,3 +328,27 @@ class PreprocessorPragma extends PreprocessorDirective, @ppd_pragma { class PreprocessorLine extends PreprocessorDirective, @ppd_line { override string toString() { result = "#line " + this.getHead() } } + +/** + * A C23 or C++26 `#embed` preprocessor directive. For example, the following code + * contains one `Embed` directive: + * ```cpp + * char arr[] = { + * #embed "bin" + * }; + * ``` + */ +class Embed extends PreprocessorDirective, @ppd_embed { + override string toString() { result = "#embed " + this.getIncludeText() } + + /** + * Gets the token which occurs after `#embed`, for example `"filename"` + * or ``. + */ + string getIncludeText() { result = this.getHead() } + + /** + * Gets the file directly embedded by this `#embed`. + */ + File getEmbeddedFile() { embeds(underlyingElement(this), unresolveElement(result)) } +} diff --git a/cpp/ql/lib/semmle/code/cpp/commons/Buffer.qll b/cpp/ql/lib/semmle/code/cpp/commons/Buffer.qll index 675090ad9584..0ea41672b5f1 100644 --- a/cpp/ql/lib/semmle/code/cpp/commons/Buffer.qll +++ b/cpp/ql/lib/semmle/code/cpp/commons/Buffer.qll @@ -62,11 +62,13 @@ private Class getRootType(FieldAccess fa) { * unspecified type of `v` is a `ReferenceType`. */ private int getVariableSize(Variable v) { - exists(Type t | - t = v.getUnspecifiedType() and - not t instanceof ReferenceType and - result = t.getSize() - ) + result = + unique(Type t | + t = v.getUnspecifiedType() and + not t instanceof ReferenceType + | + t.getSize() + ) } /** @@ -79,30 +81,32 @@ private int getSize(VariableAccess va) { not v instanceof Field and result = getVariableSize(v) or - exists(Class c, int trueSize | - // Otherwise, we find the "outermost" object and compute the size - // as the difference between the size of the type of the "outermost - // object" and the offset of the field relative to that type. - // For example, consider the following structs: - // ``` - // struct S { - // uint32_t x; - // uint32_t y; - // }; - // struct S2 { - // S s; - // uint32_t z; - // }; - // ``` - // Given an object `S2 s2` the size of the buffer `&s2.s.y` - // is the size of the base object type (i.e., `S2`) minutes the offset - // of `y` relative to the type `S2` (i.e., `4`). So the size of the - // buffer is `12 - 4 = 8`. - c = getRootType(va) and - // we calculate the size based on the last field, to avoid including any padding after it - trueSize = max(Field f | | f.getOffsetInClass(c) + getVariableSize(f)) and - result = trueSize - v.(Field).getOffsetInClass(c) - ) + result = + unique(Class c, int trueSize | + // Otherwise, we find the "outermost" object and compute the size + // as the difference between the size of the type of the "outermost + // object" and the offset of the field relative to that type. + // For example, consider the following structs: + // ``` + // struct S { + // uint32_t x; + // uint32_t y; + // }; + // struct S2 { + // S s; + // uint32_t z; + // }; + // ``` + // Given an object `S2 s2` the size of the buffer `&s2.s.y` + // is the size of the base object type (i.e., `S2`) minus the offset + // of `y` relative to the type `S2` (i.e., `4`). So the size of the + // buffer is `12 - 4 = 8`. + c = getRootType(va) and + // we calculate the size based on the last field, to avoid including any padding after it + trueSize = max(Field f | | f.getOffsetInClass(c) + getVariableSize(f)) + | + trueSize - v.(Field).getOffsetInClass(c) + ) ) } @@ -116,12 +120,8 @@ private int isSource(Expr bufferExpr, Element why) { exists(Variable bufferVar | bufferVar = bufferExpr.(VariableAccess).getTarget() | // buffer is a fixed size array exists(bufferVar.getUnspecifiedType().(ArrayType).getSize()) and - result = - unique(int size | // more generous than .getSize() itself, when the array is a class field or similar. - size = getSize(bufferExpr) - | - size - ) and + // more generous than .getSize() itself, when the array is a class field or similar. + result = getSize(bufferExpr) and why = bufferVar and not memberMayBeVarSize(_, bufferVar) and not exists(BuiltInOperationBuiltInOffsetOf offsetof | offsetof.getAChild*() = bufferExpr) and diff --git a/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll b/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll index d5287494df96..211be2aa4326 100644 --- a/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll +++ b/cpp/ql/lib/semmle/code/cpp/controlflow/IRGuards.qll @@ -8,7 +8,8 @@ import semmle.code.cpp.ir.IR private import codeql.util.Void private import codeql.controlflow.Guards as SharedGuards private import semmle.code.cpp.ir.ValueNumbering -private import semmle.code.cpp.ir.implementation.raw.internal.TranslatedExpr +private import semmle.code.cpp.ir.implementation.raw.internal.TranslatedExpr as TE +private import semmle.code.cpp.ir.implementation.raw.internal.TranslatedFunction as TF private import semmle.code.cpp.ir.implementation.raw.internal.InstructionTag private class BasicBlock = IRCfg::BasicBlock; @@ -683,24 +684,26 @@ final class GuardCondition = GuardConditionImpl; */ private class GuardConditionFromBinaryLogicalOperator extends GuardConditionImpl instanceof Cpp::BinaryLogicalOperation { + GuardConditionImpl l; + GuardConditionImpl r; + + GuardConditionFromBinaryLogicalOperator() { + super.getLeftOperand() = l and + super.getRightOperand() = r + } + override predicate valueControls(Cpp::BasicBlock controlled, GuardValue v) { - exists(Cpp::BinaryLogicalOperation binop, GuardCondition lhs, GuardCondition rhs | - this = binop and - lhs = binop.getLeftOperand() and - rhs = binop.getRightOperand() and - lhs.valueControls(controlled, v) and - rhs.valueControls(controlled, v) - ) + // `l || r` does not control `r` even though `l` does. + not r.(Cpp::Expr).getBasicBlock() = controlled and + l.valueControls(controlled, v) + or + r.valueControls(controlled, v) } override predicate valueControlsEdge(Cpp::BasicBlock pred, Cpp::BasicBlock succ, GuardValue v) { - exists(Cpp::BinaryLogicalOperation binop, GuardCondition lhs, GuardCondition rhs | - this = binop and - lhs = binop.getLeftOperand() and - rhs = binop.getRightOperand() and - lhs.valueControlsEdge(pred, succ, v) and - rhs.valueControlsEdge(pred, succ, v) - ) + l.valueControlsEdge(pred, succ, v) + or + r.valueControlsEdge(pred, succ, v) } pragma[nomagic] @@ -1026,7 +1029,7 @@ private class GuardConditionFromIR extends GuardConditionImpl { private predicate excludeAsControlledInstruction(Instruction instr) { // Exclude the temporaries generated by a ternary expression. - exists(TranslatedConditionalExpr tce | + exists(TE::TranslatedConditionalExpr tce | instr = tce.getInstruction(ConditionValueFalseStoreTag()) or instr = tce.getInstruction(ConditionValueTrueStoreTag()) @@ -1038,6 +1041,14 @@ private predicate excludeAsControlledInstruction(Instruction instr) { or // Exclude unreached instructions, as their AST is the whole function and not a block. instr instanceof UnreachedInstruction + or + // Exclude instructions generated by a translated function as they map to the function itself + // and the function is considered the last basic block of a function body. + any(TF::TranslatedFunction tf).getInstruction(_) = instr + or + // `ChiInstruction`s generated by instructions in the above case don't come from `getInstruction` (since they are generated by AliasedSSA) + // so we need to special case them. + excludeAsControlledInstruction(instr.(ChiInstruction).getPartial()) } /** diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll index 7232326f1b3d..cf8f01e69442 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll @@ -95,6 +95,7 @@ import cpp private import new.DataFlow +private import semmle.code.cpp.controlflow.IRGuards private import semmle.code.cpp.ir.dataflow.internal.DataFlowPrivate as Private private import semmle.code.cpp.ir.dataflow.internal.DataFlowUtil private import internal.FlowSummaryImpl @@ -367,6 +368,8 @@ private predicate elementSpec( ) { sourceModel(namespace, type, subtypes, name, signature, ext, _, _, _, _) or sinkModel(namespace, type, subtypes, name, signature, ext, _, _, _, _) or + barrierModel(namespace, type, subtypes, name, signature, ext, _, _, _, _) or + barrierGuardModel(namespace, type, subtypes, name, signature, ext, _, _, _, _, _) or summaryModel(namespace, type, subtypes, name, signature, ext, _, _, _, _, _) } @@ -1028,6 +1031,84 @@ private module Cached { isSinkNode(n, kind, model) and n.asNode() = node ) } + + private newtype TKindModelPair = + TMkPair(string kind, string model) { isBarrierGuardNode(_, _, kind, model) } + + private GuardValue convertAcceptingValue(Public::AcceptingValue av) { + av.isTrue() and result.asBooleanValue() = true + or + av.isFalse() and result.asBooleanValue() = false + or + // NOTE: The below cases don't contribute anything currently since the + // callers immediately use `.asBooleanValue()` to convert the `GuardValue` + // to a boolean. Once we're willing to accept the breaking change of + // converting the barrier guard API to use `GuardValue`s instead `Boolean`s + // we can remove this restriction. + av.isNoException() and result.getDualValue().isThrowsException() + or + av.isZero() and result.asIntValue() = 0 + or + av.isNotZero() and result.getDualValue().asIntValue() = 0 + or + av.isNull() and result.isNullValue() + or + av.isNotNull() and result.isNonNullValue() + } + + private predicate barrierGuardChecks(IRGuardCondition g, Expr e, boolean gv, TKindModelPair kmp) { + exists( + SourceSinkInterpretationInput::InterpretNode n, Public::AcceptingValue acceptingvalue, + string kind, string model + | + isBarrierGuardNode(n, acceptingvalue, kind, model) and + n.asNode().asExpr() = e and + kmp = TMkPair(kind, model) and + gv = convertAcceptingValue(acceptingvalue).asBooleanValue() and + n.asNode().(Private::ArgumentNode).getCall().asCallInstruction() = g + ) + } + + private newtype TKindModelPairIntPair = + MkKindModelPairIntPair(TKindModelPair pair, int indirectionIndex) { + indirectionIndex > 0 and + Private::nodeHasInstruction(_, _, indirectionIndex) and + exists(pair) + } + + private predicate indirectBarrierGuardChecks( + IRGuardCondition g, Expr e, boolean gv, TKindModelPairIntPair kmp + ) { + exists( + SourceSinkInterpretationInput::InterpretNode interpretNode, + Public::AcceptingValue acceptingvalue, string kind, string model, int indirectionIndex, + Private::ArgumentNode arg + | + isBarrierGuardNode(interpretNode, acceptingvalue, kind, model) and + arg = interpretNode.asNode() and + arg.asIndirectExpr(indirectionIndex) = e and + kmp = MkKindModelPairIntPair(TMkPair(kind, model), indirectionIndex) and + gv = convertAcceptingValue(acceptingvalue).asBooleanValue() and + arg.getCall().asCallInstruction() = g + ) + } + + /** + * Holds if `node` is specified as a barrier with the given kind in a MaD flow + * model. + */ + cached + predicate barrierNode(DataFlow::Node node, string kind, string model) { + exists(SourceSinkInterpretationInput::InterpretNode n | + isBarrierNode(n, kind, model) and n.asNode() = node + ) + or + DataFlow::ParameterizedBarrierGuard::getABarrierNode(TMkPair(kind, + model)) = node + or + DataFlow::ParameterizedBarrierGuard::getAnIndirectBarrierNode(MkKindModelPairIntPair(TMkPair(kind, + model), _)) = node + } } import Cached @@ -1044,6 +1125,12 @@ predicate sourceNode(DataFlow::Node node, string kind) { sourceNode(node, kind, */ predicate sinkNode(DataFlow::Node node, string kind) { sinkNode(node, kind, _) } +/** + * Holds if `node` is specified as a barrier with the given kind in a MaD flow + * model. + */ +predicate barrierNode(DataFlow::Node node, string kind) { barrierNode(node, kind, _) } + private predicate interpretSummary( Function f, string input, string output, string kind, string provenance, string model ) { @@ -1058,40 +1145,22 @@ private predicate interpretSummary( // adapter class for converting Mad summaries to `SummarizedCallable`s private class SummarizedCallableAdapter extends SummarizedCallable { - SummarizedCallableAdapter() { interpretSummary(this, _, _, _, _, _) } - - private predicate relevantSummaryElementManual( - string input, string output, string kind, string model - ) { - exists(Provenance provenance | - interpretSummary(this, input, output, kind, provenance, model) and - provenance.isManual() - ) - } + string input_; + string output_; + string kind; + Provenance p_; + string model_; - private predicate relevantSummaryElementGenerated( - string input, string output, string kind, string model - ) { - exists(Provenance provenance | - interpretSummary(this, input, output, kind, provenance, model) and - provenance.isGenerated() - ) - } + SummarizedCallableAdapter() { interpretSummary(this, input_, output_, kind, p_, model_) } override predicate propagatesFlow( - string input, string output, boolean preservesValue, string model + string input, string output, boolean preservesValue, Provenance p, boolean isExact, string model ) { - exists(string kind | - this.relevantSummaryElementManual(input, output, kind, model) - or - not this.relevantSummaryElementManual(_, _, _, _) and - this.relevantSummaryElementGenerated(input, output, kind, model) - | - if kind = "value" then preservesValue = true else preservesValue = false - ) - } - - override predicate hasProvenance(Provenance provenance) { - interpretSummary(this, _, _, _, provenance, _) + input = input_ and + output = output_ and + (if kind = "value" then preservesValue = true else preservesValue = false) and + p = p_ and + isExact = true and + model = model_ } } diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/FlowSummaryImpl.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/FlowSummaryImpl.qll index a1d9dd86c400..af3e25ba7344 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/FlowSummaryImpl.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/FlowSummaryImpl.qll @@ -20,6 +20,8 @@ module Input implements InputSig { class SinkBase = Void; + predicate callableFromSource(SummarizedCallableBase c) { exists(c.getBlock()) } + ArgumentPosition callbackSelfParameterPosition() { result = TDirectPosition(-1) } ReturnKind getStandardReturnValueKind() { result = getReturnValueKind("") } @@ -149,16 +151,27 @@ module SourceSinkInterpretationInput implements } predicate barrierElement( - Element n, string output, string kind, Public::Provenance provenance, string model + Element e, string output, string kind, Public::Provenance provenance, string model ) { - none() + exists( + string namespace, string type, boolean subtypes, string name, string signature, string ext + | + barrierModel(namespace, type, subtypes, name, signature, ext, output, kind, provenance, model) and + e = interpretElement(namespace, type, subtypes, name, signature, ext) + ) } predicate barrierGuardElement( - Element n, string input, Public::AcceptingValue acceptingvalue, string kind, + Element e, string input, Public::AcceptingValue acceptingvalue, string kind, Public::Provenance provenance, string model ) { - none() + exists( + string package, string type, boolean subtypes, string name, string signature, string ext + | + barrierGuardModel(package, type, subtypes, name, signature, ext, input, acceptingvalue, kind, + provenance, model) and + e = interpretElement(package, type, subtypes, name, signature, ext) + ) } private newtype TInterpretNode = diff --git a/cpp/ql/lib/semmle/code/cpp/exprs/Expr.qll b/cpp/ql/lib/semmle/code/cpp/exprs/Expr.qll index 60e2635f338a..851d987b1fd6 100644 --- a/cpp/ql/lib/semmle/code/cpp/exprs/Expr.qll +++ b/cpp/ql/lib/semmle/code/cpp/exprs/Expr.qll @@ -23,7 +23,7 @@ class Expr extends StmtParent, @expr { predicate hasChild(Expr e, int n) { e = this.getChild(n) } /** Gets the enclosing function of this expression, if any. */ - Function getEnclosingFunction() { result = exprEnclosingElement(this) } + override Function getEnclosingFunction() { result = exprEnclosingElement(this) } /** Gets the nearest enclosing set of curly braces around this expression in the source, if any. */ BlockStmt getEnclosingBlock() { result = this.getEnclosingStmt().getEnclosingBlock() } diff --git a/cpp/ql/lib/semmle/code/cpp/internal/Overlay.qll b/cpp/ql/lib/semmle/code/cpp/internal/Overlay.qll index b870bbfb9f68..7e98177f3236 100644 --- a/cpp/ql/lib/semmle/code/cpp/internal/Overlay.qll +++ b/cpp/ql/lib/semmle/code/cpp/internal/Overlay.qll @@ -45,13 +45,13 @@ private string getSingleLocationFilePath(@element e) { overlay[local] private string getMultiLocationFilePath(@element e) { exists(@location_default loc | - exists(@var_decl vd | var_decls(vd, e, _, _, loc)) + var_decls(_, e, _, _, loc) or - exists(@fun_decl fd | fun_decls(fd, e, _, _, loc)) + fun_decls(_, e, _, _, loc) or - exists(@type_decl td | type_decls(td, e, loc)) + type_decls(_, e, loc) or - exists(@namespace_decl nd | namespace_decls(nd, e, loc, _)) + namespace_decls(_, e, loc, _) | result = getLocationFilePath(loc) ) @@ -62,19 +62,29 @@ private string getMultiLocationFilePath(@element e) { * overlay variant. */ overlay[local] -private predicate holdsInBase() { not isOverlay() } +private predicate isBase() { not isOverlay() } + +/** + * Holds if `path` was extracted in the overlay database. + */ +overlay[local] +private predicate overlayHasFile(string path) { + isOverlay() and + files(_, path) and + path != "" +} /** * Discards an element from the base variant if: - * - It has a single location in a changed file, or - * - All of its locations are in changed files. + * - It has a single location in a file extracted in the overlay, or + * - All of its locations are in files extracted in the overlay. */ overlay[discard_entity] private predicate discardElement(@element e) { - holdsInBase() and + isBase() and ( - overlayChangedFiles(getSingleLocationFilePath(e)) + overlayHasFile(getSingleLocationFilePath(e)) or - forex(string path | path = getMultiLocationFilePath(e) | overlayChangedFiles(path)) + forex(string path | path = getMultiLocationFilePath(e) | overlayHasFile(path)) ) } 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 b5f4f88f4bd5..88d7dd9faf19 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 @@ -1144,7 +1144,7 @@ private newtype TDataFlowCall = } private predicate summarizedCallableIsManual(SummarizedCallable sc) { - sc.asSummarizedCallable().applyManualModel() + sc.asSummarizedCallable().hasManualModel() } /** 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 919a32d8a4b7..9bc3a80e3e0c 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 @@ -312,6 +312,13 @@ class Node extends TIRDataFlowNode { */ Expr asDefinition() { result = this.asDefinition(_) } + private predicate isCertainStore() { + exists(SsaImpl::Definition def | + SsaImpl::defToNode(this, def, _) and + def.isCertain() + ) + } + /** * Gets the definition associated with this node, if any. * @@ -361,11 +368,10 @@ class Node extends TIRDataFlowNode { * pointed to by `p`. */ Expr asDefinition(boolean uncertain) { - exists(StoreInstruction store, SsaImpl::Definition def | + exists(StoreInstruction store | store = this.asInstruction() and result = asDefinitionImpl(store) and - SsaImpl::defToNode(this, def, _) and - if def.isCertain() then uncertain = false else uncertain = true + if this.isCertainStore() then uncertain = false else uncertain = true ) } @@ -1720,9 +1726,7 @@ private module Cached { SsaImpl::ssaFlow(n, succ) and bb1 = n.getBasicBlock() and bb2 = succ.getBasicBlock() and - bb1 != bb2 and - bb2.dominates(bb1) and - bb1.getASuccessor+() = bb2 + bb2.strictlyDominates(bb1) ) } @@ -2417,6 +2421,19 @@ class ContentSet instanceof Content { } } +private signature class ParamSig; + +private module WithParam { + /** + * Holds if the guard `g` validates the expression `e` upon evaluating to `branch`. + * + * The expression `e` is expected to be a syntactic part of the guard `g`. + * For example, the guard `g` might be a call `isSafe(x)` and the expression `e` + * the argument `x`. + */ + signature predicate guardChecksSig(IRGuardCondition g, Expr e, boolean branch, P param); +} + /** * Holds if the guard `g` validates the expression `e` upon evaluating to `branch`. * @@ -2438,7 +2455,7 @@ private predicate controls(IRGuardCondition g, Node n, boolean edge) { * This is expected to be used in `isBarrier`/`isSanitizer` definitions * in data flow and taint tracking. */ -module BarrierGuard { +module ParameterizedBarrierGuard::guardChecksSig/4 guardChecks> { bindingset[value, n] pragma[inline_late] private predicate convertedExprHasValueNumber(ValueNumber value, Node n) { @@ -2448,12 +2465,13 @@ module BarrierGuard { ) } - private predicate guardChecksNode(IRGuardCondition g, Node n, boolean branch) { - guardChecks(g, n.asOperand().getDef().getConvertedResultExpression(), branch) + private predicate guardChecksNode(IRGuardCondition g, Node n, boolean branch, P p) { + guardChecks(g, n.asOperand().getDef().getConvertedResultExpression(), branch, p) } /** - * Gets an expression node that is safely guarded by the given guard check. + * Gets an expression node that is safely guarded by the given guard check + * when the parameter is `p`. * * For example, given the following code: * ```cpp @@ -2484,19 +2502,27 @@ module BarrierGuard { * * NOTE: If an indirect expression is tracked, use `getAnIndirectBarrierNode` instead. */ - Node getABarrierNode() { + Node getABarrierNode(P p) { exists(IRGuardCondition g, ValueNumber value, boolean edge | convertedExprHasValueNumber(value, result) and guardChecks(g, - pragma[only_bind_into](value.getAnInstruction().getConvertedResultExpression()), edge) and + pragma[only_bind_into](value.getAnInstruction().getConvertedResultExpression()), edge, p) and controls(g, result, edge) ) or - result = SsaImpl::BarrierGuard::getABarrierNode() + result = SsaImpl::BarrierGuard::getABarrierNode(p) } /** - * Gets an indirect expression node that is safely guarded by the given guard check. + * Gets an expression node that is safely guarded by the given guard check. + * + * See `getABarrierNode/1` for examples. + */ + Node getABarrierNode() { result = getABarrierNode(_) } + + /** + * Gets an indirect expression node that is safely guarded by the given + * guard check with parameter `p`. * * For example, given the following code: * ```cpp @@ -2528,6 +2554,13 @@ module BarrierGuard { * * NOTE: If a non-indirect expression is tracked, use `getABarrierNode` instead. */ + Node getAnIndirectBarrierNode(P p) { result = getAnIndirectBarrierNode(_, p) } + + /** + * Gets an indirect expression node that is safely guarded by the given guard check. + * + * See `getAnIndirectBarrierNode/1` for examples. + */ Node getAnIndirectBarrierNode() { result = getAnIndirectBarrierNode(_) } bindingset[value, n] @@ -2542,10 +2575,10 @@ module BarrierGuard { } private predicate guardChecksIndirectNode( - IRGuardCondition g, Node n, boolean branch, int indirectionIndex + IRGuardCondition g, Node n, boolean branch, int indirectionIndex, P p ) { guardChecks(g, n.asIndirectOperand(indirectionIndex).getDef().getConvertedResultExpression(), - branch) + branch, p) } /** @@ -2582,19 +2615,44 @@ module BarrierGuard { * * NOTE: If a non-indirect expression is tracked, use `getABarrierNode` instead. */ - Node getAnIndirectBarrierNode(int indirectionIndex) { + Node getAnIndirectBarrierNode(int indirectionIndex, P p) { exists(IRGuardCondition g, ValueNumber value, boolean edge | indirectConvertedExprHasValueNumber(indirectionIndex, value, result) and guardChecks(g, - pragma[only_bind_into](value.getAnInstruction().getConvertedResultExpression()), edge) and + pragma[only_bind_into](value.getAnInstruction().getConvertedResultExpression()), edge, p) and controls(g, result, edge) ) or result = - SsaImpl::BarrierGuardWithIntParam::getABarrierNode(indirectionIndex) + SsaImpl::BarrierGuardWithIntParam::getABarrierNode(indirectionIndex, + p) } } +/** + * Provides a set of barrier nodes for a guard that validates an expression. + * + * This is expected to be used in `isBarrier`/`isSanitizer` definitions + * in data flow and taint tracking. + */ +module BarrierGuard { + private predicate guardChecks(IRGuardCondition g, Expr e, boolean branch, Unit unit) { + guardChecks(g, e, branch) and + exists(unit) + } + + import ParameterizedBarrierGuard +} + +private module InstrWithParam { + /** + * Holds if the guard `g` validates the instruction `instr` upon evaluating to `branch`. + */ + signature predicate instructionGuardChecksSig( + IRGuardCondition g, Instruction instr, boolean branch, P p + ); +} + /** * Holds if the guard `g` validates the instruction `instr` upon evaluating to `branch`. */ @@ -2606,7 +2664,9 @@ signature predicate instructionGuardChecksSig(IRGuardCondition g, Instruction in * This is expected to be used in `isBarrier`/`isSanitizer` definitions * in data flow and taint tracking. */ -module InstructionBarrierGuard { +module ParameterizedInstructionBarrierGuard< + ParamSig P, InstrWithParam

::instructionGuardChecksSig/4 instructionGuardChecks> +{ bindingset[value, n] pragma[inline_late] private predicate operandHasValueNumber(ValueNumber value, Node n) { @@ -2616,21 +2676,27 @@ module InstructionBarrierGuard::getABarrierNode() + result = SsaImpl::BarrierGuard::getABarrierNode(p) } + /** Gets a node that is safely guarded by the given guard check. */ + Node getABarrierNode() { result = getABarrierNode(_) } + bindingset[value, n] pragma[inline_late] private predicate indirectOperandHasValueNumber(ValueNumber value, int indirectionIndex, Node n) { @@ -2641,25 +2707,52 @@ module InstructionBarrierGuard::getABarrierNode(indirectionIndex) + SsaImpl::BarrierGuardWithIntParam::getABarrierNode(indirectionIndex, + p) + } + + /** + * Gets an indirect node that is safely guarded by the given guard check + * with parameter `p`. + */ + Node getAnIndirectBarrierNode(P p) { result = getAnIndirectBarrierNode(_, p) } + + /** Gets an indirect node that is safely guarded by the given guard check. */ + Node getAnIndirectBarrierNode() { result = getAnIndirectBarrierNode(_) } +} + +/** + * Provides a set of barrier nodes for a guard that validates an instruction. + * + * This is expected to be used in `isBarrier`/`isSanitizer` definitions + * in data flow and taint tracking. + */ +module InstructionBarrierGuard { + private predicate instructionGuardChecks( + IRGuardCondition g, Instruction i, boolean branch, Unit unit + ) { + instructionGuardChecks(g, i, branch) and + exists(unit) } + + import ParameterizedInstructionBarrierGuard } /** 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 99f13a81725e..80b440fff221 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 @@ -15,17 +15,79 @@ private import DataFlowPrivate import SsaImplCommon private module SourceVariables { + /** + * Holds if `store` is the `StoreInstruction` generated by a postfix + * increment or decrement operation `e`, and `postCrement` is the operand + * that represents the use of the evaluated value of `e`. + */ + private predicate isUseAfterPostfixCrement0(StoreInstruction store, Operand postCrement) { + exists( + BinaryInstruction binary, IRBlock b, int iPre, int iPost, int iStore, Operand preCrement, + Instruction left + | + binary instanceof AddInstruction + or + binary instanceof PointerAddInstruction + or + binary instanceof SubInstruction + or + binary instanceof PointerSubInstruction + | + store.getSourceValue() = binary and + left = binary.getLeft() and + strictcount(left.getAUse()) = 2 and + left.getAUse() = preCrement and + left.getAUse() = postCrement and + b.getInstruction(iPre) = preCrement.getUse() and + b.getInstruction(iPost) = postCrement.getUse() and + b.getInstruction(iStore) = store and + iPre < iStore and + iStore < iPost + ) + } + + /** + * Holds if `store` is the `StoreInstruction` generated by an postfix + * increment or decrement operation `e`, and `postCrement` is the fully + * converted operand that represents the use of the evaluated value of `e`. + */ + private predicate isUseAfterPostfixCrement(StoreInstruction store, Operand postCrement) { + isUseAfterPostfixCrement0(store, postCrement) and + conversionFlow(postCrement, _, false, _) + or + exists(Instruction instr, Operand postCrement0 | + isUseAfterPostfixCrement(store, postCrement0) and + conversionFlow(postCrement0, instr, false, _) and + instr = postCrement.getDef() + ) + } + + private predicate hasSavedPostfixCrementSourceVariable( + BaseSourceVariable base, StoreInstruction store, int ind + ) { + exists(BaseSourceVariableInstruction inst, int ind0 | + isUseAfterPostfixCrement(store, _) and + inst.getBaseSourceVariable() = base and + isDef(_, _, store.getDestinationAddressOperand(), inst, ind0, 0) and + ind = [ind0 .. countIndirectionsForCppType(base.getLanguageType()) + 1] + ) + } + cached private newtype TSourceVariable = - TMkSourceVariable(BaseSourceVariable base, int ind) { + TNormalSourceVariable(BaseSourceVariable base, int ind) { ind = [0 .. countIndirectionsForCppType(base.getLanguageType()) + 1] + } or + TSavedPostfixCrementSourceVariable(StoreInstruction store, int ind) { + hasSavedPostfixCrementSourceVariable(_, store, ind) } - class SourceVariable extends TSourceVariable { + abstract private class AbstractSourceVariable extends TSourceVariable { BaseSourceVariable base; int ind; - SourceVariable() { this = TMkSourceVariable(base, ind) } + bindingset[ind] + AbstractSourceVariable() { any() } /** Gets the IR variable associated with this `SourceVariable`, if any. */ IRVariable getIRVariable() { result = base.(BaseIRVariable).getIRVariable() } @@ -37,7 +99,7 @@ private module SourceVariables { BaseSourceVariable getBaseVariable() { result = base } /** Gets a textual representation of this element. */ - string toString() { result = repeatStars(this.getIndirection()) + base.toString() } + abstract string toString(); /** * Gets the number of loads performed on the base source variable @@ -62,6 +124,53 @@ private module SourceVariables { /** Gets the location of this variable. */ Location getLocation() { result = this.getBaseVariable().getLocation() } } + + final class SourceVariable = AbstractSourceVariable; + + /** + * A regular source variable. Most source variables are instances of this + * class. + */ + class NormalSourceVariable extends AbstractSourceVariable, TNormalSourceVariable { + NormalSourceVariable() { this = TNormalSourceVariable(base, ind) } + + final override string toString() { + result = repeatStars(this.getIndirection()) + base.toString() + } + } + + /** + * Before a value is postfix incremented (or decremented) we "save" its + * current value so that the pre-incremented value can be returned to the + * enclosing expression. We use the source variables represented by this + * class to represent the "saved value". + */ + class SavedPostfixCrementSourceVariable extends AbstractSourceVariable, + TSavedPostfixCrementSourceVariable + { + StoreInstruction store; + + SavedPostfixCrementSourceVariable() { + this = TSavedPostfixCrementSourceVariable(store, ind) and + hasSavedPostfixCrementSourceVariable(base, store, ind) + } + + final override string toString() { + result = repeatStars(this.getIndirection()) + base.toString() + " [before crement]" + } + + /** + * Gets the `StoreInstruction` that writes the incremented (or decremented) + * value. + */ + StoreInstruction getStoreInstruction() { result = store } + + /** + * Gets the fully converted `Operand` that represents the use of the + * value before the increment. + */ + Operand getOperand() { isUseAfterPostfixCrement(store, result) } + } } import SourceVariables @@ -109,17 +218,43 @@ private newtype TDefImpl = TDirectDefImpl(Operand address, int indirectionIndex) { isDef(_, _, address, _, _, indirectionIndex) } or + TSavedPostfixCrementDefImpl(SavedPostfixCrementSourceVariable sv, int indirectionIndex) { + isDef(_, _, sv.getStoreInstruction().getDestinationAddressOperand(), _, sv.getIndirection(), + indirectionIndex) + } or TGlobalDefImpl(GlobalLikeVariable v, IRFunction f, int indirectionIndex) { // Represents the initial "definition" of a global variable when entering // a function body. isGlobalDefImpl(v, f, _, indirectionIndex) } +pragma[nomagic] +private predicate hasOperandAndIndirection( + SavedPostfixCrementSourceVariable sv, Operand operand, int indirection +) { + sv.getOperand() = operand and + sv.getIndirection() = indirection +} + +private predicate hasBeforePostCrementUseImpl( + SavedPostfixCrementSourceVariable sv, Operand operand, int indirectionIndex +) { + not isDef(true, _, operand, _, _, _) and + exists(int indirection | + hasOperandAndIndirection(sv, operand, indirection) and + isUse(_, operand, _, indirection, indirectionIndex) + ) +} + cached private newtype TUseImpl = TDirectUseImpl(Operand operand, int indirectionIndex) { isUse(_, operand, _, _, indirectionIndex) and - not isDef(true, _, operand, _, _, _) + not isDef(true, _, operand, _, _, _) and + not hasBeforePostCrementUseImpl(_, operand, indirectionIndex) + } or + TSavedPostfixCrementUseImpl(SavedPostfixCrementSourceVariable sv, int indirectionIndex) { + hasBeforePostCrementUseImpl(sv, _, indirectionIndex) } or TGlobalUse(GlobalLikeVariable v, IRFunction f, int indirectionIndex) { // Represents a final "use" of a global variable to ensure that @@ -223,19 +358,8 @@ abstract class DefImpl extends TDefImpl { */ abstract int getIndirection(); - /** - * Gets the base source variable (i.e., the variable without - * any indirection) of this definition or use. - */ - abstract BaseSourceVariable getBaseSourceVariable(); - /** Gets the variable that is defined or used. */ - SourceVariable getSourceVariable() { - exists(BaseSourceVariable v, int indirection | - sourceVariableHasBaseAndIndex(result, v, indirection) and - defHasSourceVariable(this, v, indirection) - ) - } + abstract SourceVariable getSourceVariable(); /** * Holds if this definition is guaranteed to totally overwrite the @@ -243,8 +367,8 @@ abstract class DefImpl extends TDefImpl { */ abstract predicate isCertain(); - /** Gets the value written to the destination variable by this definition. */ - abstract Node0Impl getValue(); + /** Gets the value written to the destination variable by this definition, if any. */ + Node0Impl getValue() { none() } /** Gets the operand that represents the address of this definition, if any. */ Operand getAddressOperand() { none() } @@ -293,19 +417,8 @@ abstract class UseImpl extends TUseImpl { /** Gets the indirection index of this use. */ final int getIndirectionIndex() { result = indirectionIndex } - /** - * Gets the base source variable (i.e., the variable without - * any indirection) of this definition or use. - */ - abstract BaseSourceVariable getBaseSourceVariable(); - /** Gets the variable that is defined or used. */ - SourceVariable getSourceVariable() { - exists(BaseSourceVariable v, int indirection | - sourceVariableHasBaseAndIndex(result, v, indirection) and - useHasSourceVariable(this, v, indirection) - ) - } + abstract SourceVariable getSourceVariable(); /** * Holds if this use is guaranteed to read the @@ -314,18 +427,6 @@ abstract class UseImpl extends TUseImpl { abstract predicate isCertain(); } -pragma[noinline] -private predicate defHasSourceVariable(DefImpl def, BaseSourceVariable bv, int ind) { - bv = def.getBaseSourceVariable() and - ind = def.getIndirection() -} - -pragma[noinline] -private predicate useHasSourceVariable(UseImpl use, BaseSourceVariable bv, int ind) { - bv = use.getBaseSourceVariable() and - ind = use.getIndirection() -} - pragma[noinline] private predicate sourceVariableHasBaseAndIndex(SourceVariable v, BaseSourceVariable bv, int ind) { v.getBaseVariable() = bv and @@ -358,16 +459,12 @@ abstract private class DefAddressImpl extends DefImpl, TDefAddressImpl { final override predicate isCertain() { any() } - final override Node0Impl getValue() { none() } - override Cpp::Location getLocation() { result = v.getLocation() } - final override SourceVariable getSourceVariable() { + final override NormalSourceVariable getSourceVariable() { result.getBaseVariable() = v and result.getIndirection() = 0 } - - final override BaseSourceVariable getBaseSourceVariable() { result = v } } private class DefVariableAddressImpl extends DefAddressImpl { @@ -413,8 +510,17 @@ private class DirectDef extends DefImpl, TDirectDefImpl { isDef(_, _, address, result, _, indirectionIndex) } - override BaseSourceVariable getBaseSourceVariable() { - result = this.getBase().getBaseSourceVariable() + pragma[nomagic] + private predicate hasBaseSourceVariableAndIndirection(BaseSourceVariable v, int indirection) { + v = this.getBase().getBaseSourceVariable() and + indirection = this.getIndirection() + } + + final override NormalSourceVariable getSourceVariable() { + exists(BaseSourceVariable v, int indirection | + sourceVariableHasBaseAndIndex(result, v, indirection) and + this.hasBaseSourceVariableAndIndirection(v, indirection) + ) } override int getIndirection() { isDef(_, _, address, _, result, indirectionIndex) } @@ -424,6 +530,32 @@ private class DirectDef extends DefImpl, TDirectDefImpl { override predicate isCertain() { isDef(true, _, address, _, _, indirectionIndex) } } +/** + * A definition that "saves" the value of a variable before it is incremented + * or decremented. + */ +private class SavedPostfixCrementDefImpl extends DefImpl, TSavedPostfixCrementDefImpl { + SavedPostfixCrementSourceVariable sv; + + SavedPostfixCrementDefImpl() { this = TSavedPostfixCrementDefImpl(sv, indirectionIndex) } + + override Cpp::Location getLocation() { result = sv.getStoreInstruction().getLocation() } + + final override predicate hasIndexInBlock(IRBlock block, int index) { + sv.getStoreInstruction() = block.getInstruction(index) + } + + override string toString() { result = "Def of " + this.getSourceVariable() } + + override SourceVariable getSourceVariable() { result = sv } + + override int getIndirection() { result = sv.getIndirection() } + + override predicate isCertain() { + isDef(true, _, sv.getStoreInstruction().getDestinationAddressOperand(), _, _, indirectionIndex) + } +} + private class DirectUseImpl extends UseImpl, TDirectUseImpl { Operand operand; @@ -432,29 +564,22 @@ private class DirectUseImpl extends UseImpl, TDirectUseImpl { override string toString() { result = "Use of " + this.getSourceVariable() } final override predicate hasIndexInBlock(IRBlock block, int index) { - // See the comment in `ssa0`'s `OperandBasedUse` for an explanation of this - // predicate's implementation. - if this.getBase().getAst() = any(Cpp::PostfixCrementOperation c).getOperand() - then - exists(Operand op, int indirection, Instruction base | - indirection = this.getIndirection() and - base = this.getBase() and - op = - min(Operand cand, int i | - isUse(_, cand, base, indirection, indirectionIndex) and - block.getInstruction(i) = cand.getUse() - | - cand order by i - ) and - block.getInstruction(index) = op.getUse() - ) - else operand.getUse() = block.getInstruction(index) + operand.getUse() = block.getInstruction(index) } private BaseSourceVariableInstruction getBase() { isUse(_, operand, result, _, indirectionIndex) } - override BaseSourceVariable getBaseSourceVariable() { - result = this.getBase().getBaseSourceVariable() + pragma[nomagic] + private predicate hasBaseSourceVariableAndIndirection(BaseSourceVariable bv, int indirection) { + this.getBase().getBaseSourceVariable() = bv and + this.getIndirection() = indirection + } + + override NormalSourceVariable getSourceVariable() { + exists(BaseSourceVariable v, int indirection | + sourceVariableHasBaseAndIndex(result, v, indirection) and + this.hasBaseSourceVariableAndIndirection(v, indirection) + ) } final Operand getOperand() { result = operand } @@ -468,6 +593,34 @@ private class DirectUseImpl extends UseImpl, TDirectUseImpl { override Node getNode() { nodeHasOperand(result, operand, indirectionIndex) } } +/** + * The use of the original "saved" variable after the variable has been incremented + * or decremented. + */ +private class SavedPostfixCrementUseImpl extends UseImpl, TSavedPostfixCrementUseImpl { + SavedPostfixCrementSourceVariable sv; + + SavedPostfixCrementUseImpl() { this = TSavedPostfixCrementUseImpl(sv, indirectionIndex) } + + override string toString() { result = "Use of " + this.getSourceVariable() } + + final override predicate hasIndexInBlock(IRBlock block, int index) { + this.getOperand().getUse() = block.getInstruction(index) + } + + override SourceVariable getSourceVariable() { result = sv } + + final Operand getOperand() { result = sv.getOperand() } + + final override Cpp::Location getLocation() { result = this.getOperand().getLocation() } + + override int getIndirection() { result = sv.getIndirection() } + + override predicate isCertain() { isUse(true, this.getOperand(), _, _, indirectionIndex) } + + override Node getNode() { nodeHasOperand(result, this.getOperand(), indirectionIndex) } +} + pragma[nomagic] private predicate finalParameterNodeHasParameterAndIndex( FinalParameterNode n, Parameter p, int indirectionIndex @@ -532,7 +685,18 @@ class FinalParameterUse extends UseImpl, TFinalParameterUse { result instanceof UnknownLocation } - override BaseIRVariable getBaseSourceVariable() { result.getIRVariable().getAst() = p } + pragma[nomagic] + private predicate hasBaseSourceVariableAndIndirection(BaseIRVariable v, int indirection) { + v.getIRVariable().getAst() = p and + indirection = this.getIndirection() + } + + override NormalSourceVariable getSourceVariable() { + exists(BaseIRVariable v, int indirection | + sourceVariableHasBaseAndIndex(result, v, indirection) and + this.hasBaseSourceVariableAndIndirection(v, indirection) + ) + } } /** @@ -612,8 +776,17 @@ class GlobalUse extends UseImpl, TGlobalUse { hasReturnPosition(f, block, index) } - override BaseSourceVariable getBaseSourceVariable() { - baseSourceVariableIsGlobal(result, global, f) + pragma[nomagic] + private predicate hasBaseSourceVariableAndIndirection(BaseIRVariable v, int indirection) { + baseSourceVariableIsGlobal(v, global, f) and + indirection = this.getIndirection() + } + + override NormalSourceVariable getSourceVariable() { + exists(BaseIRVariable v, int indirection | + sourceVariableHasBaseAndIndex(result, v, indirection) and + this.hasBaseSourceVariableAndIndirection(v, indirection) + ) } final override Cpp::Location getLocation() { result = f.getLocation() } @@ -658,15 +831,15 @@ class GlobalDefImpl extends DefImpl, TGlobalDefImpl { ) } - /** Gets the global variable associated with this definition. */ - override BaseSourceVariable getBaseSourceVariable() { - baseSourceVariableIsGlobal(result, global, f) + final override NormalSourceVariable getSourceVariable() { + exists(BaseSourceVariable v | + sourceVariableHasBaseAndIndex(result, v, indirectionIndex) and + baseSourceVariableIsGlobal(v, global, f) + ) } override int getIndirection() { result = indirectionIndex } - override Node0Impl getValue() { none() } - override predicate isCertain() { any() } /** @@ -704,9 +877,15 @@ predicate defToNode(Node node, Definition def, SourceVariable sv) { } private predicate defToNode(Node node, Definition def) { - nodeHasOperand(node, def.getValue().asOperand(), def.getIndirectionIndex()) - or - nodeHasInstruction(node, def.getValue().asInstruction(), def.getIndirectionIndex()) + // Only definitions of `NormalSourceVariable` need to be converted into + // dataflow nodes. The other case, `SavedPostfixCrementSourceVariable`, + // are internal definitions that don't have a dataflow node representation. + def.getSourceVariable() instanceof NormalSourceVariable and + ( + nodeHasOperand(node, def.getValue().asOperand(), def.getIndirectionIndex()) + or + nodeHasInstruction(node, def.getValue().asInstruction(), def.getIndirectionIndex()) + ) or node.(InitialGlobalValue).getGlobalDef() = def } @@ -940,6 +1119,16 @@ module SsaCached { SsaImpl::phiHasInputFromBlock(phi, inp, bb) } + cached + predicate uncertainWriteDefinitionInput(Definition uncertain, Definition inp) { + SsaImpl::uncertainWriteDefinitionInput(uncertain, inp) + } + + cached + predicate ssaDefReachesEndOfBlock(IRBlock bb, Definition def) { + SsaImpl::ssaDefReachesEndOfBlock(bb, def, _) + } + predicate variableRead = SsaInput::variableRead/4; predicate variableWrite = SsaInput::variableWrite/4; @@ -1035,13 +1224,23 @@ class SynthNode extends DataFlowIntegrationImpl::SsaNode { SynthNode() { not this.asDefinition() instanceof SsaImpl::WriteDefinition } } -signature predicate guardChecksNodeSig(IRGuards::IRGuardCondition g, Node e, boolean branch); +private signature class ParamSig; -signature predicate guardChecksNodeSig( - IRGuards::IRGuardCondition g, Node e, boolean branch, int indirectionIndex -); +private module ParamIntPair { + newtype TPair = MkPair(P p, int indirectionIndex) { nodeHasInstruction(_, _, indirectionIndex) } +} -module BarrierGuardWithIntParam { +private module WithParam { + signature predicate guardChecksNodeSig(IRGuards::IRGuardCondition g, Node e, boolean gv, P param); +} + +private module IntWithParam { + signature predicate guardChecksNodeSig( + IRGuards::IRGuardCondition g, Node e, boolean gv, int indirectionIndex, P param + ); +} + +module BarrierGuardWithIntParam::guardChecksNodeSig/5 guardChecksNode> { private predicate ssaDefReachesCertainUse(Definition def, UseImpl use) { exists(SourceVariable v, IRBlock bb, int i | use.hasIndexInBlock(bb, i, v) and @@ -1052,21 +1251,23 @@ module BarrierGuardWithIntParam { private predicate guardChecksInstr( IRGuards::Guards_v1::Guard g, IRGuards::GuardsInput::Expr instr, IRGuards::GuardValue gv, - int indirectionIndex + ParamIntPair

::TPair pair ) { - exists(Node node | + exists(Node node, int indirectionIndex, P p | + pair = ParamIntPair

::MkPair(p, indirectionIndex) and nodeHasInstruction(node, instr, indirectionIndex) and - guardChecksNode(g, node, gv.asBooleanValue(), indirectionIndex) + guardChecksNode(g, node, gv.asBooleanValue(), indirectionIndex, p) ) } private predicate guardChecksWithWrappers( DataFlowIntegrationInput::Guard g, SsaImpl::Definition def, IRGuards::GuardValue val, - int indirectionIndex + ParamIntPair

::MkPair pair ) { - exists(Instruction e | - IRGuards::Guards_v1::ParameterizedValidationWrapper::guardChecks(g, - e, val, indirectionIndex) + exists(Instruction e, int indirectionIndex | + IRGuards::Guards_v1::ParameterizedValidationWrapper::TPair, guardChecksInstr/4>::guardChecks(g, + e, val, pair) and + pair = ParamIntPair

::MkPair(_, indirectionIndex) | indirectionIndex = 0 and def.(Definition).getAUse().getDef() = e @@ -1075,18 +1276,19 @@ module BarrierGuardWithIntParam { ) } - Node getABarrierNode(int indirectionIndex) { + Node getABarrierNode(int indirectionIndex, P p) { // Only get the SynthNodes from the shared implementation, as the ExprNodes cannot // be matched on SourceVariable. result.(SsaSynthNode).getSynthNode() = - DataFlowIntegrationImpl::BarrierGuardDefWithState::getABarrierNode(indirectionIndex) + DataFlowIntegrationImpl::BarrierGuardDefWithState::MkPair, guardChecksWithWrappers/4>::getABarrierNode(ParamIntPair

::MkPair(p, + indirectionIndex)) or // Calculate the guarded UseImpls corresponding to ExprNodes directly. exists( DataFlowIntegrationInput::Guard g, IRGuards::GuardValue branch, Definition def, IRBlock bb | - guardChecksWithWrappers(g, def, branch, indirectionIndex) and exists(UseImpl use | + guardChecksWithWrappers(g, def, branch, ParamIntPair

::MkPair(p, indirectionIndex)) and ssaDefReachesCertainUse(def, use) and use.getBlock() = bb and DataFlowIntegrationInput::guardControlsBlock(g, bb, branch) and @@ -1096,15 +1298,16 @@ module BarrierGuardWithIntParam { } } -module BarrierGuard { +module BarrierGuard::guardChecksNodeSig/4 guardChecksNode> { private predicate guardChecksNode( - IRGuards::IRGuardCondition g, Node e, boolean branch, int indirectionIndex + IRGuards::IRGuardCondition g, Node e, boolean gv, int indirectionIndex, P p ) { - guardChecksNode(g, e, branch) and indirectionIndex = 0 + indirectionIndex = 0 and + guardChecksNode(g, e, gv, p) } - Node getABarrierNode() { - result = BarrierGuardWithIntParam::getABarrierNode(0) + Node getABarrierNode(P p) { + result = BarrierGuardWithIntParam::getABarrierNode(0, p) } } @@ -1159,9 +1362,17 @@ class Definition extends SsaImpl::Definition { private Definition getAPhiInputOrPriorDefinition() { result = this.(PhiNode).getAnInput() or - SsaImpl::uncertainWriteDefinitionInput(this, result) + uncertainWriteDefinitionInput(this, result) } + /** + * Holds if this SSA definition is live at the end of basic block `bb`. + * That is, this definition reaches the end of basic block `bb`, at which + * point it is still live, without crossing another SSA definition of the + * same source variable. + */ + predicate isLiveAtEndOfBlock(IRBlock bb) { ssaDefReachesEndOfBlock(bb, this) } + /** * Gets a definition that ultimately defines this SSA definition and is * not itself a phi node. 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 be3f680aa16d..e97e903f0025 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 @@ -104,7 +104,11 @@ newtype TInstructionTag = } or SizeofVlaDimensionTag(int index) { exists(VlaDeclStmt v | exists(v.getTransitiveVlaDimensionStmt(index))) - } + } or + AssertionVarAddressTag() or + AssertionVarLoadTag() or + AssertionOpTag() or + AssertionBranchTag() class InstructionTag extends TInstructionTag { final string toString() { result = getInstructionTagId(this) } @@ -296,4 +300,12 @@ string getInstructionTagId(TInstructionTag tag) { tag = CoAwaitBranchTag() and result = "CoAwaitBranch" or tag = BoolToIntConversionTag() and result = "BoolToIntConversion" + or + tag = AssertionVarAddressTag() and result = "AssertionVarAddress" + or + tag = AssertionVarLoadTag() and result = "AssertionVarLoad" + or + tag = AssertionOpTag() and result = "AssertionOp" + or + tag = AssertionBranchTag() and result = "AssertionBranch" } diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedAssertion.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedAssertion.qll new file mode 100644 index 000000000000..55818b02858d --- /dev/null +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/TranslatedAssertion.qll @@ -0,0 +1,387 @@ +private import cpp +private import semmle.code.cpp.ir.internal.IRUtilities +private import semmle.code.cpp.ir.implementation.internal.OperandTag +private import semmle.code.cpp.ir.internal.CppType +private import semmle.code.cpp.ir.internal.TempVariableTag +private import InstructionTag +private import TranslatedElement +private import TranslatedStmt +private import TranslatedFunction + +/** + * Holds if `s` is a statement that may be an expanded assertion in a + * release build. + */ +pragma[nomagic] +private predicate stmtCandidate(Stmt s) { + not s.isFromUninstantiatedTemplate(_) and + ( + // The expansion of `__analysis_assume(x != 0);` when `__analysis_assume` is + // empty is the empty statement. + s instanceof EmptyStmt + or + // The expansion of `assert(x != 0)` when `assert` is `((void)0)` is a zero literal + // with a void type. + exists(Expr e | + e = s.(ExprStmt).getExpr() and + e.getValue() = "0" and + e.getActualType() instanceof VoidType + ) + ) +} + +pragma[nomagic] +private predicate macroInvocationLocation(int startline, Function f, MacroInvocation mi) { + mi.getMacroName() = ["assert", "__analysis_assume"] and + mi.getNumberOfArguments() = 1 and + mi.getLocation().hasLocationInfo(_, startline, _, _, _) and + f.getEntryPoint().isAffectedByMacro(mi) +} + +pragma[nomagic] +private predicate stmtParentLocation(int startline, Function f, StmtParent p) { + p.getEnclosingFunction() = f and + p.getLocation().hasLocationInfo(_, startline, _, _, _) +} + +/** + * Holds if `mi` is a macro invocation with a name that is known + * to correspond to an assertion macro, and the macro invocation + * is the only thing on the line. + */ +pragma[nomagic] +private predicate assertion0(MacroInvocation mi, Stmt s, string arg) { + stmtCandidate(s) and + s = + unique(StmtParent p, int startline, Function f | + macroInvocationLocation(startline, f, mi) and + stmtParentLocation(startline, f, p) and + // Also do not count the elements from the expanded macro, i.e., when checking + // if `assert(x)` is the only thing on the line we do not count the + // generated `((void)0)` expression. + not p = mi.getAnExpandedElement() + | + p + ) and + arg = mi.getUnexpandedArgument(0) +} + +private Function getEnclosingFunctionForMacroInvocation(MacroInvocation mi) { + exists(Stmt s | + assertion0(mi, s, _) and + result = s.getEnclosingFunction() + ) +} + +/** + * Holds if `arg` has two components and the `i`'th component of the string + * `arg` is `s`, and the components are separated by an operation with + * opcode `opcode`. + */ +bindingset[arg] +pragma[inline_late] +private predicate parseArgument(string arg, string s, int i, Opcode opcode) { + s = + arg.regexpCapture("([a-zA-Z_][a-zA-Z_0-9]*|[0-9]+)\\s?<=\\s?([a-zA-Z_][a-zA-Z_0-9]*|[0-9]+)", + i + 1) and + opcode instanceof Opcode::CompareLE + or + s = + arg.regexpCapture("([a-zA-Z_][a-zA-Z_0-9]*|[0-9]+)\\s?>=\\s?([a-zA-Z_][a-zA-Z_0-9]*|[0-9]+)", + i + 1) and + opcode instanceof Opcode::CompareGE + or + s = + arg.regexpCapture("([a-zA-Z_][a-zA-Z_0-9]*|[0-9]+)\\s?<\\s?([a-zA-Z_][a-zA-Z_0-9]*|[0-9]+)", + i + 1) and + opcode instanceof Opcode::CompareLT + or + s = + arg.regexpCapture("([a-zA-Z_][a-zA-Z_0-9]*|[0-9]+)\\s?>\\s?([a-zA-Z_][a-zA-Z_0-9]*|[0-9]+)", + i + 1) and + opcode instanceof Opcode::CompareGT + or + s = + arg.regexpCapture("([a-zA-Z_][a-zA-Z_0-9]*|[0-9]+)\\s?!=\\s?([a-zA-Z_][a-zA-Z_0-9]*|[0-9]+)", + i + 1) and + opcode instanceof Opcode::CompareNE + or + s = + arg.regexpCapture("([a-zA-Z_][a-zA-Z_0-9]*|[0-9]+)\\s?==\\s?([a-zA-Z_][a-zA-Z_0-9]*|[0-9]+)", + i + 1) and + opcode instanceof Opcode::CompareEQ +} + +private Element getAChildScope(Element scope) { result.getParentScope() = scope } + +private predicate hasAVariable(MacroInvocation mi, Stmt s, Element scope) { + assertion0(mi, s, _) and + s.getParent() = scope + or + hasAVariable(mi, s, getAChildScope(scope)) +} + +private LocalScopeVariable getVariable(MacroInvocation mi, int i) { + exists(string operand, string arg, Stmt s | + assertion0(mi, s, arg) and + parseArgument(arg, operand, i, _) and + result = + unique(Variable v | + v.getLocation().getStartLine() < s.getLocation().getStartLine() and + hasAVariable(mi, s, v.getParentScope()) and + v.hasName(operand) + | + v + ) + ) +} + +/** + * Holds if the `i`'th component of the macro invocation `mi` with opcode + * `opcode` is a reference to `var`. + */ +private predicate hasVarAccessMacroArgument(MacroInvocation mi, Variable var, int i, Opcode opcode) { + exists(string arg, string s, Function f | + arg = mi.getUnexpandedArgument(0) and + f = getEnclosingFunctionForMacroInvocation(mi) and + parseArgument(arg, s, i, opcode) and + var = getVariable(mi, i) + ) +} + +/** + * Holds if the `i`'th component of the macro invocation `mi` with opcode + * `opcode` is a constant with the value `k`. + */ +private predicate hasConstMacroArgument(MacroInvocation mi, int k, int i, Opcode opcode) { + exists(string arg, string s | + assertion0(mi, _, arg) and + s.toInt() = k and + parseArgument(arg, s, i, opcode) + ) +} + +predicate hasAssertionOperand(MacroInvocation mi, int i) { + hasVarAccessMacroArgument(mi, _, i, _) + or + hasConstMacroArgument(mi, _, i, _) +} + +private predicate hasAssertionOpcode(MacroInvocation mi, Opcode opcode) { + hasVarAccessMacroArgument(mi, _, _, opcode) + or + hasConstMacroArgument(mi, _, _, opcode) +} + +/** + * Holds if `mi` is a macro invocation that is an assertion that should be generated + * in the control-flow graph at `s`. + */ +predicate assertion(MacroInvocation mi, Stmt s) { + assertion0(mi, s, _) and + hasAssertionOperand(mi, 0) and + hasAssertionOperand(mi, 1) +} + +/** The translation of an operand of an assertion. */ +abstract private class TranslatedAssertionOperand extends TranslatedElement, + TTranslatedAssertionOperand +{ + MacroInvocation mi; + int index; + + TranslatedAssertionOperand() { this = TTranslatedAssertionOperand(mi, index) } + + MacroInvocation getMacroInvocation() { result = mi } + + /** + * Gets the statement that is being replaced by the assertion that uses this + * operand. + */ + Stmt getStmt() { assertion(mi, result) } + + final override Locatable getAst() { result = this.getStmt() } + + final override TranslatedElement getChild(int id) { none() } + + final override Declaration getFunction() { result = this.getStmt().getEnclosingFunction() } + + /** Gets the instruction which holds the result of this operand. */ + abstract Instruction getResult(); + + final override string toString() { result = "Operand of assertion: " + mi } + + /** Gets the index of this operand (i.e., `0` or `1`). */ + final int getIndex() { result = index } +} + +/** An operand of an assertion that is a variable access. */ +class TranslatedAssertionVarAccess extends TranslatedAssertionOperand { + TranslatedAssertionVarAccess() { hasVarAccessMacroArgument(mi, _, index, _) } + + Variable getVariable() { hasVarAccessMacroArgument(mi, result, index, _) } + + final override IRUserVariable getInstructionVariable(InstructionTag tag) { + tag = AssertionVarAddressTag() and + result.getVariable() = this.getVariable() + } + + final override Instruction getFirstInstruction(EdgeKind kind) { + result = this.getInstruction(AssertionVarAddressTag()) and kind instanceof GotoEdge + } + + final override Instruction getInstructionSuccessorInternal(InstructionTag tag, EdgeKind kind) { + tag = AssertionVarAddressTag() and + kind instanceof GotoEdge and + result = this.getInstruction(AssertionVarLoadTag()) + or + tag = AssertionVarLoadTag() and + result = getTranslatedAssertionMacroInvocation(mi).getChildSuccessor(this, kind) + } + + final override Instruction getALastInstructionInternal() { + result = this.getInstruction(AssertionVarLoadTag()) + } + + override predicate hasInstruction(Opcode opcode, InstructionTag tag, CppType resultType) { + exists(Variable v | v = this.getVariable() | + opcode instanceof Opcode::VariableAddress and + tag = AssertionVarAddressTag() and + resultType = getTypeForGLValue(v.getType()) + or + opcode instanceof Opcode::Load and + tag = AssertionVarLoadTag() and + resultType = getTypeForPRValue(v.getType()) + ) + } + + final override Instruction getInstructionRegisterOperand(InstructionTag tag, OperandTag operandTag) { + tag = AssertionVarLoadTag() and + operandTag instanceof AddressOperandTag and + result = this.getInstruction(AssertionVarAddressTag()) + } + + final override Instruction getResult() { result = this.getInstruction(AssertionVarLoadTag()) } +} + +/** An operand of an assertion that is a constant access. */ +private class TranslatedAssertionConst extends TranslatedAssertionOperand { + TranslatedAssertionConst() { hasConstMacroArgument(mi, _, index, _) } + + int getConst() { hasConstMacroArgument(mi, result, index, _) } + + final override string getInstructionConstantValue(InstructionTag tag) { + tag = OnlyInstructionTag() and + result = this.getConst().toString() + } + + final override Instruction getFirstInstruction(EdgeKind kind) { + result = this.getInstruction(OnlyInstructionTag()) and + kind instanceof GotoEdge + } + + final override Instruction getInstructionSuccessorInternal(InstructionTag tag, EdgeKind kind) { + tag = OnlyInstructionTag() and + result = getTranslatedAssertionMacroInvocation(mi).getChildSuccessor(this, kind) + } + + final override Instruction getALastInstructionInternal() { + result = this.getInstruction(OnlyInstructionTag()) + } + + override predicate hasInstruction(Opcode opcode, InstructionTag tag, CppType resultType) { + opcode instanceof Opcode::Constant and + tag = OnlyInstructionTag() and + resultType = getIntType() + } + + final override Instruction getResult() { result = this.getInstruction(OnlyInstructionTag()) } +} + +/** + * Gets the `TranslatedAssertionMacroInvocation` corresponding to the macro + * invocation `mi`. + */ +TranslatedAssertionMacroInvocation getTranslatedAssertionMacroInvocation(MacroInvocation mi) { + result.getMacroInvocation() = mi +} + +/** + * A synthesized assertion which would have otherwise been invisible because the + * database represents a release build where assertions are disabled. + */ +private class TranslatedAssertionMacroInvocation extends TranslatedStmt { + MacroInvocation mi; + + TranslatedAssertionMacroInvocation() { assertion(mi, stmt) } + + final override Instruction getFirstInstruction(EdgeKind kind) { + result = this.getLeft().getFirstInstruction(kind) + } + + TranslatedAssertionOperand getLeft() { + result.getMacroInvocation() = mi and + result.getIndex() = 0 + } + + TranslatedAssertionOperand getRight() { + result.getMacroInvocation() = mi and + result.getIndex() = 1 + } + + final override Instruction getInstructionSuccessorInternal(InstructionTag tag, EdgeKind kind) { + tag = AssertionOpTag() and + kind instanceof GotoEdge and + result = this.getInstruction(AssertionBranchTag()) + or + tag = AssertionBranchTag() and + kind instanceof TrueEdge and + result = this.getParent().getChildSuccessor(this, _) + } + + final override TranslatedElement getChildInternal(int id) { + id = 0 and result = this.getLeft() + or + id = 1 and result = this.getRight() + } + + final override Instruction getALastInstructionInternal() { + result = this.getInstruction(AssertionBranchTag()) + } + + final override predicate hasInstruction(Opcode opcode, InstructionTag tag, CppType resultType) { + tag = AssertionOpTag() and + resultType = getBoolType() and + hasAssertionOpcode(mi, opcode) + or + tag = AssertionBranchTag() and + resultType = getVoidType() and + opcode instanceof Opcode::ConditionalBranch + } + + final override Instruction getChildSuccessorInternal(TranslatedElement child, EdgeKind kind) { + child = this.getLeft() and + result = this.getRight().getFirstInstruction(kind) + or + child = this.getRight() and + kind instanceof GotoEdge and + result = this.getInstruction(AssertionOpTag()) + } + + final override Instruction getInstructionRegisterOperand(InstructionTag tag, OperandTag operandTag) { + tag = AssertionOpTag() and + ( + operandTag instanceof LeftOperandTag and + result = this.getLeft().getResult() + or + operandTag instanceof RightOperandTag and + result = this.getRight().getResult() + ) + or + tag = AssertionBranchTag() and + operandTag instanceof ConditionOperandTag and + result = this.getInstruction(AssertionOpTag()) + } + + MacroInvocation getMacroInvocation() { result = mi } +} 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 330362f55603..9829388ef177 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 @@ -12,6 +12,7 @@ private import TranslatedFunction private import TranslatedStmt private import TranslatedExpr private import IRConstruction +private import TranslatedAssertion private import semmle.code.cpp.models.interfaces.SideEffect private import SideEffects @@ -138,6 +139,14 @@ private predicate ignoreExprAndDescendants(Expr expr) { // conditionally constructed (until we have a mechanism for calling these only when the // temporary's constructor was run) isConditionalTemporaryDestructorCall(expr) + or + // An assertion in a release build is often defined as `#define assert(x) ((void)0)`. + // We generate a synthetic assertion in release builds, and when we do that the + // expression `((void)0)` should not be translated. + exists(MacroInvocation mi | + assertion(mi, _) and + expr = mi.getExpr().getFullyConverted() + ) } /** @@ -909,7 +918,8 @@ newtype TTranslatedElement = } or // The side effect that initializes newly-allocated memory. TTranslatedAllocationSideEffect(AllocationExpr expr) { not ignoreSideEffects(expr) } or - TTranslatedStaticStorageDurationVarInit(Variable var) { Raw::varHasIRFunc(var) } + TTranslatedStaticStorageDurationVarInit(Variable var) { Raw::varHasIRFunc(var) } or + TTranslatedAssertionOperand(MacroInvocation mi, int index) { hasAssertionOperand(mi, index) } /** * Gets the index of the first explicitly initialized element in `initList` 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 9dccf7752aa8..7dfebc56fe18 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 @@ -10,6 +10,7 @@ private import TranslatedElement private import TranslatedExpr private import TranslatedFunction private import TranslatedInitialization +private import TranslatedAssertion TranslatedStmt getTranslatedStmt(Stmt stmt) { result.getAst() = stmt } @@ -324,8 +325,16 @@ abstract class TranslatedStmt extends TranslatedElement, TTranslatedStmt { class TranslatedEmptyStmt extends TranslatedStmt { TranslatedEmptyStmt() { - stmt instanceof EmptyStmt or - stmt instanceof LabelStmt or + // An assertion macro invocation can expand to + // an empty statement in release builds. In that case + // we synthesize the check that would have occurred. + // This is handled by `TranslatedAssertion.qll` and so + // we exclude these statements here. + not assertion(_, stmt) and + stmt instanceof EmptyStmt + or + stmt instanceof LabelStmt + or stmt instanceof SwitchCase } @@ -381,7 +390,7 @@ class TranslatedDeclStmt extends TranslatedStmt { override TranslatedElement getLastChild() { result = this.getChild(this.getChildCount() - 1) } - private int getChildCount() { result = count(this.getDeclarationEntry(_)) } + private int getChildCount() { result = count(int i | exists(this.getDeclarationEntry(i))) } IRDeclarationEntry getIRDeclarationEntry(int index) { result.hasIndex(index) and @@ -420,6 +429,15 @@ class TranslatedDeclStmt extends TranslatedStmt { class TranslatedExprStmt extends TranslatedStmt { override ExprStmt stmt; + TranslatedExprStmt() { + // An assertion macro invocation typically expand to the + // expression `((void)0)` in release builds. In that case + // we synthesize the check that would have occurred. + // This is handled by `TranslatedAssertion.qll` and so + // we exclude these statements here. + not assertion(_, stmt) + } + TranslatedExpr getExpr() { result = getTranslatedExpr(stmt.getExpr().getFullyConverted()) } override TranslatedElement getChildInternal(int id) { id = 0 and result = this.getExpr() } diff --git a/cpp/ql/lib/semmle/code/cpp/models/Models.qll b/cpp/ql/lib/semmle/code/cpp/models/Models.qll index 83bda3e2a44e..09f0a0df9668 100644 --- a/cpp/ql/lib/semmle/code/cpp/models/Models.qll +++ b/cpp/ql/lib/semmle/code/cpp/models/Models.qll @@ -57,3 +57,4 @@ private import implementations.CAtlFile private import implementations.CAtlFileMapping private import implementations.CAtlTemporaryFile private import implementations.CRegKey +private import implementations.WinHttp diff --git a/cpp/ql/lib/semmle/code/cpp/models/implementations/MySql.qll b/cpp/ql/lib/semmle/code/cpp/models/implementations/MySql.qll index ca5d7020158c..b3fc722b0ed0 100644 --- a/cpp/ql/lib/semmle/code/cpp/models/implementations/MySql.qll +++ b/cpp/ql/lib/semmle/code/cpp/models/implementations/MySql.qll @@ -16,17 +16,3 @@ private class MySqlExecutionFunction extends SqlExecutionFunction { override predicate hasSqlArgument(FunctionInput input) { input.isParameterDeref(1) } } - -/** - * The `mysql_real_escape_string` family of functions from the MySQL C API. - */ -private class MySqlBarrierFunction extends SqlBarrierFunction { - MySqlBarrierFunction() { - this.hasName(["mysql_real_escape_string", "mysql_real_escape_string_quote"]) - } - - override predicate barrierSqlArgument(FunctionInput input, FunctionOutput output) { - input.isParameterDeref(2) and - output.isParameterDeref(1) - } -} diff --git a/cpp/ql/lib/semmle/code/cpp/models/implementations/WinHttp.qll b/cpp/ql/lib/semmle/code/cpp/models/implementations/WinHttp.qll new file mode 100644 index 000000000000..fb28e6ebe451 --- /dev/null +++ b/cpp/ql/lib/semmle/code/cpp/models/implementations/WinHttp.qll @@ -0,0 +1,50 @@ +private import cpp +private import semmle.code.cpp.ir.dataflow.FlowSteps +private import semmle.code.cpp.dataflow.new.DataFlow + +/** The `WINHTTP_HEADER_NAME` class from `winhttp.h`. */ +class WinHttpHeaderName extends Class { + WinHttpHeaderName() { this.hasGlobalName("_WINHTTP_HEADER_NAME") } +} + +/** The `WINHTTP_EXTENDED_HEADER` class from `winhttp.h`. */ +class WinHttpExtendedHeader extends Class { + WinHttpExtendedHeader() { this.hasGlobalName("_WINHTTP_EXTENDED_HEADER") } +} + +private class WinHttpHeaderNameInheritingContent extends TaintInheritingContent, + DataFlow::FieldContent +{ + WinHttpHeaderNameInheritingContent() { + this.getIndirectionIndex() = 2 and + ( + this.getAField().getDeclaringType() instanceof WinHttpHeaderName + or + // The extended header looks like: + // struct WINHTTP_EXTENDED_HEADER { + // union { [...] }; + // union { [...] }; + // }; + // So the first declaring type is the anonymous unions, and the declaring + // type of those anonymous unions is the `WINHTTP_EXTENDED_HEADER` struct. + this.getAField().getDeclaringType().getDeclaringType() instanceof WinHttpExtendedHeader + ) + } +} + +/** The `URL_COMPONENTS` class from `winhttp.h`. */ +class WinHttpUrlComponents extends Class { + WinHttpUrlComponents() { this.hasGlobalName("_WINHTTP_URL_COMPONENTS") } +} + +private class WinHttpUrlComponentsInheritingContent extends TaintInheritingContent, + DataFlow::FieldContent +{ + WinHttpUrlComponentsInheritingContent() { + exists(Field f | f = this.getField() and f.getDeclaringType() instanceof WinHttpUrlComponents | + if f.getType().getUnspecifiedType() instanceof PointerType + then this.getIndirectionIndex() = 2 + else this.getIndirectionIndex() = 1 + ) + } +} diff --git a/cpp/ql/lib/semmle/code/cpp/rangeanalysis/RangeAnalysisUtils.qll b/cpp/ql/lib/semmle/code/cpp/rangeanalysis/RangeAnalysisUtils.qll index 2423a3a71a0a..03dbc56dc99c 100644 --- a/cpp/ql/lib/semmle/code/cpp/rangeanalysis/RangeAnalysisUtils.qll +++ b/cpp/ql/lib/semmle/code/cpp/rangeanalysis/RangeAnalysisUtils.qll @@ -404,7 +404,7 @@ predicate cmpWithLinearBound( * For example, if `t` is a signed 32-bit type then holds if `lb` is * `-2^31` and `ub` is `2^31 - 1`. */ -private predicate typeBounds(ArithmeticType t, float lb, float ub) { +private predicate typeBounds0(ArithmeticType t, float lb, float ub) { exists(IntegralType integralType, float limit | integralType = t and limit = 2.pow(8 * integralType.getSize()) | @@ -423,6 +423,42 @@ private predicate typeBounds(ArithmeticType t, float lb, float ub) { t instanceof FloatingPointType and lb = -(1.0 / 0.0) and ub = 1.0 / 0.0 } +/** + * Gets the underlying type for an enumeration `e`. + * + * If the enumeration does not have an explicit type we approximate it using + * the following rules: + * - The result type is always `signed`, and + * - if the largest value fits in an `int` the result is `int`. Otherwise, the + * result is `long`. + */ +private IntegralType getUnderlyingTypeForEnum(Enum e) { + result = e.getExplicitUnderlyingType() + or + not e.hasExplicitUnderlyingType() and + result.isSigned() and + exists(IntType intType | + if max(e.getAnEnumConstant().getValue().toFloat()) >= 2.pow(8 * intType.getSize() - 1) + then result instanceof LongType + else result = intType + ) +} + +/** + * Holds if `lb` and `ub` are the lower and upper bounds of the unspecified + * type `t`. + * + * For example, if `t` is a signed 32-bit type then holds if `lb` is + * `-2^31` and `ub` is `2^31 - 1`. + * + * Unlike `typeBounds0`, this predicate also handles `Enum` types. + */ +private predicate typeBounds(Type t, float lb, float ub) { + typeBounds0(t, lb, ub) + or + typeBounds0(getUnderlyingTypeForEnum(t), lb, ub) +} + private Type stripReference(Type t) { if t instanceof ReferenceType then result = t.(ReferenceType).getBaseType() else result = t } diff --git a/cpp/ql/lib/semmle/code/cpp/rangeanalysis/SimpleRangeAnalysis.qll b/cpp/ql/lib/semmle/code/cpp/rangeanalysis/SimpleRangeAnalysis.qll index c3c3c2dd3e7e..90f6a8272558 100644 --- a/cpp/ql/lib/semmle/code/cpp/rangeanalysis/SimpleRangeAnalysis.qll +++ b/cpp/ql/lib/semmle/code/cpp/rangeanalysis/SimpleRangeAnalysis.qll @@ -512,8 +512,8 @@ private module BoundsEstimate { */ float getBoundsLimit() { // This limit is arbitrary, but low enough that it prevents timeouts on - // specific observed customer databases (and the in the tests). - result = 2.0.pow(40) + // specific observed customer databases (and in the tests). + result = 2.0.pow(29) } /** Gets the maximum number of bounds possible for `t` when widening is used. */ diff --git a/cpp/ql/lib/semmle/code/cpp/stmts/Stmt.qll b/cpp/ql/lib/semmle/code/cpp/stmts/Stmt.qll index bd3a54c61594..cd7504612444 100644 --- a/cpp/ql/lib/semmle/code/cpp/stmts/Stmt.qll +++ b/cpp/ql/lib/semmle/code/cpp/stmts/Stmt.qll @@ -20,7 +20,7 @@ class Stmt extends StmtParent, @stmt { predicate hasChild(Element e, int n) { this.getChild(n) = e } /** Gets the enclosing function of this statement, if any. */ - Function getEnclosingFunction() { result = stmtEnclosingElement(this) } + override Function getEnclosingFunction() { result = stmtEnclosingElement(this) } /** * Gets the nearest enclosing block of this statement in the source, if any. @@ -159,7 +159,10 @@ private class TStmtParent = @stmt or @expr; * * This is normally a statement, but may be a `StmtExpr`. */ -class StmtParent extends ControlFlowNode, TStmtParent { } +class StmtParent extends ControlFlowNode, TStmtParent { + /** Gets the enclosing function of this element, if any. */ + Function getEnclosingFunction() { none() } +} /** * A C/C++ 'expression' statement. diff --git a/cpp/ql/lib/semmlecode.cpp.dbscheme b/cpp/ql/lib/semmlecode.cpp.dbscheme index 1402ab319d20..7e7c2f55670f 100644 --- a/cpp/ql/lib/semmlecode.cpp.dbscheme +++ b/cpp/ql/lib/semmlecode.cpp.dbscheme @@ -236,6 +236,34 @@ extractor_version( string frontend_version: string ref ) +/** + * Gives the TRAP filename that `trap` is associated with. + * For debugging only. + */ +trap_filename( + int trap: @trap, + string filename: string ref +); + +/** + * In `build-mode: none` overlay mode, indicates that `source_file` + * (`/path/to/foo.c`) uses the TRAP file `trap_file`; i.e. it is the + * TRAP file corresponding to `foo.c`, something it transitively + * includes, or a template instantiation it transitively uses. + */ +source_file_uses_trap( + string source_file: string ref, + int trap_file: @trap ref +); + +/** + * Holds if there is a definition of `element` in TRAP file `trap_file`. + */ +in_trap( + int element: @element ref, + int trap_file: @trap ref +); + pch_uses( int pch: @pch ref, int compilation: @compilation ref, @@ -2353,6 +2381,7 @@ case @preprocdirect.kind of | 14 = @ppd_ms_import | 15 = @ppd_elifdef | 16 = @ppd_elifndef +| 17 = @ppd_embed | 18 = @ppd_warning ; @@ -2379,6 +2408,11 @@ includes( int included: @file ref ); +embeds( + unique int id: @ppd_embed ref, + int included: @file ref +); + link_targets( int id: @link_target, int binary: @file ref @@ -2389,6 +2423,8 @@ link_parent( int link_target : @link_target ref ); +/*- Database metadata -*/ + /** * The CLI will automatically emit applicable tuples for this table, * such as `databaseMetadata("isOverlay", "true")` when building an @@ -2399,6 +2435,8 @@ databaseMetadata( string value: string ref ); +/*- Overlay support -*/ + /** * The CLI will automatically emit tuples for each new/modified/deleted file * when building an overlay database. diff --git a/cpp/ql/lib/semmlecode.cpp.dbscheme.stats b/cpp/ql/lib/semmlecode.cpp.dbscheme.stats index eca8a306a7c2..1c53061ef50a 100644 --- a/cpp/ql/lib/semmlecode.cpp.dbscheme.stats +++ b/cpp/ql/lib/semmlecode.cpp.dbscheme.stats @@ -10,19 +10,23 @@ @file - 64949 + 64952 @folder - 12339 + 12340 @diagnostic 357 + + @trap + 1 + @location_default - 46837431 + 46837429 @pch @@ -30,7 +34,7 @@ @macro_expansion - 40306125 + 40306124 @other_macro_reference @@ -38,7 +42,7 @@ @normal_function - 2734631 + 2734381 @unknown_function @@ -46,7 +50,7 @@ @constructor - 694346 + 694333 @destructor @@ -70,11 +74,11 @@ @fun_decl - 4194038 + 4193664 @var_decl - 9368606 + 9368481 @type_decl @@ -86,11 +90,11 @@ @using_declaration - 266867 + 266868 @using_directive - 6431 + 6430 @using_enum_declaration @@ -102,7 +106,7 @@ @parameter - 7011800 + 7010805 @membervariable @@ -114,7 +118,7 @@ @localvariable - 724728 + 724674 @enumconstant @@ -366,7 +370,7 @@ @routineptr - 679859 + 679846 @reference @@ -470,7 +474,7 @@ @remove_reference - 5706 + 5705 @decltype @@ -478,7 +482,7 @@ @struct - 976642 + 976682 @union @@ -490,11 +494,11 @@ @template_parameter - 864458 + 864494 @alias - 1755826 + 1755899 @unknown_usertype @@ -506,11 +510,11 @@ @template_template_parameter - 6090 + 6091 @proxy_class - 48244 + 48246 @scoped_enum @@ -518,7 +522,7 @@ @template_struct - 211186 + 211194 @template_class @@ -542,7 +546,7 @@ @routinetype - 600588 + 600577 @ptrtomember @@ -574,11 +578,11 @@ @attribute_arg_token - 16585 + 16584 @attribute_arg_constant_expr - 71640 + 71632 @attribute_arg_expr @@ -598,19 +602,19 @@ @derivation - 473796 + 473787 @frienddecl - 695869 + 767814 @comment - 11208577 + 11208576 @namespace - 8615 + 8616 @specialnamequalifyingelement @@ -618,15 +622,15 @@ @namequalifier - 3042587 + 3042541 @value - 13541403 + 13541563 @initialiser - 2244827 + 2244830 @address_of @@ -642,7 +646,7 @@ @parexpr - 4915712 + 4915711 @arithnegexpr @@ -650,7 +654,7 @@ @unaryplusexpr - 4061 + 4060 @complementexpr @@ -698,7 +702,7 @@ @remexpr - 15908 + 15907 @paddexpr @@ -722,7 +726,7 @@ @andexpr - 483235 + 483234 @orexpr @@ -758,7 +762,7 @@ @assignexpr - 1281280 + 1281279 @assignaddexpr @@ -818,7 +822,7 @@ @commaexpr - 167881 + 167880 @subscriptexpr @@ -826,7 +830,7 @@ @callexpr - 238861 + 238856 @vastartexpr @@ -854,7 +858,7 @@ @runtime_alignof - 49552 + 49551 @expr_stmt @@ -862,7 +866,7 @@ @routineexpr - 5726207 + 5726119 @type_operand @@ -878,7 +882,7 @@ @literal - 7984746 + 7985002 @aggregateliteral @@ -886,7 +890,7 @@ @c_style_cast - 6027719 + 6027721 @temp_init @@ -894,7 +898,7 @@ @errorexpr - 45186 + 45185 @reference_to @@ -902,7 +906,7 @@ @ref_indirect - 2094107 + 2094067 @vacuous_destructor_call @@ -962,11 +966,11 @@ @thisaccess - 1553673 + 1553675 @new_expr - 45897 + 45896 @delete_expr @@ -978,7 +982,7 @@ @condition_decl - 407684 + 407678 @braced_init_list @@ -986,7 +990,7 @@ @type_id - 47589 + 47588 @sizeof_pack @@ -1094,7 +1098,7 @@ @ctordirectinit - 112102 + 112100 @ctorvirtualinit @@ -1110,7 +1114,7 @@ @dtordirectdestruct - 39195 + 39194 @dtorvirtualdestruct @@ -1118,7 +1122,7 @@ @dtorfielddestruct - 39567 + 39566 @static_cast @@ -1134,7 +1138,7 @@ @dynamic_cast - 788 + 789 @lambdaexpr @@ -1418,7 +1422,7 @@ @reuseexpr - 844479 + 844466 @istriviallycopyassignable @@ -1530,7 +1534,7 @@ @concept_id - 90160 + 90159 @isinvocable @@ -1562,15 +1566,15 @@ @stmt_goto - 157271 + 157278 @stmt_label - 77731 + 77734 @stmt_return - 1238155 + 1238238 @stmt_block @@ -1586,11 +1590,11 @@ @stmt_switch_case - 833624 + 833612 @stmt_switch - 410623 + 410617 @stmt_asm @@ -1598,11 +1602,11 @@ @stmt_decl - 770030 + 770031 @stmt_empty - 428128 + 428121 @stmt_continue @@ -1610,7 +1614,7 @@ @stmt_break - 137506 + 137507 @stmt_try_block @@ -1674,7 +1678,7 @@ @ppd_elif - 21828 + 21829 @ppd_else @@ -1686,7 +1690,7 @@ @ppd_plain_include - 317278 + 317291 @ppd_define @@ -1706,7 +1710,7 @@ @ppd_line - 18771 + 18770 @ppd_error @@ -1728,6 +1732,10 @@ @ppd_elifndef 1 + + @ppd_embed + 1 + @ppd_warning 13 @@ -1812,7 +1820,7 @@ compilation_args - 1008128 + 1008169 id @@ -1824,7 +1832,7 @@ arg - 29150 + 29151 @@ -2152,7 +2160,7 @@ 1 2 - 13349 + 13350 2 @@ -2183,7 +2191,7 @@ 1 2 - 19303 + 19304 2 @@ -2203,7 +2211,7 @@ compilation_expanded_args - 1008128 + 1008169 id @@ -2215,7 +2223,7 @@ arg - 29150 + 29151 @@ -2543,7 +2551,7 @@ 1 2 - 13349 + 13350 2 @@ -2574,7 +2582,7 @@ 1 2 - 19303 + 19304 2 @@ -2904,7 +2912,7 @@ seconds - 19606 + 15412 @@ -2982,55 +2990,50 @@ 12 - - 2 - 3 - 54 - 3 4 - 816 + 1034 4 5 - 490 + 326 - 6 - 9 - 217 + 5 + 7 + 163 - 9 - 10 - 217 + 8 + 9 + 163 10 - 12 - 217 + 11 + 163 - 12 - 19 + 11 + 13 217 - 19 - 21 + 14 + 17 217 - 21 - 52 + 17 + 21 217 - 125 - 126 - 54 + 24 + 94 + 217 @@ -3098,42 +3101,47 @@ 3 4 - 925 + 1143 4 5 - 1470 + 1252 5 6 - 326 + 163 6 7 - 435 + 653 7 - 8 - 326 + 9 + 217 - 8 + 9 10 + 217 + + + 10 + 15 381 - 11 - 28 + 16 + 45 381 - 30 - 98 - 272 + 50 + 94 + 108 @@ -3179,23 +3187,23 @@ 12 - 5 - 6 + 4 + 5 54 - 6 - 7 + 5 + 6 54 - 204 - 205 + 148 + 149 54 - 205 - 206 + 160 + 161 54 @@ -3212,22 +3220,22 @@ 1 2 - 13452 + 9421 2 3 - 4574 + 3104 3 - 16 - 1470 + 4 + 1797 - 33 - 38 - 108 + 4 + 44 + 1089 @@ -3243,22 +3251,32 @@ 1 2 - 12852 + 8604 2 3 - 3975 + 2668 3 + 4 + 1851 + + + 4 5 - 1797 + 925 5 - 66 - 980 + 15 + 1198 + + + 43 + 73 + 163 @@ -3274,17 +3292,12 @@ 1 2 - 16392 + 13560 2 3 - 3158 - - - 3 - 4 - 54 + 1851 @@ -3568,11 +3581,11 @@ cpu_seconds - 9373 + 9489 elapsed_seconds - 220 + 231 @@ -3618,17 +3631,17 @@ 1 2 - 7868 + 7953 2 3 - 1041 + 1052 3 - 30 - 462 + 29 + 483 @@ -3644,12 +3657,12 @@ 1 2 - 8741 + 8847 2 3 - 631 + 641 @@ -3665,71 +3678,46 @@ 1 2 - 31 + 73 2 - 3 - 42 - - - 5 - 6 - 10 - - - 7 - 8 + 5 21 - 8 + 5 9 - 10 + 21 - 9 - 10 - 10 + 10 + 11 + 21 - 14 - 15 - 10 + 12 + 14 + 21 19 - 20 + 33 21 - 28 - 29 - 10 - - - 76 - 77 - 10 - - - 180 - 181 - 10 - - - 215 - 216 - 10 + 60 + 179 + 21 - 299 - 300 - 10 + 233 + 293 + 21 - 300 - 301 + 312 + 313 10 @@ -3746,71 +3734,46 @@ 1 2 - 31 + 73 2 - 3 - 42 - - - 5 - 6 - 10 - - - 7 - 8 + 5 21 - 8 + 5 9 - 10 - - - 9 - 10 - 10 - - - 14 - 15 - 10 - - - 19 - 20 21 - 28 - 29 - 10 + 10 + 11 + 21 - 72 - 73 - 10 + 12 + 14 + 21 - 148 - 149 - 10 + 18 + 32 + 21 - 169 - 170 - 10 + 59 + 154 + 21 - 195 - 196 - 10 + 168 + 219 + 21 - 240 - 241 + 245 + 246 10 @@ -4048,11 +4011,11 @@ locations_default - 46837431 + 46837429 id - 46837431 + 46837429 file @@ -4086,7 +4049,7 @@ 1 2 - 46837431 + 46837429 @@ -4102,7 +4065,7 @@ 1 2 - 46837431 + 46837429 @@ -4118,7 +4081,7 @@ 1 2 - 46837431 + 46837429 @@ -4134,7 +4097,7 @@ 1 2 - 46837431 + 46837429 @@ -4150,7 +4113,7 @@ 1 2 - 46837431 + 46837429 @@ -4633,7 +4596,7 @@ 2 3 - 483109 + 483108 3 @@ -5147,7 +5110,7 @@ 1 2 - 5005069 + 5005068 2 @@ -5260,7 +5223,7 @@ 12 72 - 561636 + 561635 72 @@ -5580,15 +5543,15 @@ files - 64949 + 64952 id - 64949 + 64952 name - 64949 + 64952 @@ -5602,7 +5565,7 @@ 1 2 - 64949 + 64952 @@ -5618,7 +5581,7 @@ 1 2 - 64949 + 64952 @@ -5628,15 +5591,15 @@ folders - 12339 + 12340 id - 12339 + 12340 name - 12339 + 12340 @@ -5650,7 +5613,7 @@ 1 2 - 12339 + 12340 @@ -5666,7 +5629,7 @@ 1 2 - 12339 + 12340 @@ -5676,15 +5639,15 @@ containerparent - 77268 + 77271 parent - 12339 + 12340 child - 77268 + 77271 @@ -5698,7 +5661,7 @@ 1 2 - 6006 + 6007 2 @@ -5733,7 +5696,7 @@ 44 151 - 262 + 263 @@ -5749,7 +5712,7 @@ 1 2 - 77268 + 77271 @@ -6853,6 +6816,150 @@ + + trap_filename + 1 + + + trap + 1 + + + filename + 1 + + + + + trap + filename + + + 12 + + + 1 + 2 + 1 + + + + + + + filename + trap + + + 12 + + + 1 + 2 + 1 + + + + + + + + + source_file_uses_trap + 1 + + + source_file + 1 + + + trap_file + 1 + + + + + source_file + trap_file + + + 12 + + + 1 + 2 + 1 + + + + + + + trap_file + source_file + + + 12 + + + 1 + 2 + 1 + + + + + + + + + in_trap + 1 + + + element + 1 + + + trap_file + 1 + + + + + element + trap_file + + + 12 + + + 1 + 2 + 1 + + + + + + + trap_file + element + + + 12 + + + 1 + 2 + 1 + + + + + + + pch_uses 4121 @@ -7237,11 +7344,11 @@ fileannotations - 4183599 + 4183771 id - 5743 + 5744 kind @@ -7249,11 +7356,11 @@ name - 58479 + 58482 value - 39354 + 39356 @@ -7272,7 +7379,7 @@ 2 3 - 5543 + 5544 @@ -7498,7 +7605,7 @@ 1 2 - 10982 + 10983 2 @@ -7569,7 +7676,7 @@ 1 2 - 58479 + 58482 @@ -7630,7 +7737,7 @@ 41 95 - 4449 + 4450 95 @@ -7661,7 +7768,7 @@ 4 5 - 3176 + 3177 5 @@ -7732,7 +7839,7 @@ 1 2 - 39344 + 39345 2 @@ -7778,7 +7885,7 @@ 14 18 - 3439 + 3440 18 @@ -7788,7 +7895,7 @@ 28 34 - 3134 + 3135 34 @@ -7828,11 +7935,11 @@ inmacroexpansion - 150011425 + 150011419 id - 24673501 + 24673500 inv @@ -7870,7 +7977,7 @@ 7 8 - 8719894 + 8719893 8 @@ -7931,7 +8038,7 @@ 10 11 - 444696 + 444695 11 @@ -7956,11 +8063,11 @@ affectedbymacroexpansion - 48740834 + 48740832 id - 7045464 + 7045463 inv @@ -8039,7 +8146,7 @@ 9 12 - 342974 + 342973 12 @@ -8094,11 +8201,11 @@ macroinvocations - 40387491 + 40387489 id - 40387491 + 40387489 macro_id @@ -8106,7 +8213,7 @@ location - 5925542 + 5925541 kind @@ -8124,7 +8231,7 @@ 1 2 - 40387491 + 40387489 @@ -8140,7 +8247,7 @@ 1 2 - 40387491 + 40387489 @@ -8156,7 +8263,7 @@ 1 2 - 40387491 + 40387489 @@ -8347,7 +8454,7 @@ 1 2 - 5925542 + 5925541 @@ -8420,15 +8527,15 @@ macroparent - 33684454 + 33684452 id - 33684454 + 33684452 parent_id - 15941267 + 15941266 @@ -8442,7 +8549,7 @@ 1 2 - 33684454 + 33684452 @@ -8488,15 +8595,15 @@ macrolocationbind - 6022280 + 6022573 id - 4208238 + 4208559 location - 2272395 + 2272360 @@ -8510,22 +8617,22 @@ 1 2 - 3284817 + 3285153 2 3 - 489028 + 489021 3 4 - 8602 + 8601 4 5 - 412640 + 412633 5 @@ -8546,12 +8653,12 @@ 1 2 - 1332220 + 1332200 2 3 - 481413 + 481406 3 @@ -8561,12 +8668,12 @@ 4 5 - 426926 + 426920 5 522 - 24047 + 24046 @@ -8576,11 +8683,11 @@ macro_argument_unexpanded - 82172776 + 82174179 invocation - 26182583 + 26181675 argument_index @@ -8588,7 +8695,7 @@ text - 341884 + 341898 @@ -8602,22 +8709,22 @@ 1 2 - 9643267 + 9641676 2 3 - 9733979 + 9734381 3 4 - 4982750 + 4982956 4 67 - 1822585 + 1822661 @@ -8633,22 +8740,22 @@ 1 2 - 9825166 + 9823583 2 3 - 9751495 + 9751897 3 4 - 4826677 + 4826877 4 67 - 1779244 + 1779317 @@ -8673,7 +8780,7 @@ 646904 - 2488874 + 2488685 31 @@ -8716,52 +8823,52 @@ 1 2 - 39544 + 39545 2 3 - 62077 + 62080 3 4 - 20934 + 20935 4 5 - 34442 + 34443 5 6 - 39091 + 39093 6 9 - 30749 + 30750 9 15 - 28877 + 28878 15 26 - 25773 + 25774 26 57 - 27025 + 27026 57 517 - 25910 + 25911 518 @@ -8782,17 +8889,17 @@ 1 2 - 242198 + 242208 2 3 - 89513 + 89517 3 9 - 10172 + 10173 @@ -8802,11 +8909,11 @@ macro_argument_expanded - 82172776 + 82174179 invocation - 26182583 + 26181675 argument_index @@ -8814,7 +8921,7 @@ text - 207062 + 207070 @@ -8828,22 +8935,22 @@ 1 2 - 9643267 + 9641676 2 3 - 9733979 + 9734381 3 4 - 4982750 + 4982956 4 67 - 1822585 + 1822661 @@ -8859,22 +8966,22 @@ 1 2 - 12591172 + 12589703 2 3 - 8396548 + 8396895 3 4 - 4208468 + 4208641 4 9 - 986394 + 986434 @@ -8899,7 +9006,7 @@ 646904 - 2488874 + 2488685 31 @@ -8942,22 +9049,22 @@ 1 2 - 21744 + 21745 2 3 - 26751 + 26753 3 4 - 43299 + 43301 4 5 - 15842 + 15843 5 @@ -8967,7 +9074,7 @@ 6 7 - 18325 + 18326 7 @@ -8977,12 +9084,12 @@ 10 19 - 18251 + 18252 19 51 - 15695 + 15696 51 @@ -8991,8 +9098,8 @@ 251 - 1169605 - 9467 + 1169416 + 9468 @@ -9008,17 +9115,17 @@ 1 2 - 104630 + 104634 2 3 - 88556 + 88559 3 66 - 13875 + 13876 @@ -9028,11 +9135,11 @@ functions - 4043206 + 4042957 id - 4043206 + 4042957 name @@ -9054,7 +9161,7 @@ 1 2 - 4043206 + 4042957 @@ -9070,7 +9177,7 @@ 1 2 - 4043206 + 4042957 @@ -9086,12 +9193,12 @@ 1 2 - 1441362 + 1441611 2 4 - 140377 + 140128 4 @@ -9161,8 +9268,8 @@ 124 - 21974 - 21975 + 21972 + 21973 124 @@ -9219,26 +9326,26 @@ builtin_functions - 30802 + 30803 id - 30802 + 30803 function_entry_point - 1134667 + 1134646 id - 1130944 + 1130923 entry_point - 1134667 + 1134646 @@ -9252,7 +9359,7 @@ 1 2 - 1127762 + 1127741 2 @@ -9273,7 +9380,7 @@ 1 2 - 1134667 + 1134646 @@ -9283,11 +9390,11 @@ function_return_type - 4060505 + 4060256 id - 4043206 + 4042957 return_type @@ -9305,7 +9412,7 @@ 1 2 - 4025908 + 4025659 2 @@ -9637,33 +9744,33 @@ function_deleted - 87800 + 87799 id - 87800 + 87799 function_defaulted - 51526 + 51525 id - 51526 + 51525 function_prototyped - 4041713 + 4041464 id - 4041713 + 4041464 @@ -9821,15 +9928,15 @@ fun_decls - 4200011 + 4199638 id - 4194038 + 4193664 function - 4018690 + 4018441 type_id @@ -9855,7 +9962,7 @@ 1 2 - 4194038 + 4193664 @@ -9871,7 +9978,7 @@ 1 2 - 4188064 + 4187691 2 @@ -9892,7 +9999,7 @@ 1 2 - 4194038 + 4193664 @@ -9908,7 +10015,7 @@ 1 2 - 4194038 + 4193664 @@ -9924,12 +10031,12 @@ 1 2 - 3857903 + 3857778 2 5 - 160787 + 160662 @@ -9945,7 +10052,7 @@ 1 2 - 4000396 + 4000147 2 @@ -9966,7 +10073,7 @@ 1 2 - 4018690 + 4018441 @@ -9982,12 +10089,12 @@ 1 2 - 3878312 + 3877814 2 4 - 140377 + 140626 @@ -10022,7 +10129,7 @@ 364 - 10299 + 10296 1244 @@ -10057,7 +10164,7 @@ 45797 - 1485 + 1483 9907 248 @@ -10137,12 +10244,12 @@ 1 2 - 1328114 + 1328363 2 3 - 193641 + 193392 3 @@ -10168,12 +10275,12 @@ 1 2 - 1440864 + 1441113 2 4 - 140875 + 140626 4 @@ -10607,15 +10714,15 @@ fun_decl_noexcept - 140906 + 140904 fun_decl - 140906 + 140904 constant - 140466 + 140464 @@ -10629,7 +10736,7 @@ 1 2 - 140906 + 140904 @@ -10645,7 +10752,7 @@ 1 2 - 140026 + 140024 2 @@ -10930,11 +11037,11 @@ param_decl_bind - 7295294 + 7295169 id - 7295294 + 7295169 index @@ -10942,7 +11049,7 @@ fun_decl - 3524381 + 3524256 @@ -10956,7 +11063,7 @@ 1 2 - 7295294 + 7295169 @@ -10972,7 +11079,7 @@ 1 2 - 7295294 + 7295169 @@ -11011,8 +11118,8 @@ 622 - 28320 - 28321 + 28319 + 28320 124 @@ -11052,8 +11159,8 @@ 622 - 28320 - 28321 + 28319 + 28320 124 @@ -11070,7 +11177,7 @@ 1 2 - 1506075 + 1505951 2 @@ -11106,7 +11213,7 @@ 1 2 - 1506075 + 1505951 2 @@ -11136,15 +11243,15 @@ var_decls - 9375077 + 9374952 id - 9368606 + 9368481 variable - 9027368 + 9026372 type_id @@ -11170,7 +11277,7 @@ 1 2 - 9368606 + 9368481 @@ -11186,7 +11293,7 @@ 1 2 - 9362135 + 9362010 2 @@ -11207,7 +11314,7 @@ 1 2 - 9368606 + 9368481 @@ -11223,7 +11330,7 @@ 1 2 - 9368606 + 9368481 @@ -11239,12 +11346,12 @@ 1 2 - 8703553 + 8701686 2 5 - 323814 + 324686 @@ -11260,7 +11367,7 @@ 1 2 - 8974353 + 8973357 2 @@ -11281,7 +11388,7 @@ 1 2 - 8922209 + 8921213 2 @@ -11302,12 +11409,12 @@ 1 2 - 8782702 + 8780711 2 4 - 244665 + 245661 @@ -11378,7 +11485,7 @@ 11 - 2872 + 2870 80891 @@ -11486,7 +11593,7 @@ 25 - 27139 + 27138 31236 @@ -11503,12 +11610,12 @@ 1 2 - 475766 + 476015 2 3 - 164894 + 164769 3 @@ -11518,7 +11625,7 @@ 4 8 - 72180 + 72055 8 @@ -11620,7 +11727,7 @@ 20 - 2943 + 2942 30116 @@ -11637,7 +11744,7 @@ 1 2 - 5838874 + 5838873 2 @@ -11860,7 +11967,7 @@ location - 1543659 + 1543658 @@ -12445,19 +12552,19 @@ usings - 271001 + 271002 id - 271001 + 271002 element_id - 58827 + 58818 location - 26741 + 26742 kind @@ -12475,7 +12582,7 @@ 1 2 - 271001 + 271002 @@ -12491,7 +12598,7 @@ 1 2 - 271001 + 271002 @@ -12507,7 +12614,7 @@ 1 2 - 271001 + 271002 @@ -12523,7 +12630,7 @@ 1 2 - 51126 + 51118 2 @@ -12549,7 +12656,7 @@ 1 2 - 51126 + 51118 2 @@ -12575,7 +12682,7 @@ 1 2 - 58827 + 58818 @@ -12591,17 +12698,17 @@ 1 2 - 21092 + 21093 2 4 - 2282 + 2293 4 132 - 1946 + 1935 145 @@ -12622,17 +12729,17 @@ 1 2 - 21092 + 21093 2 4 - 2282 + 2293 4 132 - 1946 + 1935 145 @@ -12653,7 +12760,7 @@ 1 2 - 26741 + 26742 @@ -12672,8 +12779,8 @@ 10 - 25368 - 25369 + 25367 + 25368 10 @@ -12693,8 +12800,8 @@ 10 - 5378 - 5379 + 5377 + 5378 10 @@ -12726,15 +12833,15 @@ using_container - 577834 + 577847 parent - 21807 + 21808 child - 271001 + 271002 @@ -12778,7 +12885,7 @@ 145 146 - 2608 + 2609 146 @@ -12799,27 +12906,27 @@ 1 2 - 96225 + 96218 2 3 - 119800 + 119805 3 4 - 20019 + 20020 4 5 - 26604 + 26605 5 65 - 8352 + 8353 @@ -13437,15 +13544,15 @@ params - 7052246 + 7051250 id - 7011800 + 7010805 function - 3400305 + 3400056 index @@ -13467,7 +13574,7 @@ 1 2 - 7011800 + 7010805 @@ -13483,7 +13590,7 @@ 1 2 - 7011800 + 7010805 @@ -13499,7 +13606,7 @@ 1 2 - 6971355 + 6970359 2 @@ -13525,7 +13632,7 @@ 2 3 - 924776 + 924652 3 @@ -13540,7 +13647,7 @@ 5 65 - 145978 + 145853 @@ -13561,7 +13668,7 @@ 2 3 - 924776 + 924652 3 @@ -13576,7 +13683,7 @@ 5 65 - 145978 + 145853 @@ -13597,7 +13704,7 @@ 2 3 - 1029313 + 1029188 3 @@ -13607,7 +13714,7 @@ 4 11 - 154938 + 154813 @@ -13641,13 +13748,13 @@ 622 - 322 - 15505 + 321 + 15503 622 - 27323 - 27324 + 27321 + 27322 124 @@ -13682,13 +13789,13 @@ 622 - 322 - 15505 + 321 + 15503 622 - 27323 - 27324 + 27321 + 27322 124 @@ -13842,7 +13949,7 @@ new - 150382 + 150383 old @@ -13928,7 +14035,7 @@ name - 642757 + 642756 @@ -14278,19 +14385,19 @@ localvariables - 724728 + 724674 id - 724728 + 724674 type_id - 53300 + 53296 name - 101414 + 101406 @@ -14304,7 +14411,7 @@ 1 2 - 724728 + 724674 @@ -14320,7 +14427,7 @@ 1 2 - 724728 + 724674 @@ -14336,7 +14443,7 @@ 1 2 - 28790 + 28788 2 @@ -14346,12 +14453,12 @@ 3 4 - 4021 + 4020 4 6 - 4061 + 4060 6 @@ -14361,7 +14468,7 @@ 12 162 - 4001 + 4000 162 @@ -14382,12 +14489,12 @@ 1 2 - 38250 + 38247 2 3 - 6704 + 6703 3 @@ -14413,12 +14520,12 @@ 1 2 - 62404 + 62400 2 3 - 16004 + 16003 3 @@ -14428,7 +14535,7 @@ 4 8 - 8130 + 8129 8 @@ -14454,12 +14561,12 @@ 1 2 - 84403 + 84396 2 3 - 8393 + 8392 3 @@ -14547,15 +14654,15 @@ orphaned_variables - 44035 + 44034 var - 44035 + 44034 function - 40786 + 40785 @@ -14569,7 +14676,7 @@ 1 2 - 44035 + 44034 @@ -16210,7 +16317,7 @@ type_id - 1942143 + 1942142 @@ -17115,15 +17222,15 @@ typedefbase - 1755826 + 1755899 id - 1755826 + 1755899 type_id - 834256 + 834290 @@ -17137,7 +17244,7 @@ 1 2 - 1755826 + 1755899 @@ -17153,22 +17260,22 @@ 1 2 - 659363 + 659390 2 3 - 80760 + 80764 3 6 - 63918 + 63921 6 4525 - 30213 + 30214 @@ -17626,11 +17733,11 @@ type_operators - 7937 + 7936 id - 7937 + 7936 arg_type @@ -17656,7 +17763,7 @@ 1 2 - 7937 + 7936 @@ -17672,7 +17779,7 @@ 1 2 - 7937 + 7936 @@ -17688,7 +17795,7 @@ 1 2 - 7937 + 7936 @@ -17942,15 +18049,15 @@ usertypes - 4137700 + 4137871 id - 4137700 + 4137871 name - 915395 + 915412 kind @@ -17968,7 +18075,7 @@ 1 2 - 4137700 + 4137871 @@ -17984,7 +18091,7 @@ 1 2 - 4137700 + 4137871 @@ -18000,22 +18107,22 @@ 1 2 - 652104 + 652110 2 3 - 158113 + 158098 3 8 - 70325 + 70349 8 32667 - 34852 + 34853 @@ -18031,12 +18138,12 @@ 1 2 - 863858 + 863873 2 10 - 51536 + 51538 @@ -18171,8 +18278,8 @@ 10 - 12189 - 12190 + 12187 + 12188 10 @@ -18188,11 +18295,11 @@ usertypesize - 1359659 + 1359715 id - 1359659 + 1359715 size @@ -18214,7 +18321,7 @@ 1 2 - 1359659 + 1359715 @@ -18230,7 +18337,7 @@ 1 2 - 1359659 + 1359715 @@ -18488,11 +18595,11 @@ usertype_alias_kind - 1755826 + 1755899 id - 1755826 + 1755899 alias_kind @@ -18510,7 +18617,7 @@ 1 2 - 1755826 + 1755899 @@ -18541,11 +18648,11 @@ nontype_template_parameters - 761296 + 761282 id - 761296 + 761282 @@ -18625,11 +18732,11 @@ mangled_name - 7910443 + 7910194 id - 7910443 + 7910194 mangled_name @@ -18651,7 +18758,7 @@ 1 2 - 7910443 + 7910194 @@ -18667,7 +18774,7 @@ 1 2 - 7910443 + 7910194 @@ -18683,12 +18790,12 @@ 1 2 - 6016213 + 6016461 2 1120 - 333397 + 333148 @@ -18723,8 +18830,8 @@ 124 - 63558 - 63559 + 63556 + 63557 124 @@ -18756,59 +18863,59 @@ is_pod_class - 590976 + 590965 id - 590976 + 590965 is_standard_layout_class - 1120585 + 1120631 id - 1120585 + 1120631 is_complete - 1341565 + 1341620 id - 1341565 + 1341620 is_class_template - 231194 + 231204 id - 231194 + 231204 class_instantiation - 1122247 + 1122283 to - 1119207 + 1119253 from - 71524 + 71527 @@ -18822,12 +18929,12 @@ 1 2 - 1117071 + 1117128 2 8 - 2135 + 2125 @@ -18843,7 +18950,7 @@ 1 2 - 20387 + 20388 2 @@ -18863,27 +18970,27 @@ 5 7 - 6048 + 6059 7 10 - 5691 + 5680 10 17 - 5901 + 5891 17 - 52 - 5396 + 51 + 5365 - 52 + 51 4223 - 3513 + 3555 @@ -18893,11 +19000,11 @@ class_template_argument - 2887489 + 2887609 type_id - 1362258 + 1362314 index @@ -18905,7 +19012,7 @@ arg_type - 818791 + 818825 @@ -18919,27 +19026,27 @@ 1 2 - 577750 + 577774 2 3 - 408654 + 408671 3 4 - 249951 + 249962 4 7 - 102684 + 102688 7 113 - 23217 + 23218 @@ -18955,22 +19062,22 @@ 1 2 - 606185 + 606210 2 3 - 422593 + 422610 3 4 - 250782 + 250793 4 113 - 82696 + 82699 @@ -19078,22 +19185,22 @@ 1 2 - 511580 + 511601 2 3 - 166897 + 166904 3 5 - 74922 + 74925 5 46 - 61414 + 61417 46 @@ -19114,12 +19221,12 @@ 1 2 - 720904 + 720934 2 3 - 79593 + 79596 3 @@ -19134,11 +19241,11 @@ class_template_argument_value - 506797 + 506788 type_id - 204506 + 204502 index @@ -19146,7 +19253,7 @@ arg_value - 506662 + 506652 @@ -19160,12 +19267,12 @@ 1 2 - 154818 + 154815 2 3 - 43087 + 43086 3 @@ -19186,7 +19293,7 @@ 1 2 - 146999 + 146996 2 @@ -19329,7 +19436,7 @@ 1 2 - 506526 + 506517 2 @@ -19350,7 +19457,7 @@ 1 2 - 506662 + 506652 @@ -19360,15 +19467,15 @@ is_proxy_class_for - 48244 + 48246 id - 48244 + 48246 templ_param_id - 45582 + 45584 @@ -19382,7 +19489,7 @@ 1 2 - 48244 + 48246 @@ -19398,7 +19505,7 @@ 1 2 - 44867 + 44869 2 @@ -19609,7 +19716,7 @@ 1 2 - 5809103 + 5809102 2 @@ -19630,7 +19737,7 @@ 1 2 - 5809103 + 5809102 2 @@ -19720,15 +19827,15 @@ function_instantiation - 967596 + 967578 to - 967596 + 967578 from - 181523 + 181520 @@ -19742,7 +19849,7 @@ 1 2 - 967596 + 967578 @@ -19758,12 +19865,12 @@ 1 2 - 109834 + 109832 2 3 - 42546 + 42545 3 @@ -19788,11 +19895,11 @@ function_template_argument - 2468730 + 2468684 function_id - 1443897 + 1443870 index @@ -19800,7 +19907,7 @@ arg_type - 296063 + 296057 @@ -19814,22 +19921,22 @@ 1 2 - 777949 + 777934 2 3 - 410501 + 410494 3 4 - 170692 + 170689 4 15 - 84753 + 84752 @@ -19845,22 +19952,22 @@ 1 2 - 796971 + 796956 2 3 - 408606 + 408598 3 4 - 168526 + 168523 4 9 - 69793 + 69792 @@ -19998,12 +20105,12 @@ 1 2 - 173637 + 173634 2 3 - 26164 + 26163 3 @@ -20023,7 +20130,7 @@ 11 76 - 23219 + 23218 79 @@ -20044,12 +20151,12 @@ 1 2 - 255142 + 255137 2 3 - 31918 + 31917 3 @@ -20064,11 +20171,11 @@ function_template_argument_value - 449832 + 449824 function_id - 195502 + 195499 index @@ -20076,7 +20183,7 @@ arg_value - 447158 + 447150 @@ -20090,7 +20197,7 @@ 1 2 - 150418 + 150415 2 @@ -20116,7 +20223,7 @@ 1 2 - 143546 + 143544 2 @@ -20269,7 +20376,7 @@ 1 2 - 444484 + 444476 2 @@ -20290,7 +20397,7 @@ 1 2 - 447158 + 447150 @@ -20873,7 +20980,7 @@ type_id - 6090 + 6091 index @@ -20895,7 +21002,7 @@ 1 2 - 4996 + 4997 2 @@ -20926,7 +21033,7 @@ 1 2 - 5017 + 5018 2 @@ -21347,11 +21454,11 @@ concept_instantiation - 90160 + 90159 to - 90160 + 90159 from @@ -21369,7 +21476,7 @@ 1 2 - 90160 + 90159 @@ -21465,22 +21572,22 @@ is_type_constraint - 36789 + 36788 concept_id - 36789 + 36788 concept_template_argument - 112705 + 112704 concept_id - 76152 + 76151 index @@ -21502,7 +21609,7 @@ 1 2 - 46335 + 46334 2 @@ -21636,7 +21743,7 @@ 1 2 - 10361 + 10360 2 @@ -21838,15 +21945,15 @@ routinetypes - 600588 + 600577 id - 600588 + 600577 return_type - 282016 + 282011 @@ -21860,7 +21967,7 @@ 1 2 - 600588 + 600577 @@ -21876,12 +21983,12 @@ 1 2 - 232565 + 232561 2 3 - 34998 + 34997 3 @@ -22579,11 +22686,11 @@ funspecifiers - 9694661 + 9693167 func_id - 4002014 + 4002387 spec_id @@ -22601,17 +22708,17 @@ 1 2 - 1525489 + 1527356 2 3 - 505634 + 504514 3 4 - 1034540 + 1034166 4 @@ -22715,8 +22822,8 @@ 124 - 15137 - 15138 + 15135 + 15136 124 @@ -22725,8 +22832,8 @@ 124 - 22777 - 22778 + 22767 + 22768 124 @@ -23979,11 +24086,11 @@ attribute_arg_value - 16585 + 16584 arg - 16585 + 16584 value @@ -24001,7 +24108,7 @@ 1 2 - 16585 + 16584 @@ -24135,15 +24242,15 @@ attribute_arg_constant - 71640 + 71632 arg - 71640 + 71632 constant - 71640 + 71632 @@ -24157,7 +24264,7 @@ 1 2 - 71640 + 71632 @@ -24173,7 +24280,7 @@ 1 2 - 71640 + 71632 @@ -24657,7 +24764,7 @@ member - 4182340 + 4182091 parent @@ -24669,7 +24776,7 @@ child - 4177735 + 4177486 @@ -24947,7 +25054,7 @@ 1 2 - 4177735 + 4177486 @@ -24963,7 +25070,7 @@ 1 2 - 4173131 + 4172881 2 @@ -24978,15 +25085,15 @@ enclosingfunction - 114982 + 114986 child - 114982 + 114986 parent - 69094 + 69097 @@ -25000,7 +25107,7 @@ 1 2 - 114982 + 114986 @@ -25016,12 +25123,12 @@ 1 2 - 37471 + 37473 2 3 - 24479 + 24480 3 @@ -25041,15 +25148,15 @@ derivations - 473796 + 473787 derivation - 473796 + 473787 sub - 452201 + 452193 index @@ -25057,11 +25164,11 @@ super - 234021 + 234016 location - 35167 + 35166 @@ -25075,7 +25182,7 @@ 1 2 - 473796 + 473787 @@ -25091,7 +25198,7 @@ 1 2 - 473796 + 473787 @@ -25107,7 +25214,7 @@ 1 2 - 473796 + 473787 @@ -25123,7 +25230,7 @@ 1 2 - 473796 + 473787 @@ -25139,12 +25246,12 @@ 1 2 - 435785 + 435777 2 9 - 16416 + 16415 @@ -25160,12 +25267,12 @@ 1 2 - 435785 + 435777 2 8 - 16416 + 16415 @@ -25181,12 +25288,12 @@ 1 2 - 435785 + 435777 2 9 - 16416 + 16415 @@ -25202,12 +25309,12 @@ 1 2 - 435785 + 435777 2 8 - 16416 + 16415 @@ -25362,12 +25469,12 @@ 1 2 - 224273 + 224268 2 1655 - 9748 + 9747 @@ -25383,12 +25490,12 @@ 1 2 - 224273 + 224268 2 1655 - 9748 + 9747 @@ -25404,7 +25511,7 @@ 1 2 - 233581 + 233576 2 @@ -25425,12 +25532,12 @@ 1 2 - 228707 + 228702 2 81 - 5314 + 5313 @@ -25446,7 +25553,7 @@ 1 2 - 26333 + 26332 2 @@ -25482,7 +25589,7 @@ 1 2 - 26333 + 26332 2 @@ -25518,7 +25625,7 @@ 1 2 - 35167 + 35166 @@ -25534,7 +25641,7 @@ 1 2 - 28533 + 28532 2 @@ -25559,11 +25666,11 @@ derspecifiers - 475556 + 475547 der_id - 473356 + 473347 spec_id @@ -25581,7 +25688,7 @@ 1 2 - 471156 + 471147 2 @@ -25627,11 +25734,11 @@ direct_base_offsets - 447056 + 447048 der_id - 447056 + 447048 offset @@ -25649,7 +25756,7 @@ 1 2 - 447056 + 447048 @@ -25846,19 +25953,19 @@ frienddecls - 695869 + 767814 id - 695869 + 767814 type_id - 42140 + 54357 decl_id - 77341 + 100728 location @@ -25876,7 +25983,7 @@ 1 2 - 695869 + 767814 @@ -25892,7 +25999,7 @@ 1 2 - 695869 + 767814 @@ -25908,7 +26015,7 @@ 1 2 - 695869 + 767814 @@ -25924,46 +26031,41 @@ 1 2 - 6160 + 5584 2 3 - 13843 + 24978 3 - 7 - 3553 - - - 7 - 12 - 3418 + 8 + 4806 - 12 - 20 - 3621 + 8 + 17 + 4738 - 20 - 32 - 3283 + 17 + 27 + 4467 - 33 - 50 - 3757 + 27 + 45 + 4298 - 50 - 80 - 3757 + 45 + 81 + 4738 - 101 - 120 + 102 + 121 744 @@ -25980,46 +26082,41 @@ 1 2 - 6160 + 5584 2 3 - 13843 + 24978 3 - 7 - 3553 - - - 7 - 12 - 3418 + 8 + 4806 - 12 - 20 - 3621 + 8 + 17 + 4738 - 20 - 32 - 3283 + 17 + 27 + 4467 - 33 - 50 - 3757 + 27 + 45 + 4298 - 50 - 80 - 3757 + 45 + 81 + 4738 - 101 - 120 + 102 + 121 744 @@ -26036,7 +26133,7 @@ 1 2 - 40786 + 53004 2 @@ -26057,32 +26154,32 @@ 1 2 - 47792 + 67490 2 3 - 5889 + 8157 3 - 8 - 5957 + 9 + 9206 - 8 - 15 - 6024 + 9 + 24 + 7615 - 15 - 40 - 6024 + 24 + 136 + 7649 - 40 - 164 - 5652 + 136 + 191 + 609 @@ -26098,32 +26195,32 @@ 1 2 - 47792 + 67490 2 3 - 5889 + 8157 3 - 8 - 5957 + 9 + 9206 - 8 - 15 - 6024 + 9 + 24 + 7615 - 15 - 40 - 6024 + 24 + 136 + 7649 - 40 - 164 - 5652 + 136 + 191 + 609 @@ -26139,12 +26236,12 @@ 1 2 - 76664 + 99509 2 - 5 - 676 + 6 + 1218 @@ -26164,7 +26261,7 @@ 2 - 20370 + 22496 372 @@ -26185,7 +26282,7 @@ 2 - 1148 + 1509 135 @@ -26206,7 +26303,7 @@ 2 - 2132 + 2844 338 @@ -26217,19 +26314,19 @@ comments - 11208577 + 11208576 id - 11208577 + 11208576 contents - 4294966 + 4294965 location - 11208577 + 11208576 @@ -26243,7 +26340,7 @@ 1 2 - 11208577 + 11208576 @@ -26259,7 +26356,7 @@ 1 2 - 11208577 + 11208576 @@ -26327,7 +26424,7 @@ 1 2 - 11208577 + 11208576 @@ -26343,7 +26440,7 @@ 1 2 - 11208577 + 11208576 @@ -26411,7 +26508,7 @@ exprconv - 9634075 + 9634074 converted @@ -26419,7 +26516,7 @@ conversion - 9634075 + 9634074 @@ -26433,7 +26530,7 @@ 1 2 - 9633864 + 9633863 2 @@ -26454,7 +26551,7 @@ 1 2 - 9634075 + 9634074 @@ -26475,11 +26572,11 @@ synthetic_destructor_call - 1666649 + 1666623 element - 1241202 + 1241183 i @@ -26487,7 +26584,7 @@ destructor_call - 1666649 + 1666623 @@ -26501,12 +26598,12 @@ 1 2 - 826181 + 826168 2 3 - 408242 + 408236 3 @@ -26527,12 +26624,12 @@ 1 2 - 826181 + 826168 2 3 - 408242 + 408236 3 @@ -26685,7 +26782,7 @@ 1 2 - 1666649 + 1666623 @@ -26701,7 +26798,7 @@ 1 2 - 1666649 + 1666623 @@ -26711,11 +26808,11 @@ namespaces - 8615 + 8616 id - 8615 + 8616 name @@ -26733,7 +26830,7 @@ 1 2 - 8615 + 8616 @@ -26754,7 +26851,7 @@ 2 3 - 525 + 526 3 @@ -26888,11 +26985,11 @@ exprparents - 19456297 + 19456296 expr_id - 19456297 + 19456296 child_index @@ -26900,7 +26997,7 @@ parent_id - 12941381 + 12941380 @@ -26914,7 +27011,7 @@ 1 2 - 19456297 + 19456296 @@ -26930,7 +27027,7 @@ 1 2 - 19456297 + 19456296 @@ -27094,22 +27191,22 @@ expr_isload - 6898016 + 6898025 expr_id - 6898016 + 6898025 conversionkinds - 6051175 + 6051177 expr_id - 6051175 + 6051177 kind @@ -27127,7 +27224,7 @@ 1 2 - 6051175 + 6051177 @@ -27171,8 +27268,8 @@ 1 - 5832065 - 5832066 + 5832067 + 5832068 1 @@ -27183,11 +27280,11 @@ iscall - 5790819 + 5790730 caller - 5790819 + 5790730 kind @@ -27205,7 +27302,7 @@ 1 2 - 5790819 + 5790730 @@ -27367,23 +27464,23 @@ namequalifiers - 3042587 + 3042541 id - 3042587 + 3042541 qualifiableelement - 3042587 + 3042541 qualifyingelement - 47729 + 47728 location - 554605 + 554597 @@ -27397,7 +27494,7 @@ 1 2 - 3042587 + 3042541 @@ -27413,7 +27510,7 @@ 1 2 - 3042587 + 3042541 @@ -27429,7 +27526,7 @@ 1 2 - 3042587 + 3042541 @@ -27445,7 +27542,7 @@ 1 2 - 3042587 + 3042541 @@ -27461,7 +27558,7 @@ 1 2 - 3042587 + 3042541 @@ -27477,7 +27574,7 @@ 1 2 - 3042587 + 3042541 @@ -27498,7 +27595,7 @@ 2 3 - 8173 + 8172 3 @@ -27534,7 +27631,7 @@ 2 3 - 8173 + 8172 3 @@ -27596,17 +27693,17 @@ 1 2 - 79413 + 79412 2 6 - 41015 + 41014 6 7 - 397795 + 397789 7 @@ -27627,17 +27724,17 @@ 1 2 - 79413 + 79412 2 6 - 41015 + 41014 6 7 - 397795 + 397789 7 @@ -27658,7 +27755,7 @@ 1 2 - 114958 + 114956 2 @@ -27668,7 +27765,7 @@ 4 5 - 414055 + 414049 5 @@ -27776,15 +27873,15 @@ funbind - 5806092 + 5806003 expr - 5803625 + 5803536 fun - 275286 + 275282 @@ -27798,7 +27895,7 @@ 1 2 - 5801158 + 5801069 2 @@ -27819,12 +27916,12 @@ 1 2 - 181071 + 181068 2 3 - 38312 + 38311 3 @@ -27839,7 +27936,7 @@ 8 37798 - 16067 + 16066 @@ -27849,11 +27946,11 @@ expr_allocator - 44949 + 44948 expr - 44949 + 44948 func @@ -27875,7 +27972,7 @@ 1 2 - 44949 + 44948 @@ -27891,7 +27988,7 @@ 1 2 - 44949 + 44948 @@ -27975,11 +28072,11 @@ expr_deallocator - 53478 + 53477 expr - 53478 + 53477 func @@ -28001,7 +28098,7 @@ 1 2 - 53478 + 53477 @@ -28017,7 +28114,7 @@ 1 2 - 53478 + 53477 @@ -28266,11 +28363,11 @@ values - 13541403 + 13541563 id - 13541403 + 13541563 str @@ -28288,7 +28385,7 @@ 1 2 - 13541403 + 13541563 @@ -28334,11 +28431,11 @@ valuetext - 6637663 + 6637568 id - 6637663 + 6637568 text @@ -28356,7 +28453,7 @@ 1 2 - 6637663 + 6637568 @@ -28386,7 +28483,7 @@ 7 - 593719 + 593723 27872 @@ -28397,15 +28494,15 @@ valuebind - 13649553 + 13649714 val - 13541403 + 13541563 expr - 13649553 + 13649714 @@ -28419,7 +28516,7 @@ 1 2 - 13451245 + 13451406 2 @@ -28440,7 +28537,7 @@ 1 2 - 13649553 + 13649714 @@ -28842,23 +28939,23 @@ initialisers - 2244827 + 2244830 init - 2244827 + 2244830 var - 978849 + 978850 expr - 2244827 + 2244830 location - 515723 + 515724 @@ -28872,7 +28969,7 @@ 1 2 - 2244827 + 2244830 @@ -28888,7 +28985,7 @@ 1 2 - 2244827 + 2244830 @@ -28904,7 +29001,7 @@ 1 2 - 2244827 + 2244830 @@ -28920,7 +29017,7 @@ 1 2 - 868819 + 868820 2 @@ -28946,7 +29043,7 @@ 1 2 - 868819 + 868820 2 @@ -28972,7 +29069,7 @@ 1 2 - 978841 + 978842 2 @@ -28993,7 +29090,7 @@ 1 2 - 2244827 + 2244830 @@ -29009,7 +29106,7 @@ 1 2 - 2244827 + 2244830 @@ -29025,7 +29122,7 @@ 1 2 - 2244827 + 2244830 @@ -29041,7 +29138,7 @@ 1 2 - 414196 + 414197 2 @@ -29098,7 +29195,7 @@ 1 2 - 414196 + 414197 2 @@ -29134,15 +29231,15 @@ expr_ancestor - 1672612 + 1672586 exp - 1672612 + 1672586 ancestor - 837121 + 837108 @@ -29156,7 +29253,7 @@ 1 2 - 1672612 + 1672586 @@ -29177,7 +29274,7 @@ 2 3 - 810049 + 810037 3 @@ -29192,11 +29289,11 @@ exprs - 25213263 + 25213262 id - 25213263 + 25213262 kind @@ -29218,7 +29315,7 @@ 1 2 - 25213263 + 25213262 @@ -29234,7 +29331,7 @@ 1 2 - 25213263 + 25213262 @@ -29463,15 +29560,15 @@ expr_reuse - 844479 + 844466 reuse - 844479 + 844466 original - 844479 + 844466 value_category @@ -29489,7 +29586,7 @@ 1 2 - 844479 + 844466 @@ -29505,7 +29602,7 @@ 1 2 - 844479 + 844466 @@ -29521,7 +29618,7 @@ 1 2 - 844479 + 844466 @@ -29537,7 +29634,7 @@ 1 2 - 844479 + 844466 @@ -29589,11 +29686,11 @@ expr_types - 25213263 + 25213262 id - 25213263 + 25213262 typeid @@ -29615,7 +29712,7 @@ 1 2 - 25213263 + 25213262 @@ -29631,7 +29728,7 @@ 1 2 - 25213263 + 25213262 @@ -29776,15 +29873,15 @@ new_allocated_type - 45897 + 45896 expr - 45897 + 45896 type_id - 27213 + 27212 @@ -29798,7 +29895,7 @@ 1 2 - 45897 + 45896 @@ -29819,7 +29916,7 @@ 2 3 - 14385 + 14384 3 @@ -29897,11 +29994,11 @@ param_ref_to_this - 24953 + 24951 expr - 24953 + 24951 @@ -31244,15 +31341,15 @@ condition_decl_bind - 407684 + 407678 expr - 407684 + 407678 decl - 407684 + 407678 @@ -31266,7 +31363,7 @@ 1 2 - 407684 + 407678 @@ -31282,7 +31379,7 @@ 1 2 - 407684 + 407678 @@ -31292,11 +31389,11 @@ typeid_bind - 47589 + 47588 expr - 47589 + 47588 type_id @@ -31314,7 +31411,7 @@ 1 2 - 47589 + 47588 @@ -33124,11 +33221,11 @@ stmts - 6349657 + 6349665 id - 6349657 + 6349665 kind @@ -33136,7 +33233,7 @@ location - 2676168 + 2676171 @@ -33150,7 +33247,7 @@ 1 2 - 6349657 + 6349665 @@ -33166,7 +33263,7 @@ 1 2 - 6349657 + 6349665 @@ -33404,7 +33501,7 @@ 1 2 - 2218095 + 2218098 2 @@ -33435,7 +33532,7 @@ 1 2 - 2593461 + 2593464 2 @@ -33653,15 +33750,15 @@ if_else - 435786 + 435779 if_stmt - 435786 + 435779 else_id - 435786 + 435779 @@ -33675,7 +33772,7 @@ 1 2 - 435786 + 435779 @@ -33691,7 +33788,7 @@ 1 2 - 435786 + 435779 @@ -34085,11 +34182,11 @@ switch_case - 833624 + 833612 switch_stmt - 410623 + 410617 index @@ -34097,7 +34194,7 @@ case_id - 833624 + 833612 @@ -34116,12 +34213,12 @@ 2 3 - 407749 + 407742 3 19 - 2853 + 2852 @@ -34142,12 +34239,12 @@ 2 3 - 407749 + 407742 3 19 - 2853 + 2852 @@ -34305,7 +34402,7 @@ 1 2 - 833624 + 833612 @@ -34321,7 +34418,7 @@ 1 2 - 833624 + 833612 @@ -34331,15 +34428,15 @@ switch_body - 410623 + 410617 switch_stmt - 410623 + 410617 body_id - 410623 + 410617 @@ -34353,7 +34450,7 @@ 1 2 - 410623 + 410617 @@ -34369,7 +34466,7 @@ 1 2 - 410623 + 410617 @@ -34571,11 +34668,11 @@ stmtparents - 5611096 + 5611103 id - 5611096 + 5611103 index @@ -34583,7 +34680,7 @@ parent - 2374341 + 2374344 @@ -34597,7 +34694,7 @@ 1 2 - 5611096 + 5611103 @@ -34613,7 +34710,7 @@ 1 2 - 5611096 + 5611103 @@ -34751,7 +34848,7 @@ 1 2 - 1355057 + 1355059 2 @@ -34761,12 +34858,12 @@ 3 4 - 151046 + 151047 4 6 - 155241 + 155242 6 @@ -34792,7 +34889,7 @@ 1 2 - 1355057 + 1355059 2 @@ -34802,12 +34899,12 @@ 3 4 - 151046 + 151047 4 6 - 155241 + 155242 6 @@ -34838,11 +34935,11 @@ stmt_decl_bind - 723619 + 723620 stmt - 713083 + 713084 num @@ -34850,7 +34947,7 @@ decl - 723619 + 723620 @@ -34864,7 +34961,7 @@ 1 2 - 705641 + 705642 2 @@ -34885,7 +34982,7 @@ 1 2 - 705641 + 705642 2 @@ -35018,7 +35115,7 @@ 1 2 - 723619 + 723620 @@ -35034,7 +35131,7 @@ 1 2 - 723619 + 723620 @@ -35044,11 +35141,11 @@ stmt_decl_entry_bind - 723619 + 723620 stmt - 713083 + 713084 num @@ -35056,7 +35153,7 @@ decl_entry - 723619 + 723620 @@ -35070,7 +35167,7 @@ 1 2 - 705641 + 705642 2 @@ -35091,7 +35188,7 @@ 1 2 - 705641 + 705642 2 @@ -35224,7 +35321,7 @@ 1 2 - 723619 + 723620 @@ -35240,7 +35337,7 @@ 1 2 - 723619 + 723620 @@ -35489,11 +35586,11 @@ preprocdirects - 5395215 + 5395214 id - 5395215 + 5395214 kind @@ -35515,7 +35612,7 @@ 1 2 - 5395215 + 5395214 @@ -35531,7 +35628,7 @@ 1 2 - 5395215 + 5395214 @@ -35890,7 +35987,7 @@ 1 2 - 1531463 + 1531462 2 @@ -35936,15 +36033,15 @@ includes - 317352 + 317365 id - 317352 + 317365 included - 58458 + 58461 @@ -35958,7 +36055,7 @@ 1 2 - 317352 + 317365 @@ -35974,17 +36071,17 @@ 1 2 - 28929 + 28930 2 3 - 9404 + 9405 3 4 - 4933 + 4934 4 @@ -36012,6 +36109,54 @@ + + embeds + 1 + + + id + 1 + + + included + 1 + + + + + id + included + + + 12 + + + 1 + 2 + 1 + + + + + + + included + id + + + 12 + + + 1 + 2 + 1 + + + + + + + link_targets 816 @@ -36062,11 +36207,11 @@ link_parent - 30225290 + 30224721 element - 3843783 + 3843710 link_target @@ -36084,17 +36229,17 @@ 1 2 - 527072 + 527062 2 9 - 26773 + 26772 9 10 - 3289937 + 3289875 diff --git a/cpp/ql/lib/upgrades/1402ab319d20cdc9289deb7bfc1c70f36be44d44/old.dbscheme b/cpp/ql/lib/upgrades/1402ab319d20cdc9289deb7bfc1c70f36be44d44/old.dbscheme new file mode 100644 index 000000000000..1402ab319d20 --- /dev/null +++ b/cpp/ql/lib/upgrades/1402ab319d20cdc9289deb7bfc1c70f36be44d44/old.dbscheme @@ -0,0 +1,2479 @@ + +/*- 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: + * + * gcc -c f1.c f2.c f3.c + * + * 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: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#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 +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file 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 +); + +/** + * 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( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int 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`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + 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 +); + +/*- C++ dbscheme -*/ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +pch_uses( + int pch: @pch ref, + int compilation: @compilation ref, + int id: @file ref +) + +#keyset[pch, compilation] +pch_creations( + int pch: @pch, + int compilation: @compilation ref, + int from: @file ref +) + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location_default ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +case @function.kind of + 0 = @unknown_function +| 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +// ... 6 = @builtin_function deprecated // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +builtin_functions( + int id: @function ref +) + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +// ... 40 _Decimal32 +// ... 41 _Decimal64 +// ... 42 _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +case @type_operator.kind of + 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +case @usertype.kind of + 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location_default ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location_default ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype + | @decltype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_default ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_default ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +| 394 = @isinvocable +| 395 = @isnothrowinvocable +| 396 = @isbitwisecloneable +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + | @isinvocable + | @isnothrowinvocable + | @isbitwisecloneable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +param_ref_to_this( + int expr: @param_ref ref +) + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_default ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +/** + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. + */ +overlayChangedFiles( + string path: string ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; diff --git a/cpp/ql/lib/upgrades/1402ab319d20cdc9289deb7bfc1c70f36be44d44/semmlecode.cpp.dbscheme b/cpp/ql/lib/upgrades/1402ab319d20cdc9289deb7bfc1c70f36be44d44/semmlecode.cpp.dbscheme new file mode 100644 index 000000000000..83100310bf73 --- /dev/null +++ b/cpp/ql/lib/upgrades/1402ab319d20cdc9289deb7bfc1c70f36be44d44/semmlecode.cpp.dbscheme @@ -0,0 +1,2483 @@ + +/*- 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: + * + * gcc -c f1.c f2.c f3.c + * + * 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: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#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 +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file 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 +); + +/** + * 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( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int 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`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + 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 +); + +/*- C++ dbscheme -*/ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +pch_uses( + int pch: @pch ref, + int compilation: @compilation ref, + int id: @file ref +) + +#keyset[pch, compilation] +pch_creations( + int pch: @pch, + int compilation: @compilation ref, + int from: @file ref +) + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location_default ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +case @function.kind of + 0 = @unknown_function +| 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +// ... 6 = @builtin_function deprecated // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +builtin_functions( + int id: @function ref +) + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +// ... 40 _Decimal32 +// ... 41 _Decimal64 +// ... 42 _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +case @type_operator.kind of + 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +case @usertype.kind of + 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location_default ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location_default ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype + | @decltype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_default ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_default ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +| 394 = @isinvocable +| 395 = @isnothrowinvocable +| 396 = @isbitwisecloneable +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + | @isinvocable + | @isnothrowinvocable + | @isbitwisecloneable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +param_ref_to_this( + int expr: @param_ref ref +) + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_default ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/*- Database metadata -*/ + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +/*- Overlay support -*/ + +/** + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. + */ +overlayChangedFiles( + string path: string ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; diff --git a/cpp/ql/lib/upgrades/1402ab319d20cdc9289deb7bfc1c70f36be44d44/upgrade.properties b/cpp/ql/lib/upgrades/1402ab319d20cdc9289deb7bfc1c70f36be44d44/upgrade.properties new file mode 100644 index 000000000000..00fae2d3bc61 --- /dev/null +++ b/cpp/ql/lib/upgrades/1402ab319d20cdc9289deb7bfc1c70f36be44d44/upgrade.properties @@ -0,0 +1,2 @@ +description: Sections for databaseMetadata and overlayChangedFiles +compatibility: full diff --git a/cpp/ql/lib/upgrades/83100310bf73eefc37c1d8d0ac98b2ca3019c7b6/old.dbscheme b/cpp/ql/lib/upgrades/83100310bf73eefc37c1d8d0ac98b2ca3019c7b6/old.dbscheme new file mode 100644 index 000000000000..83100310bf73 --- /dev/null +++ b/cpp/ql/lib/upgrades/83100310bf73eefc37c1d8d0ac98b2ca3019c7b6/old.dbscheme @@ -0,0 +1,2483 @@ + +/*- 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: + * + * gcc -c f1.c f2.c f3.c + * + * 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: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#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 +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file 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 +); + +/** + * 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( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int 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`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + 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 +); + +/*- C++ dbscheme -*/ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +pch_uses( + int pch: @pch ref, + int compilation: @compilation ref, + int id: @file ref +) + +#keyset[pch, compilation] +pch_creations( + int pch: @pch, + int compilation: @compilation ref, + int from: @file ref +) + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location_default ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +case @function.kind of + 0 = @unknown_function +| 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +// ... 6 = @builtin_function deprecated // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +builtin_functions( + int id: @function ref +) + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +// ... 40 _Decimal32 +// ... 41 _Decimal64 +// ... 42 _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +case @type_operator.kind of + 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +case @usertype.kind of + 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location_default ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location_default ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype + | @decltype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_default ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_default ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +| 394 = @isinvocable +| 395 = @isnothrowinvocable +| 396 = @isbitwisecloneable +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + | @isinvocable + | @isnothrowinvocable + | @isbitwisecloneable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +param_ref_to_this( + int expr: @param_ref ref +) + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_default ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/*- Database metadata -*/ + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +/*- Overlay support -*/ + +/** + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. + */ +overlayChangedFiles( + string path: string ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; diff --git a/cpp/ql/lib/upgrades/83100310bf73eefc37c1d8d0ac98b2ca3019c7b6/semmlecode.cpp.dbscheme b/cpp/ql/lib/upgrades/83100310bf73eefc37c1d8d0ac98b2ca3019c7b6/semmlecode.cpp.dbscheme new file mode 100644 index 000000000000..9439176c1d13 --- /dev/null +++ b/cpp/ql/lib/upgrades/83100310bf73eefc37c1d8d0ac98b2ca3019c7b6/semmlecode.cpp.dbscheme @@ -0,0 +1,2489 @@ + +/*- 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: + * + * gcc -c f1.c f2.c f3.c + * + * 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: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#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 +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file 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 +); + +/** + * 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( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int 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`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + 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 +); + +/*- C++ dbscheme -*/ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +pch_uses( + int pch: @pch ref, + int compilation: @compilation ref, + int id: @file ref +) + +#keyset[pch, compilation] +pch_creations( + int pch: @pch, + int compilation: @compilation ref, + int from: @file ref +) + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location_default ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +case @function.kind of + 0 = @unknown_function +| 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +// ... 6 = @builtin_function deprecated // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +builtin_functions( + int id: @function ref +) + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +// ... 40 _Decimal32 +// ... 41 _Decimal64 +// ... 42 _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +case @type_operator.kind of + 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +case @usertype.kind of + 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location_default ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location_default ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype + | @decltype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_default ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_default ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +| 394 = @isinvocable +| 395 = @isnothrowinvocable +| 396 = @isbitwisecloneable +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + | @isinvocable + | @isnothrowinvocable + | @isbitwisecloneable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +param_ref_to_this( + int expr: @param_ref ref +) + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_default ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 17 = @ppd_embed +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +embeds( + unique int id: @ppd_embed ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/*- Database metadata -*/ + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +/*- Overlay support -*/ + +/** + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. + */ +overlayChangedFiles( + string path: string ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; diff --git a/cpp/ql/lib/upgrades/83100310bf73eefc37c1d8d0ac98b2ca3019c7b6/upgrade.properties b/cpp/ql/lib/upgrades/83100310bf73eefc37c1d8d0ac98b2ca3019c7b6/upgrade.properties new file mode 100644 index 000000000000..2289f3b5a5f0 --- /dev/null +++ b/cpp/ql/lib/upgrades/83100310bf73eefc37c1d8d0ac98b2ca3019c7b6/upgrade.properties @@ -0,0 +1,2 @@ +description: Support embed preprocessor directive +compatibility: partial diff --git a/cpp/ql/lib/upgrades/9439176c1d1312787926458dd54d65a849069118/old.dbscheme b/cpp/ql/lib/upgrades/9439176c1d1312787926458dd54d65a849069118/old.dbscheme new file mode 100644 index 000000000000..9439176c1d13 --- /dev/null +++ b/cpp/ql/lib/upgrades/9439176c1d1312787926458dd54d65a849069118/old.dbscheme @@ -0,0 +1,2489 @@ + +/*- 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: + * + * gcc -c f1.c f2.c f3.c + * + * 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: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#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 +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file 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 +); + +/** + * 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( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int 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`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + 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 +); + +/*- C++ dbscheme -*/ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +pch_uses( + int pch: @pch ref, + int compilation: @compilation ref, + int id: @file ref +) + +#keyset[pch, compilation] +pch_creations( + int pch: @pch, + int compilation: @compilation ref, + int from: @file ref +) + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location_default ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +case @function.kind of + 0 = @unknown_function +| 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +// ... 6 = @builtin_function deprecated // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +builtin_functions( + int id: @function ref +) + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +// ... 40 _Decimal32 +// ... 41 _Decimal64 +// ... 42 _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +case @type_operator.kind of + 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +case @usertype.kind of + 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location_default ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location_default ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype + | @decltype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_default ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_default ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +| 394 = @isinvocable +| 395 = @isnothrowinvocable +| 396 = @isbitwisecloneable +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + | @isinvocable + | @isnothrowinvocable + | @isbitwisecloneable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +param_ref_to_this( + int expr: @param_ref ref +) + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_default ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 17 = @ppd_embed +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +embeds( + unique int id: @ppd_embed ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/*- Database metadata -*/ + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +/*- Overlay support -*/ + +/** + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. + */ +overlayChangedFiles( + string path: string ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; diff --git a/cpp/ql/lib/upgrades/9439176c1d1312787926458dd54d65a849069118/semmlecode.cpp.dbscheme b/cpp/ql/lib/upgrades/9439176c1d1312787926458dd54d65a849069118/semmlecode.cpp.dbscheme new file mode 100644 index 000000000000..7e7c2f55670f --- /dev/null +++ b/cpp/ql/lib/upgrades/9439176c1d1312787926458dd54d65a849069118/semmlecode.cpp.dbscheme @@ -0,0 +1,2517 @@ + +/*- 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: + * + * gcc -c f1.c f2.c f3.c + * + * 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: + * + * gcc -c f1.c f2.c f3.c + */ + unique int id : @compilation, + string cwd : string ref +); + +/** + * The arguments that were passed to the extractor for a compiler + * invocation. If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | *path to extractor* + * 1 | `--mimic` + * 2 | `/usr/bin/gcc` + * 3 | `-c` + * 4 | f1.c + * 5 | f2.c + * 6 | f3.c + */ +#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 +); + +/** + * Optionally, record the build mode for each compilation. + */ +compilation_build_mode( + unique int id : @compilation ref, + int mode : int ref +); + +/* +case @compilation_build_mode.mode of + 0 = @build_mode_none +| 1 = @build_mode_manual +| 2 = @build_mode_auto +; +*/ + +/** + * The source files that are compiled by a compiler invocation. + * If `id` is for the compiler invocation + * + * gcc -c f1.c f2.c f3.c + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.c + * 1 | f2.c + * 2 | f3.c + * + * Note that even if those files `#include` headers, those headers + * do not appear as rows. + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file 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 +); + +/** + * 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( + int diagnostic : @diagnostic ref, + int compilation : @compilation ref, + int file_number : int ref, + int file_number_diagnostic_number : int 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`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +/*- External data -*/ + +/** + * External data, loaded from CSV files during snapshot creation. See + * [Tutorial: Incorporating external data](https://help.semmle.com/wiki/display/SD/Tutorial%3A+Incorporating+external+data) + * for more information. + */ +externalData( + int id : @externalDataElement, + string path : string ref, + int column: int ref, + string value : string ref +); + +/*- Source location prefix -*/ + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/*- Files and folders -*/ + +/** + * The location of an element. + * The location spans column `startcolumn` of line `startline` to + * column `endcolumn` of line `endline` in file `file`. + * For more information, see + * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). + */ +locations_default( + unique int id: @location_default, + int file: @file ref, + int beginLine: int ref, + int beginColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @file | @folder + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +/*- Lines of code -*/ + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +/*- Diagnostic messages -*/ + +diagnostics( + unique int id: @diagnostic, + 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 +); + +/*- C++ dbscheme -*/ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +/** + * Gives the TRAP filename that `trap` is associated with. + * For debugging only. + */ +trap_filename( + int trap: @trap, + string filename: string ref +); + +/** + * In `build-mode: none` overlay mode, indicates that `source_file` + * (`/path/to/foo.c`) uses the TRAP file `trap_file`; i.e. it is the + * TRAP file corresponding to `foo.c`, something it transitively + * includes, or a template instantiation it transitively uses. + */ +source_file_uses_trap( + string source_file: string ref, + int trap_file: @trap ref +); + +/** + * Holds if there is a definition of `element` in TRAP file `trap_file`. + */ +in_trap( + int element: @element ref, + int trap_file: @trap ref +); + +pch_uses( + int pch: @pch ref, + int compilation: @compilation ref, + int id: @file ref +) + +#keyset[pch, compilation] +pch_creations( + int pch: @pch, + int compilation: @compilation ref, + int from: @file ref +) + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +fileannotations( + int id: @file ref, + int kind: int ref, + string name: string ref, + string value: string ref +); + +inmacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +affectedbymacroexpansion( + int id: @element ref, + int inv: @macroinvocation ref +); + +case @macroinvocation.kind of + 1 = @macro_expansion +| 2 = @other_macro_reference +; + +macroinvocations( + unique int id: @macroinvocation, + int macro_id: @ppd_define ref, + int location: @location_default ref, + int kind: int ref +); + +macroparent( + unique int id: @macroinvocation ref, + int parent_id: @macroinvocation ref +); + +// a macroinvocation may be part of another location +// the way to find a constant expression that uses a macro +// is thus to find a constant expression that has a location +// to which a macro invocation is bound +macrolocationbind( + int id: @macroinvocation ref, + int location: @location_default ref +); + +#keyset[invocation, argument_index] +macro_argument_unexpanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +#keyset[invocation, argument_index] +macro_argument_expanded( + int invocation: @macroinvocation ref, + int argument_index: int ref, + string text: string ref +); + +case @function.kind of + 0 = @unknown_function +| 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +// ... 6 = @builtin_function deprecated // GCC built-in functions, e.g. __builtin___memcpy_chk +| 7 = @user_defined_literal +| 8 = @deduction_guide +; + +functions( + unique int id: @function, + string name: string ref, + int kind: int ref +); + +builtin_functions( + int id: @function ref +) + +function_entry_point( + int id: @function ref, + unique int entry_point: @stmt ref +); + +function_return_type( + int id: @function ref, + int return_type: @type ref +); + +/** + * If `function` is a coroutine, then this gives the `std::experimental::resumable_traits` + * instance associated with it, and the variables representing the `handle` and `promise` + * for it. + */ +coroutine( + unique int function: @function ref, + int traits: @type ref +); + +/* +case @coroutine_placeholder_variable.kind of + 1 = @handle +| 2 = @promise +| 3 = @init_await_resume +; +*/ + +coroutine_placeholder_variable( + unique int placeholder_variable: @variable ref, + int kind: int ref, + int function: @function ref +) + +/** The `new` function used for allocating the coroutine state, if any. */ +coroutine_new( + unique int function: @function ref, + int new: @function ref +); + +/** The `delete` function used for deallocating the coroutine state, if any. */ +coroutine_delete( + unique int function: @function ref, + int delete: @function ref +); + +purefunctions(unique int id: @function ref); + +function_deleted(unique int id: @function ref); + +function_defaulted(unique int id: @function ref); + +function_prototyped(unique int id: @function ref) + +deduction_guide_for_class( + int id: @function ref, + int class_template: @usertype ref +) + +member_function_this_type( + unique int id: @function ref, + int this_type: @type ref +); + +#keyset[id, type_id] +fun_decls( + int id: @fun_decl, + int function: @function ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +fun_def(unique int id: @fun_decl ref); +fun_specialized(unique int id: @fun_decl ref); +fun_implicit(unique int id: @fun_decl ref); +fun_decl_specifiers( + int id: @fun_decl ref, + string name: string ref +) +#keyset[fun_decl, index] +fun_decl_throws( + int fun_decl: @fun_decl ref, + int index: int ref, + int type_id: @type ref +); +/* an empty throw specification is different from none */ +fun_decl_empty_throws(unique int fun_decl: @fun_decl ref); +fun_decl_noexcept( + int fun_decl: @fun_decl ref, + int constant: @expr ref +); +fun_decl_empty_noexcept(int fun_decl: @fun_decl ref); +fun_decl_typedef_type( + unique int fun_decl: @fun_decl ref, + int typedeftype_id: @usertype ref +); + +/* +case @fun_requires.kind of + 1 = @template_attached +| 2 = @function_attached +; +*/ + +fun_requires( + int id: @fun_decl ref, + int kind: int ref, + int constraint: @expr ref +); + +param_decl_bind( + unique int id: @var_decl ref, + int index: int ref, + int fun_decl: @fun_decl ref +); + +#keyset[id, type_id] +var_decls( + int id: @var_decl, + int variable: @variable ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); +var_def(unique int id: @var_decl ref); +var_specialized(int id: @var_decl ref); +var_decl_specifiers( + int id: @var_decl ref, + string name: string ref +) +is_structured_binding(unique int id: @variable ref); +var_requires( + int id: @var_decl ref, + int constraint: @expr ref +); + +type_decls( + unique int id: @type_decl, + int type_id: @type ref, + int location: @location_default ref +); +type_def(unique int id: @type_decl ref); +type_decl_top( + unique int type_decl: @type_decl ref +); +type_requires( + int id: @type_decl ref, + int constraint: @expr ref +); + +namespace_decls( + unique int id: @namespace_decl, + int namespace_id: @namespace ref, + int location: @location_default ref, + int bodylocation: @location_default ref +); + +case @using.kind of + 1 = @using_declaration +| 2 = @using_directive +| 3 = @using_enum_declaration +; + +usings( + unique int id: @using, + int element_id: @element ref, + int location: @location_default ref, + int kind: int ref +); + +/** The element which contains the `using` declaration. */ +using_container( + int parent: @element ref, + int child: @using ref +); + +static_asserts( + unique int id: @static_assert, + int condition : @expr ref, + string message : string ref, + int location: @location_default ref, + int enclosing : @element ref +); + +// each function has an ordered list of parameters +#keyset[id, type_id] +#keyset[function, index, type_id] +params( + int id: @parameter, + int function: @parameterized_element ref, + int index: int ref, + int type_id: @type ref +); + +overrides( + int new: @function ref, + int old: @function ref +); + +#keyset[id, type_id] +membervariables( + int id: @membervariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +globalvariables( + int id: @globalvariable, + int type_id: @type ref, + string name: string ref +); + +#keyset[id, type_id] +localvariables( + int id: @localvariable, + int type_id: @type ref, + string name: string ref +); + +autoderivation( + unique int var: @variable ref, + int derivation_type: @type ref +); + +orphaned_variables( + int var: @localvariable ref, + int function: @function ref +) + +enumconstants( + unique int id: @enumconstant, + int parent: @usertype ref, + int index: int ref, + int type_id: @type ref, + string name: string ref, + int location: @location_default ref +); + +@variable = @localscopevariable | @globalvariable | @membervariable; + +@localscopevariable = @localvariable | @parameter; + +/** + * Built-in types are the fundamental types, e.g., integral, floating, and void. + */ +case @builtintype.kind of + 1 = @errortype +| 2 = @unknowntype +| 3 = @void +| 4 = @boolean +| 5 = @char +| 6 = @unsigned_char +| 7 = @signed_char +| 8 = @short +| 9 = @unsigned_short +| 10 = @signed_short +| 11 = @int +| 12 = @unsigned_int +| 13 = @signed_int +| 14 = @long +| 15 = @unsigned_long +| 16 = @signed_long +| 17 = @long_long +| 18 = @unsigned_long_long +| 19 = @signed_long_long +// ... 20 Microsoft-specific __int8 +// ... 21 Microsoft-specific __int16 +// ... 22 Microsoft-specific __int32 +// ... 23 Microsoft-specific __int64 +| 24 = @float +| 25 = @double +| 26 = @long_double +| 27 = @complex_float // C99-specific _Complex float +| 28 = @complex_double // C99-specific _Complex double +| 29 = @complex_long_double // C99-specific _Complex long double +| 30 = @imaginary_float // C99-specific _Imaginary float +| 31 = @imaginary_double // C99-specific _Imaginary double +| 32 = @imaginary_long_double // C99-specific _Imaginary long double +| 33 = @wchar_t // Microsoft-specific +| 34 = @decltype_nullptr // C++11 +| 35 = @int128 // __int128 +| 36 = @unsigned_int128 // unsigned __int128 +| 37 = @signed_int128 // signed __int128 +| 38 = @float128 // __float128 +| 39 = @complex_float128 // _Complex __float128 +// ... 40 _Decimal32 +// ... 41 _Decimal64 +// ... 42 _Decimal128 +| 43 = @char16_t +| 44 = @char32_t +| 45 = @std_float32 // _Float32 +| 46 = @float32x // _Float32x +| 47 = @std_float64 // _Float64 +| 48 = @float64x // _Float64x +| 49 = @std_float128 // _Float128 +// ... 50 _Float128x +| 51 = @char8_t +| 52 = @float16 // _Float16 +| 53 = @complex_float16 // _Complex _Float16 +| 54 = @fp16 // __fp16 +| 55 = @std_bfloat16 // __bf16 +| 56 = @std_float16 // std::float16_t +| 57 = @complex_std_float32 // _Complex _Float32 +| 58 = @complex_float32x // _Complex _Float32x +| 59 = @complex_std_float64 // _Complex _Float64 +| 60 = @complex_float64x // _Complex _Float64x +| 61 = @complex_std_float128 // _Complex _Float128 +| 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t +| 64 = @complex_fp16 // _Complex __fp16 +| 65 = @complex_std_bfloat16 // _Complex __bf16 +| 66 = @complex_std_float16 // _Complex std::float16_t +; + +builtintypes( + unique int id: @builtintype, + string name: string ref, + int kind: int ref, + int size: int ref, + int sign: int ref, + int alignment: int ref +); + +/** + * Derived types are types that are directly derived from existing types and + * point to, refer to, transform type data to return a new type. + */ +case @derivedtype.kind of + 1 = @pointer +| 2 = @reference +| 3 = @type_with_specifiers +| 4 = @array +| 5 = @gnu_vector +| 6 = @routineptr +| 7 = @routinereference +| 8 = @rvalue_reference // C++11 +// ... 9 type_conforming_to_protocols deprecated +| 10 = @block +| 11 = @scalable_vector // Arm SVE +; + +derivedtypes( + unique int id: @derivedtype, + string name: string ref, + int kind: int ref, + int type_id: @type ref +); + +pointerishsize(unique int id: @derivedtype ref, + int size: int ref, + int alignment: int ref); + +arraysizes( + unique int id: @derivedtype ref, + int num_elements: int ref, + int bytesize: int ref, + int alignment: int ref +); + +tupleelements( + unique int id: @derivedtype ref, + int num_elements: int ref +); + +typedefbase( + unique int id: @usertype ref, + int type_id: @type ref +); + +/** + * An instance of the C++11 `decltype` operator or C23 `typeof`/`typeof_unqual` + * operator taking an expression as its argument. For example: + * ``` + * int a; + * decltype(1+a) b; + * typeof(1+a) c; + * ``` + * Here `expr` is `1+a`. + * + * Sometimes an additional pair of parentheses around the expression + * changes the semantics of the decltype, e.g. + * ``` + * struct A { double x; }; + * const A* a = new A(); + * decltype( a->x ); // type is double + * decltype((a->x)); // type is const double& + * ``` + * (Please consult the C++11 standard for more details). + * `parentheses_would_change_meaning` is `true` iff that is the case. + */ + +/* +case @decltype.kind of +| 0 = @decltype +| 1 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +; +*/ + +#keyset[id, expr] +decltypes( + int id: @decltype, + int expr: @expr ref, + int kind: int ref, + int base_type: @type ref, + boolean parentheses_would_change_meaning: boolean ref +); + +case @type_operator.kind of + 0 = @typeof // The frontend does not differentiate between typeof and typeof_unqual +| 1 = @underlying_type +| 2 = @bases +| 3 = @direct_bases +| 4 = @add_lvalue_reference +| 5 = @add_pointer +| 6 = @add_rvalue_reference +| 7 = @decay +| 8 = @make_signed +| 9 = @make_unsigned +| 10 = @remove_all_extents +| 11 = @remove_const +| 12 = @remove_cv +| 13 = @remove_cvref +| 14 = @remove_extent +| 15 = @remove_pointer +| 16 = @remove_reference_t +| 17 = @remove_restrict +| 18 = @remove_volatile +| 19 = @remove_reference +; + +type_operators( + unique int id: @type_operator, + int arg_type: @type ref, + int kind: int ref, + int base_type: @type ref +) + +case @usertype.kind of + 0 = @unknown_usertype +| 1 = @struct +| 2 = @class +| 3 = @union +| 4 = @enum +// ... 5 = @typedef deprecated // classic C: typedef typedef type name +// ... 6 = @template deprecated +| 7 = @template_parameter +| 8 = @template_template_parameter +| 9 = @proxy_class // a proxy class associated with a template parameter +// ... 10 objc_class deprecated +// ... 11 objc_protocol deprecated +// ... 12 objc_category deprecated +| 13 = @scoped_enum +// ... 14 = @using_alias deprecated // a using name = type style typedef +| 15 = @template_struct +| 16 = @template_class +| 17 = @template_union +| 18 = @alias +; + +usertypes( + unique int id: @usertype, + string name: string ref, + int kind: int ref +); + +usertypesize( + unique int id: @usertype ref, + int size: int ref, + int alignment: int ref +); + +usertype_final(unique int id: @usertype ref); + +usertype_uuid( + unique int id: @usertype ref, + string uuid: string ref +); + +/* +case @usertype.alias_kind of +| 0 = @typedef +| 1 = @alias +*/ + +usertype_alias_kind( + int id: @usertype ref, + int alias_kind: int ref +) + +nontype_template_parameters( + int id: @expr ref +); + +type_template_type_constraint( + int id: @usertype ref, + int constraint: @expr ref +); + +mangled_name( + unique int id: @declaration ref, + int mangled_name : @mangledname, + boolean is_complete: boolean ref +); + +is_pod_class(unique int id: @usertype ref); +is_standard_layout_class(unique int id: @usertype ref); + +is_complete(unique int id: @usertype ref); + +is_class_template(unique int id: @usertype ref); +class_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +class_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +class_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@user_or_decltype = @usertype | @decltype; + +is_proxy_class_for( + unique int id: @usertype ref, + int templ_param_id: @user_or_decltype ref +); + +type_mentions( + unique int id: @type_mention, + int type_id: @type ref, + int location: @location_default ref, + // a_symbol_reference_kind from the frontend. + int kind: int ref +); + +is_function_template(unique int id: @function ref); +function_instantiation( + unique int to: @function ref, + int from: @function ref +); +function_template_argument( + int function_id: @function ref, + int index: int ref, + int arg_type: @type ref +); +function_template_argument_value( + int function_id: @function ref, + int index: int ref, + int arg_value: @expr ref +); + +is_variable_template(unique int id: @variable ref); +variable_instantiation( + unique int to: @variable ref, + int from: @variable ref +); +variable_template_argument( + int variable_id: @variable ref, + int index: int ref, + int arg_type: @type ref +); +variable_template_argument_value( + int variable_id: @variable ref, + int index: int ref, + int arg_value: @expr ref +); + +template_template_instantiation( + int to: @usertype ref, + int from: @usertype ref +); +template_template_argument( + int type_id: @usertype ref, + int index: int ref, + int arg_type: @type ref +); +template_template_argument_value( + int type_id: @usertype ref, + int index: int ref, + int arg_value: @expr ref +); + +@concept = @concept_template | @concept_id; + +concept_templates( + unique int concept_id: @concept_template, + string name: string ref, + int location: @location_default ref +); +concept_instantiation( + unique int to: @concept_id ref, + int from: @concept_template ref +); +is_type_constraint(int concept_id: @concept_id ref); +concept_template_argument( + int concept_id: @concept ref, + int index: int ref, + int arg_type: @type ref +); +concept_template_argument_value( + int concept_id: @concept ref, + int index: int ref, + int arg_value: @expr ref +); + +routinetypes( + unique int id: @routinetype, + int return_type: @type ref +); + +routinetypeargs( + int routine: @routinetype ref, + int index: int ref, + int type_id: @type ref +); + +ptrtomembers( + unique int id: @ptrtomember, + int type_id: @type ref, + int class_id: @type ref +); + +/* + specifiers for types, functions, and variables + + "public", + "protected", + "private", + + "const", + "volatile", + "static", + + "pure", + "virtual", + "sealed", // Microsoft + "__interface", // Microsoft + "inline", + "explicit", + + "near", // near far extension + "far", // near far extension + "__ptr32", // Microsoft + "__ptr64", // Microsoft + "__sptr", // Microsoft + "__uptr", // Microsoft + "dllimport", // Microsoft + "dllexport", // Microsoft + "thread", // Microsoft + "naked", // Microsoft + "microsoft_inline", // Microsoft + "forceinline", // Microsoft + "selectany", // Microsoft + "nothrow", // Microsoft + "novtable", // Microsoft + "noreturn", // Microsoft + "noinline", // Microsoft + "noalias", // Microsoft + "restrict", // Microsoft +*/ + +specifiers( + unique int id: @specifier, + unique string str: string ref +); + +typespecifiers( + int type_id: @type ref, + int spec_id: @specifier ref +); + +funspecifiers( + int func_id: @function ref, + int spec_id: @specifier ref +); + +varspecifiers( + int var_id: @accessible ref, + int spec_id: @specifier ref +); + +explicit_specifier_exprs( + unique int func_id: @function ref, + int constant: @expr ref +) + +attributes( + unique int id: @attribute, + int kind: int ref, + string name: string ref, + string name_space: string ref, + int location: @location_default ref +); + +case @attribute.kind of + 0 = @gnuattribute +| 1 = @stdattribute +| 2 = @declspec +| 3 = @msattribute +| 4 = @alignas +// ... 5 @objc_propertyattribute deprecated +; + +attribute_args( + unique int id: @attribute_arg, + int kind: int ref, + int attribute: @attribute ref, + int index: int ref, + int location: @location_default ref +); + +case @attribute_arg.kind of + 0 = @attribute_arg_empty +| 1 = @attribute_arg_token +| 2 = @attribute_arg_constant +| 3 = @attribute_arg_type +| 4 = @attribute_arg_constant_expr +| 5 = @attribute_arg_expr +; + +attribute_arg_value( + unique int arg: @attribute_arg ref, + string value: string ref +); +attribute_arg_type( + unique int arg: @attribute_arg ref, + int type_id: @type ref +); +attribute_arg_constant( + unique int arg: @attribute_arg ref, + int constant: @expr ref +) +attribute_arg_expr( + unique int arg: @attribute_arg ref, + int expr: @expr ref +) +attribute_arg_name( + unique int arg: @attribute_arg ref, + string name: string ref +); + +typeattributes( + int type_id: @type ref, + int spec_id: @attribute ref +); + +funcattributes( + int func_id: @function ref, + int spec_id: @attribute ref +); + +varattributes( + int var_id: @accessible ref, + int spec_id: @attribute ref +); + +namespaceattributes( + int namespace_id: @namespace ref, + int spec_id: @attribute ref +); + +stmtattributes( + int stmt_id: @stmt ref, + int spec_id: @attribute ref +); + +@type = @builtintype + | @derivedtype + | @usertype + | @routinetype + | @ptrtomember + | @decltype + | @type_operator; + +unspecifiedtype( + unique int type_id: @type ref, + int unspecified_type_id: @type ref +); + +member( + int parent: @type ref, + int index: int ref, + int child: @member ref +); + +@enclosingfunction_child = @usertype | @variable | @namespace + +enclosingfunction( + unique int child: @enclosingfunction_child ref, + int parent: @function ref +); + +derivations( + unique int derivation: @derivation, + int sub: @type ref, + int index: int ref, + int super: @type ref, + int location: @location_default ref +); + +derspecifiers( + int der_id: @derivation ref, + int spec_id: @specifier ref +); + +/** + * Contains the byte offset of the base class subobject within the derived + * class. Only holds for non-virtual base classes, but see table + * `virtual_base_offsets` for offsets of virtual base class subobjects. + */ +direct_base_offsets( + unique int der_id: @derivation ref, + int offset: int ref +); + +/** + * Contains the byte offset of the virtual base class subobject for class + * `super` within a most-derived object of class `sub`. `super` can be either a + * direct or indirect base class. + */ +#keyset[sub, super] +virtual_base_offsets( + int sub: @usertype ref, + int super: @usertype ref, + int offset: int ref +); + +frienddecls( + unique int id: @frienddecl, + int type_id: @type ref, + int decl_id: @declaration ref, + int location: @location_default ref +); + +@declaredtype = @usertype ; + +@declaration = @function + | @declaredtype + | @variable + | @enumconstant + | @frienddecl + | @concept_template; + +@member = @membervariable + | @function + | @declaredtype + | @enumconstant; + +@locatable = @diagnostic + | @declaration + | @ppd_include + | @ppd_define + | @macroinvocation + /*| @funcall*/ + | @xmllocatable + | @attribute + | @attribute_arg; + +@namedscope = @namespace | @usertype; + +@element = @locatable + | @file + | @folder + | @specifier + | @type + | @expr + | @namespace + | @initialiser + | @stmt + | @derivation + | @comment + | @preprocdirect + | @fun_decl + | @var_decl + | @type_decl + | @namespace_decl + | @using + | @namequalifier + | @specialnamequalifyingelement + | @static_assert + | @type_mention + | @lambdacapture; + +@exprparent = @element; + +comments( + unique int id: @comment, + string contents: string ref, + int location: @location_default ref +); + +commentbinding( + int id: @comment ref, + int element: @element ref +); + +exprconv( + int converted: @expr ref, + unique int conversion: @expr ref +); + +compgenerated(unique int id: @element ref); + +/** + * `destructor_call` destructs the `i`'th entity that should be + * destructed following `element`. Note that entities should be + * destructed in reverse construction order, so for a given `element` + * these should be called from highest to lowest `i`. + */ +#keyset[element, destructor_call] +#keyset[element, i] +synthetic_destructor_call( + int element: @element ref, + int i: int ref, + int destructor_call: @routineexpr ref +); + +namespaces( + unique int id: @namespace, + string name: string ref +); + +namespace_inline( + unique int id: @namespace ref +); + +namespacembrs( + int parentid: @namespace ref, + unique int memberid: @namespacembr ref +); + +@namespacembr = @declaration | @namespace; + +exprparents( + int expr_id: @expr ref, + int child_index: int ref, + int parent_id: @exprparent ref +); + +expr_isload(unique int expr_id: @expr ref); + +@cast = @c_style_cast + | @const_cast + | @dynamic_cast + | @reinterpret_cast + | @static_cast + ; + +/* +case @conversion.kind of + 0 = @simple_conversion // a numeric conversion, qualification conversion, or a reinterpret_cast +| 1 = @bool_conversion // conversion to 'bool' +| 2 = @base_class_conversion // a derived-to-base conversion +| 3 = @derived_class_conversion // a base-to-derived conversion +| 4 = @pm_base_class_conversion // a derived-to-base conversion of a pointer to member +| 5 = @pm_derived_class_conversion // a base-to-derived conversion of a pointer to member +| 6 = @glvalue_adjust // an adjustment of the type of a glvalue +| 7 = @prvalue_adjust // an adjustment of the type of a prvalue +; +*/ +/** + * Describes the semantics represented by a cast expression. This is largely + * independent of the source syntax of the cast, so it is separate from the + * regular expression kind. + */ +conversionkinds( + unique int expr_id: @cast ref, + int kind: int ref +); + +@conversion = @cast + | @array_to_pointer + | @parexpr + | @reference_to + | @ref_indirect + | @temp_init + | @c11_generic + ; + +/* +case @funbindexpr.kind of + 0 = @normal_call // a normal call +| 1 = @virtual_call // a virtual call +| 2 = @adl_call // a call whose target is only found by ADL +; +*/ +iscall( + unique int caller: @funbindexpr ref, + int kind: int ref +); + +numtemplatearguments( + unique int expr_id: @expr ref, + int num: int ref +); + +specialnamequalifyingelements( + unique int id: @specialnamequalifyingelement, + unique string name: string ref +); + +@namequalifiableelement = @expr | @namequalifier; +@namequalifyingelement = @namespace + | @specialnamequalifyingelement + | @usertype + | @decltype; + +namequalifiers( + unique int id: @namequalifier, + unique int qualifiableelement: @namequalifiableelement ref, + int qualifyingelement: @namequalifyingelement ref, + int location: @location_default ref +); + +varbind( + int expr: @varbindexpr ref, + int var: @accessible ref +); + +funbind( + int expr: @funbindexpr ref, + int fun: @function ref +); + +@any_new_expr = @new_expr + | @new_array_expr; + +@new_or_delete_expr = @any_new_expr + | @delete_expr + | @delete_array_expr; + +@prefix_crement_expr = @preincrexpr | @predecrexpr; + +@postfix_crement_expr = @postincrexpr | @postdecrexpr; + +@increment_expr = @preincrexpr | @postincrexpr; + +@decrement_expr = @predecrexpr | @postdecrexpr; + +@crement_expr = @increment_expr | @decrement_expr; + +@un_arith_op_expr = @arithnegexpr + | @unaryplusexpr + | @conjugation + | @realpartexpr + | @imagpartexpr + | @crement_expr + ; + +@un_bitwise_op_expr = @complementexpr; + +@un_log_op_expr = @notexpr; + +@un_op_expr = @address_of + | @indirect + | @un_arith_op_expr + | @un_bitwise_op_expr + | @builtinaddressof + | @vec_fill + | @un_log_op_expr + | @co_await + | @co_yield + ; + +@bin_log_op_expr = @andlogicalexpr | @orlogicalexpr; + +@cmp_op_expr = @eq_op_expr | @rel_op_expr; + +@eq_op_expr = @eqexpr | @neexpr; + +@rel_op_expr = @gtexpr + | @ltexpr + | @geexpr + | @leexpr + | @spaceshipexpr + ; + +@bin_bitwise_op_expr = @lshiftexpr + | @rshiftexpr + | @andexpr + | @orexpr + | @xorexpr + ; + +@p_arith_op_expr = @paddexpr + | @psubexpr + | @pdiffexpr + ; + +@bin_arith_op_expr = @addexpr + | @subexpr + | @mulexpr + | @divexpr + | @remexpr + | @jmulexpr + | @jdivexpr + | @fjaddexpr + | @jfaddexpr + | @fjsubexpr + | @jfsubexpr + | @minexpr + | @maxexpr + | @p_arith_op_expr + ; + +@bin_op_expr = @bin_arith_op_expr + | @bin_bitwise_op_expr + | @cmp_op_expr + | @bin_log_op_expr + ; + +@op_expr = @un_op_expr + | @bin_op_expr + | @assign_expr + | @conditionalexpr + ; + +@assign_arith_expr = @assignaddexpr + | @assignsubexpr + | @assignmulexpr + | @assigndivexpr + | @assignremexpr + ; + +@assign_bitwise_expr = @assignandexpr + | @assignorexpr + | @assignxorexpr + | @assignlshiftexpr + | @assignrshiftexpr + ; + +@assign_pointer_expr = @assignpaddexpr + | @assignpsubexpr + ; + +@assign_op_expr = @assign_arith_expr + | @assign_bitwise_expr + | @assign_pointer_expr + ; + +@assign_expr = @assignexpr | @assign_op_expr | @blockassignexpr + +/* + Binary encoding of the allocator form. + + case @allocator.form of + 0 = plain + | 1 = alignment + ; +*/ + +/** + * The allocator function associated with a `new` or `new[]` expression. + * The `form` column specified whether the allocation call contains an alignment + * argument. + */ +expr_allocator( + unique int expr: @any_new_expr ref, + int func: @function ref, + int form: int ref +); + +/* + Binary encoding of the deallocator form. + + case @deallocator.form of + 0 = plain + | 1 = size + | 2 = alignment + | 4 = destroying_delete + ; +*/ + +/** + * The deallocator function associated with a `delete`, `delete[]`, `new`, or + * `new[]` expression. For a `new` or `new[]` expression, the deallocator is the + * one used to free memory if the initialization throws an exception. + * The `form` column specifies whether the deallocation call contains a size + * argument, and alignment argument, or both. + */ +expr_deallocator( + unique int expr: @new_or_delete_expr ref, + int func: @function ref, + int form: int ref +); + +/** + * Holds if the `@conditionalexpr` is of the two operand form + * `guard ? : false`. + */ +expr_cond_two_operand( + unique int cond: @conditionalexpr ref +); + +/** + * The guard of `@conditionalexpr` `guard ? true : false` + */ +expr_cond_guard( + unique int cond: @conditionalexpr ref, + int guard: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` holds. For the two operand form + * `guard ?: false` consider using `expr_cond_guard` instead. + */ +expr_cond_true( + unique int cond: @conditionalexpr ref, + int true: @expr ref +); + +/** + * The expression used when the guard of `@conditionalexpr` + * `guard ? true : false` does not hold. + */ +expr_cond_false( + unique int cond: @conditionalexpr ref, + int false: @expr ref +); + +/** A string representation of the value. */ +values( + unique int id: @value, + string str: string ref +); + +/** The actual text in the source code for the value, if any. */ +valuetext( + unique int id: @value ref, + string text: string ref +); + +valuebind( + int val: @value ref, + unique int expr: @expr ref +); + +fieldoffsets( + unique int id: @variable ref, + int byteoffset: int ref, + int bitoffset: int ref +); + +bitfield( + unique int id: @variable ref, + int bits: int ref, + int declared_bits: int ref +); + +/* TODO +memberprefix( + int member: @expr ref, + int prefix: @expr ref +); +*/ + +/* + kind(1) = mbrcallexpr + kind(2) = mbrptrcallexpr + kind(3) = mbrptrmbrcallexpr + kind(4) = ptrmbrptrmbrcallexpr + kind(5) = mbrreadexpr // x.y + kind(6) = mbrptrreadexpr // p->y + kind(7) = mbrptrmbrreadexpr // x.*pm + kind(8) = mbrptrmbrptrreadexpr // x->*pm + kind(9) = staticmbrreadexpr // static x.y + kind(10) = staticmbrptrreadexpr // static p->y +*/ +/* TODO +memberaccess( + int member: @expr ref, + int kind: int ref +); +*/ + +initialisers( + unique int init: @initialiser, + int var: @accessible ref, + unique int expr: @expr ref, + int location: @location_default ref +); + +braced_initialisers( + int init: @initialiser ref +); + +/** + * An ancestor for the expression, for cases in which we cannot + * otherwise find the expression's parent. + */ +expr_ancestor( + int exp: @expr ref, + int ancestor: @element ref +); + +exprs( + unique int id: @expr, + int kind: int ref, + int location: @location_default ref +); + +expr_reuse( + int reuse: @expr ref, + int original: @expr ref, + int value_category: int ref +) + +/* + case @value.category of + 1 = prval + | 2 = xval + | 3 = lval + ; +*/ +expr_types( + int id: @expr ref, + int typeid: @type ref, + int value_category: int ref +); + +case @expr.kind of + 1 = @errorexpr +| 2 = @address_of // & AddressOfExpr +| 3 = @reference_to // ReferenceToExpr (implicit?) +| 4 = @indirect // * PointerDereferenceExpr +| 5 = @ref_indirect // ReferenceDereferenceExpr (implicit?) +// ... +| 8 = @array_to_pointer // (???) +| 9 = @vacuous_destructor_call // VacuousDestructorCall +// ... +| 11 = @assume // Microsoft +| 12 = @parexpr +| 13 = @arithnegexpr +| 14 = @unaryplusexpr +| 15 = @complementexpr +| 16 = @notexpr +| 17 = @conjugation // GNU ~ operator +| 18 = @realpartexpr // GNU __real +| 19 = @imagpartexpr // GNU __imag +| 20 = @postincrexpr +| 21 = @postdecrexpr +| 22 = @preincrexpr +| 23 = @predecrexpr +| 24 = @conditionalexpr +| 25 = @addexpr +| 26 = @subexpr +| 27 = @mulexpr +| 28 = @divexpr +| 29 = @remexpr +| 30 = @jmulexpr // C99 mul imaginary +| 31 = @jdivexpr // C99 div imaginary +| 32 = @fjaddexpr // C99 add real + imaginary +| 33 = @jfaddexpr // C99 add imaginary + real +| 34 = @fjsubexpr // C99 sub real - imaginary +| 35 = @jfsubexpr // C99 sub imaginary - real +| 36 = @paddexpr // pointer add (pointer + int or int + pointer) +| 37 = @psubexpr // pointer sub (pointer - integer) +| 38 = @pdiffexpr // difference between two pointers +| 39 = @lshiftexpr +| 40 = @rshiftexpr +| 41 = @andexpr +| 42 = @orexpr +| 43 = @xorexpr +| 44 = @eqexpr +| 45 = @neexpr +| 46 = @gtexpr +| 47 = @ltexpr +| 48 = @geexpr +| 49 = @leexpr +| 50 = @minexpr // GNU minimum +| 51 = @maxexpr // GNU maximum +| 52 = @assignexpr +| 53 = @assignaddexpr +| 54 = @assignsubexpr +| 55 = @assignmulexpr +| 56 = @assigndivexpr +| 57 = @assignremexpr +| 58 = @assignlshiftexpr +| 59 = @assignrshiftexpr +| 60 = @assignandexpr +| 61 = @assignorexpr +| 62 = @assignxorexpr +| 63 = @assignpaddexpr // assign pointer add +| 64 = @assignpsubexpr // assign pointer sub +| 65 = @andlogicalexpr +| 66 = @orlogicalexpr +| 67 = @commaexpr +| 68 = @subscriptexpr // access to member of an array, e.g., a[5] +// ... 69 @objc_subscriptexpr deprecated +// ... 70 @cmdaccess deprecated +// ... +| 73 = @virtfunptrexpr +| 74 = @callexpr +// ... 75 @msgexpr_normal deprecated +// ... 76 @msgexpr_super deprecated +// ... 77 @atselectorexpr deprecated +// ... 78 @atprotocolexpr deprecated +| 79 = @vastartexpr +| 80 = @vaargexpr +| 81 = @vaendexpr +| 82 = @vacopyexpr +// ... 83 @atencodeexpr deprecated +| 84 = @varaccess +| 85 = @thisaccess +// ... 86 @objc_box_expr deprecated +| 87 = @new_expr +| 88 = @delete_expr +| 89 = @throw_expr +| 90 = @condition_decl // a variable declared in a condition, e.g., if(int x = y > 2) +| 91 = @braced_init_list +| 92 = @type_id +| 93 = @runtime_sizeof +| 94 = @runtime_alignof +| 95 = @sizeof_pack +| 96 = @expr_stmt // GNU extension +| 97 = @routineexpr +| 98 = @type_operand // used to access a type in certain contexts (haven't found any examples yet....) +| 99 = @offsetofexpr // offsetof ::= type and field +| 100 = @hasassignexpr // __has_assign ::= type +| 101 = @hascopyexpr // __has_copy ::= type +| 102 = @hasnothrowassign // __has_nothrow_assign ::= type +| 103 = @hasnothrowconstr // __has_nothrow_constructor ::= type +| 104 = @hasnothrowcopy // __has_nothrow_copy ::= type +| 105 = @hastrivialassign // __has_trivial_assign ::= type +| 106 = @hastrivialconstr // __has_trivial_constructor ::= type +| 107 = @hastrivialcopy // __has_trivial_copy ::= type +| 108 = @hasuserdestr // __has_user_destructor ::= type +| 109 = @hasvirtualdestr // __has_virtual_destructor ::= type +| 110 = @isabstractexpr // __is_abstract ::= type +| 111 = @isbaseofexpr // __is_base_of ::= type type +| 112 = @isclassexpr // __is_class ::= type +| 113 = @isconvtoexpr // __is_convertible_to ::= type type +| 114 = @isemptyexpr // __is_empty ::= type +| 115 = @isenumexpr // __is_enum ::= type +| 116 = @ispodexpr // __is_pod ::= type +| 117 = @ispolyexpr // __is_polymorphic ::= type +| 118 = @isunionexpr // __is_union ::= type +| 119 = @typescompexpr // GNU __builtin_types_compatible ::= type type +| 120 = @intaddrexpr // frontend internal builtin, used to implement offsetof +// ... +| 122 = @hastrivialdestructor // __has_trivial_destructor ::= type +| 123 = @literal +| 124 = @uuidof +| 127 = @aggregateliteral +| 128 = @delete_array_expr +| 129 = @new_array_expr +// ... 130 @objc_array_literal deprecated +// ... 131 @objc_dictionary_literal deprecated +| 132 = @foldexpr +// ... +| 200 = @ctordirectinit +| 201 = @ctorvirtualinit +| 202 = @ctorfieldinit +| 203 = @ctordelegatinginit +| 204 = @dtordirectdestruct +| 205 = @dtorvirtualdestruct +| 206 = @dtorfielddestruct +// ... +| 210 = @static_cast +| 211 = @reinterpret_cast +| 212 = @const_cast +| 213 = @dynamic_cast +| 214 = @c_style_cast +| 215 = @lambdaexpr +| 216 = @param_ref +| 217 = @noopexpr +// ... +| 294 = @istriviallyconstructibleexpr +| 295 = @isdestructibleexpr +| 296 = @isnothrowdestructibleexpr +| 297 = @istriviallydestructibleexpr +| 298 = @istriviallyassignableexpr +| 299 = @isnothrowassignableexpr +| 300 = @istrivialexpr +| 301 = @isstandardlayoutexpr +| 302 = @istriviallycopyableexpr +| 303 = @isliteraltypeexpr +| 304 = @hastrivialmoveconstructorexpr +| 305 = @hastrivialmoveassignexpr +| 306 = @hasnothrowmoveassignexpr +| 307 = @isconstructibleexpr +| 308 = @isnothrowconstructibleexpr +| 309 = @hasfinalizerexpr +| 310 = @isdelegateexpr +| 311 = @isinterfaceclassexpr +| 312 = @isrefarrayexpr +| 313 = @isrefclassexpr +| 314 = @issealedexpr +| 315 = @issimplevalueclassexpr +| 316 = @isvalueclassexpr +| 317 = @isfinalexpr +| 319 = @noexceptexpr +| 320 = @builtinshufflevector +| 321 = @builtinchooseexpr +| 322 = @builtinaddressof +| 323 = @vec_fill +| 324 = @builtinconvertvector +| 325 = @builtincomplex +| 326 = @spaceshipexpr +| 327 = @co_await +| 328 = @co_yield +| 329 = @temp_init +| 330 = @isassignable +| 331 = @isaggregate +| 332 = @hasuniqueobjectrepresentations +| 333 = @builtinbitcast +| 334 = @builtinshuffle +| 335 = @blockassignexpr +| 336 = @issame +| 337 = @isfunction +| 338 = @islayoutcompatible +| 339 = @ispointerinterconvertiblebaseof +| 340 = @isarray +| 341 = @arrayrank +| 342 = @arrayextent +| 343 = @isarithmetic +| 344 = @iscompletetype +| 345 = @iscompound +| 346 = @isconst +| 347 = @isfloatingpoint +| 348 = @isfundamental +| 349 = @isintegral +| 350 = @islvaluereference +| 351 = @ismemberfunctionpointer +| 352 = @ismemberobjectpointer +| 353 = @ismemberpointer +| 354 = @isobject +| 355 = @ispointer +| 356 = @isreference +| 357 = @isrvaluereference +| 358 = @isscalar +| 359 = @issigned +| 360 = @isunsigned +| 361 = @isvoid +| 362 = @isvolatile +| 363 = @reuseexpr +| 364 = @istriviallycopyassignable +| 365 = @isassignablenopreconditioncheck +| 366 = @referencebindstotemporary +| 367 = @issameas +| 368 = @builtinhasattribute +| 369 = @ispointerinterconvertiblewithclass +| 370 = @builtinispointerinterconvertiblewithclass +| 371 = @iscorrespondingmember +| 372 = @builtiniscorrespondingmember +| 373 = @isboundedarray +| 374 = @isunboundedarray +| 375 = @isreferenceable +| 378 = @isnothrowconvertible +| 379 = @referenceconstructsfromtemporary +| 380 = @referenceconvertsfromtemporary +| 381 = @isconvertible +| 382 = @isvalidwinrttype +| 383 = @iswinclass +| 384 = @iswininterface +| 385 = @istriviallyequalitycomparable +| 386 = @isscopedenum +| 387 = @istriviallyrelocatable +| 388 = @datasizeof +| 389 = @c11_generic +| 390 = @requires_expr +| 391 = @nested_requirement +| 392 = @compound_requirement +| 393 = @concept_id +| 394 = @isinvocable +| 395 = @isnothrowinvocable +| 396 = @isbitwisecloneable +; + +@var_args_expr = @vastartexpr + | @vaendexpr + | @vaargexpr + | @vacopyexpr + ; + +@builtin_op = @var_args_expr + | @noopexpr + | @offsetofexpr + | @intaddrexpr + | @hasassignexpr + | @hascopyexpr + | @hasnothrowassign + | @hasnothrowconstr + | @hasnothrowcopy + | @hastrivialassign + | @hastrivialconstr + | @hastrivialcopy + | @hastrivialdestructor + | @hasuserdestr + | @hasvirtualdestr + | @isabstractexpr + | @isbaseofexpr + | @isclassexpr + | @isconvtoexpr + | @isemptyexpr + | @isenumexpr + | @ispodexpr + | @ispolyexpr + | @isunionexpr + | @typescompexpr + | @builtinshufflevector + | @builtinconvertvector + | @builtinaddressof + | @istriviallyconstructibleexpr + | @isdestructibleexpr + | @isnothrowdestructibleexpr + | @istriviallydestructibleexpr + | @istriviallyassignableexpr + | @isnothrowassignableexpr + | @istrivialexpr + | @isstandardlayoutexpr + | @istriviallycopyableexpr + | @isliteraltypeexpr + | @hastrivialmoveconstructorexpr + | @hastrivialmoveassignexpr + | @hasnothrowmoveassignexpr + | @isconstructibleexpr + | @isnothrowconstructibleexpr + | @hasfinalizerexpr + | @isdelegateexpr + | @isinterfaceclassexpr + | @isrefarrayexpr + | @isrefclassexpr + | @issealedexpr + | @issimplevalueclassexpr + | @isvalueclassexpr + | @isfinalexpr + | @builtinchooseexpr + | @builtincomplex + | @isassignable + | @isaggregate + | @hasuniqueobjectrepresentations + | @builtinbitcast + | @builtinshuffle + | @issame + | @isfunction + | @islayoutcompatible + | @ispointerinterconvertiblebaseof + | @isarray + | @arrayrank + | @arrayextent + | @isarithmetic + | @iscompletetype + | @iscompound + | @isconst + | @isfloatingpoint + | @isfundamental + | @isintegral + | @islvaluereference + | @ismemberfunctionpointer + | @ismemberobjectpointer + | @ismemberpointer + | @isobject + | @ispointer + | @isreference + | @isrvaluereference + | @isscalar + | @issigned + | @isunsigned + | @isvoid + | @isvolatile + | @istriviallycopyassignable + | @isassignablenopreconditioncheck + | @referencebindstotemporary + | @issameas + | @builtinhasattribute + | @ispointerinterconvertiblewithclass + | @builtinispointerinterconvertiblewithclass + | @iscorrespondingmember + | @builtiniscorrespondingmember + | @isboundedarray + | @isunboundedarray + | @isreferenceable + | @isnothrowconvertible + | @referenceconstructsfromtemporary + | @referenceconvertsfromtemporary + | @isconvertible + | @isvalidwinrttype + | @iswinclass + | @iswininterface + | @istriviallyequalitycomparable + | @isscopedenum + | @istriviallyrelocatable + | @isinvocable + | @isnothrowinvocable + | @isbitwisecloneable + ; + +compound_requirement_is_noexcept( + int expr: @compound_requirement ref +); + +new_allocated_type( + unique int expr: @new_expr ref, + int type_id: @type ref +); + +new_array_allocated_type( + unique int expr: @new_array_expr ref, + int type_id: @type ref +); + +param_ref_to_this( + int expr: @param_ref ref +) + +/** + * The field being initialized by an initializer expression within an aggregate + * initializer for a class/struct/union. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_field_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int field: @membervariable ref, + int position: int ref, + boolean is_designated: boolean ref +); + +/** + * The index of the element being initialized by an initializer expression + * within an aggregate initializer for an array. Position is used to sort repeated initializers. + */ +#keyset[aggregate, position] +aggregate_array_init( + int aggregate: @aggregateliteral ref, + int initializer: @expr ref, + int element_index: int ref, + int position: int ref, + boolean is_designated: boolean ref +); + +@ctorinit = @ctordirectinit + | @ctorvirtualinit + | @ctorfieldinit + | @ctordelegatinginit; +@dtordestruct = @dtordirectdestruct + | @dtorvirtualdestruct + | @dtorfielddestruct; + + +condition_decl_bind( + unique int expr: @condition_decl ref, + unique int decl: @declaration ref +); + +typeid_bind( + unique int expr: @type_id ref, + int type_id: @type ref +); + +uuidof_bind( + unique int expr: @uuidof ref, + int type_id: @type ref +); + +@sizeof_or_alignof = @runtime_sizeof | @runtime_alignof | @datasizeof | @sizeof_pack; + +sizeof_bind( + unique int expr: @sizeof_or_alignof ref, + int type_id: @type ref +); + +code_block( + unique int block: @literal ref, + unique int routine: @function ref +); + +lambdas( + unique int expr: @lambdaexpr ref, + string default_capture: string ref, + boolean has_explicit_return_type: boolean ref, + boolean has_explicit_parameter_list: boolean ref +); + +lambda_capture( + unique int id: @lambdacapture, + int lambda: @lambdaexpr ref, + int index: int ref, + int field: @membervariable ref, + boolean captured_by_reference: boolean ref, + boolean is_implicit: boolean ref, + int location: @location_default ref +); + +@funbindexpr = @routineexpr + | @new_expr + | @delete_expr + | @delete_array_expr + | @ctordirectinit + | @ctorvirtualinit + | @ctordelegatinginit + | @dtordirectdestruct + | @dtorvirtualdestruct; + +@varbindexpr = @varaccess | @ctorfieldinit | @dtorfielddestruct; +@addressable = @function | @variable ; +@accessible = @addressable | @enumconstant ; + +@access = @varaccess | @routineexpr ; + +fold( + int expr: @foldexpr ref, + string operator: string ref, + boolean is_left_fold: boolean ref +); + +stmts( + unique int id: @stmt, + int kind: int ref, + int location: @location_default ref +); + +case @stmt.kind of + 1 = @stmt_expr +| 2 = @stmt_if +| 3 = @stmt_while +| 4 = @stmt_goto +| 5 = @stmt_label +| 6 = @stmt_return +| 7 = @stmt_block +| 8 = @stmt_end_test_while // do { ... } while ( ... ) +| 9 = @stmt_for +| 10 = @stmt_switch_case +| 11 = @stmt_switch +| 13 = @stmt_asm // "asm" statement or the body of an asm function +| 15 = @stmt_try_block +| 16 = @stmt_microsoft_try // Microsoft +| 17 = @stmt_decl +| 18 = @stmt_set_vla_size // C99 +| 19 = @stmt_vla_decl // C99 +| 25 = @stmt_assigned_goto // GNU +| 26 = @stmt_empty +| 27 = @stmt_continue +| 28 = @stmt_break +| 29 = @stmt_range_based_for // C++11 +// ... 30 @stmt_at_autoreleasepool_block deprecated +// ... 31 @stmt_objc_for_in deprecated +// ... 32 @stmt_at_synchronized deprecated +| 33 = @stmt_handler +// ... 34 @stmt_finally_end deprecated +| 35 = @stmt_constexpr_if +| 37 = @stmt_co_return +| 38 = @stmt_consteval_if +| 39 = @stmt_not_consteval_if +| 40 = @stmt_leave +; + +type_vla( + int type_id: @type ref, + int decl: @stmt_vla_decl ref +); + +variable_vla( + int var: @variable ref, + int decl: @stmt_vla_decl ref +); + +type_is_vla(unique int type_id: @derivedtype ref) + +if_initialization( + unique int if_stmt: @stmt_if ref, + int init_id: @stmt ref +); + +if_then( + unique int if_stmt: @stmt_if ref, + int then_id: @stmt ref +); + +if_else( + unique int if_stmt: @stmt_if ref, + int else_id: @stmt ref +); + +constexpr_if_initialization( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int init_id: @stmt ref +); + +constexpr_if_then( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int then_id: @stmt ref +); + +constexpr_if_else( + unique int constexpr_if_stmt: @stmt_constexpr_if ref, + int else_id: @stmt ref +); + +@stmt_consteval_or_not_consteval_if = @stmt_consteval_if | @stmt_not_consteval_if; + +consteval_if_then( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int then_id: @stmt ref +); + +consteval_if_else( + unique int constexpr_if_stmt: @stmt_consteval_or_not_consteval_if ref, + int else_id: @stmt ref +); + +while_body( + unique int while_stmt: @stmt_while ref, + int body_id: @stmt ref +); + +do_body( + unique int do_stmt: @stmt_end_test_while ref, + int body_id: @stmt ref +); + +switch_initialization( + unique int switch_stmt: @stmt_switch ref, + int init_id: @stmt ref +); + +#keyset[switch_stmt, index] +switch_case( + int switch_stmt: @stmt_switch ref, + int index: int ref, + int case_id: @stmt_switch_case ref +); + +switch_body( + unique int switch_stmt: @stmt_switch ref, + int body_id: @stmt ref +); + +@stmt_for_or_range_based_for = @stmt_for + | @stmt_range_based_for; + +for_initialization( + unique int for_stmt: @stmt_for_or_range_based_for ref, + int init_id: @stmt ref +); + +for_condition( + unique int for_stmt: @stmt_for ref, + int condition_id: @expr ref +); + +for_update( + unique int for_stmt: @stmt_for ref, + int update_id: @expr ref +); + +for_body( + unique int for_stmt: @stmt_for ref, + int body_id: @stmt ref +); + +@stmtparent = @stmt | @expr_stmt ; +stmtparents( + unique int id: @stmt ref, + int index: int ref, + int parent: @stmtparent ref +); + +ishandler(unique int block: @stmt_block ref); + +@cfgnode = @stmt | @expr | @function | @initialiser ; + +stmt_decl_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl: @declaration ref +); + +stmt_decl_entry_bind( + int stmt: @stmt_decl ref, + int num: int ref, + int decl_entry: @element ref +); + +@parameterized_element = @function | @stmt_block | @requires_expr; + +blockscope( + unique int block: @stmt_block ref, + int enclosing: @parameterized_element ref +); + +@jump = @stmt_goto | @stmt_break | @stmt_continue | @stmt_leave; + +@jumporlabel = @jump | @stmt_label | @literal; + +jumpinfo( + unique int id: @jumporlabel ref, + string str: string ref, + int target: @stmt ref +); + +preprocdirects( + unique int id: @preprocdirect, + int kind: int ref, + int location: @location_default ref +); +case @preprocdirect.kind of + 0 = @ppd_if +| 1 = @ppd_ifdef +| 2 = @ppd_ifndef +| 3 = @ppd_elif +| 4 = @ppd_else +| 5 = @ppd_endif +| 6 = @ppd_plain_include +| 7 = @ppd_define +| 8 = @ppd_undef +| 9 = @ppd_line +| 10 = @ppd_error +| 11 = @ppd_pragma +| 12 = @ppd_objc_import +| 13 = @ppd_include_next +| 14 = @ppd_ms_import +| 15 = @ppd_elifdef +| 16 = @ppd_elifndef +| 17 = @ppd_embed +| 18 = @ppd_warning +; + +@ppd_include = @ppd_plain_include | @ppd_objc_import | @ppd_include_next | @ppd_ms_import; + +@ppd_branch = @ppd_if | @ppd_ifdef | @ppd_ifndef | @ppd_elif | @ppd_elifdef | @ppd_elifndef; + +preprocpair( + int begin : @ppd_branch ref, + int elseelifend : @preprocdirect ref +); + +preproctrue(int branch : @ppd_branch ref); +preprocfalse(int branch : @ppd_branch ref); + +preproctext( + unique int id: @preprocdirect ref, + string head: string ref, + string body: string ref +); + +includes( + unique int id: @ppd_include ref, + int included: @file ref +); + +embeds( + unique int id: @ppd_embed ref, + int included: @file ref +); + +link_targets( + int id: @link_target, + int binary: @file ref +); + +link_parent( + int element : @element ref, + int link_target : @link_target ref +); + +/*- Database metadata -*/ + +/** + * The CLI will automatically emit applicable tuples for this table, + * such as `databaseMetadata("isOverlay", "true")` when building an + * overlay database. + */ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + +/*- Overlay support -*/ + +/** + * The CLI will automatically emit tuples for each new/modified/deleted file + * when building an overlay database. + */ +overlayChangedFiles( + string path: string ref +); + +/*- XML Files -*/ + +xmlEncoding( + unique int id: @file ref, + string encoding: string ref +); + +xmlDTDs( + unique int id: @xmldtd, + string root: string ref, + string publicId: string ref, + string systemId: string ref, + int fileid: @file ref +); + +xmlElements( + unique int id: @xmlelement, + string name: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int fileid: @file ref +); + +xmlAttrs( + unique int id: @xmlattribute, + int elementid: @xmlelement ref, + string name: string ref, + string value: string ref, + int idx: int ref, + int fileid: @file ref +); + +xmlNs( + int id: @xmlnamespace, + string prefixName: string ref, + string URI: string ref, + int fileid: @file ref +); + +xmlHasNs( + int elementId: @xmlnamespaceable ref, + int nsId: @xmlnamespace ref, + int fileid: @file ref +); + +xmlComments( + unique int id: @xmlcomment, + string text: string ref, + int parentid: @xmlparent ref, + int fileid: @file ref +); + +xmlChars( + unique int id: @xmlcharacters, + string text: string ref, + int parentid: @xmlparent ref, + int idx: int ref, + int isCDATA: int ref, + int fileid: @file ref +); + +@xmlparent = @file | @xmlelement; +@xmlnamespaceable = @xmlelement | @xmlattribute; + +xmllocations( + int xmlElement: @xmllocatable ref, + int location: @location_default ref +); + +@xmllocatable = @xmlcharacters | @xmlelement | @xmlcomment | @xmlattribute | @xmldtd | @file | @xmlnamespace; diff --git a/cpp/ql/lib/upgrades/9439176c1d1312787926458dd54d65a849069118/upgrade.properties b/cpp/ql/lib/upgrades/9439176c1d1312787926458dd54d65a849069118/upgrade.properties new file mode 100644 index 000000000000..a50cc3b23134 --- /dev/null +++ b/cpp/ql/lib/upgrades/9439176c1d1312787926458dd54d65a849069118/upgrade.properties @@ -0,0 +1,2 @@ +description: Add trap_filename, source_file_uses_trap and in_trap relations +compatibility: full diff --git a/cpp/ql/src/CHANGELOG.md b/cpp/ql/src/CHANGELOG.md index 02a055ee266c..61792c6a700b 100644 --- a/cpp/ql/src/CHANGELOG.md +++ b/cpp/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.5.10 + +No user-facing changes. + ## 1.5.9 ### Minor Analysis Improvements diff --git a/cpp/ql/src/Security/CWE/CWE-089/SqlTainted.ql b/cpp/ql/src/Security/CWE/CWE-089/SqlTainted.ql index 5d08afbe304a..802888be271a 100644 --- a/cpp/ql/src/Security/CWE/CWE-089/SqlTainted.ql +++ b/cpp/ql/src/Security/CWE/CWE-089/SqlTainted.ql @@ -45,14 +45,15 @@ module SqlTaintedConfig implements DataFlow::ConfigSig { predicate isBarrier(DataFlow::Node node) { node.asExpr().getUnspecifiedType() instanceof IntegralType - } - - predicate isBarrierIn(DataFlow::Node node) { + or exists(SqlBarrierFunction sql, int arg, FunctionInput input | node.asIndirectArgument() = sql.getACallToThisFunction().getArgument(arg) and input.isParameterDeref(arg) and sql.barrierSqlArgument(input, _) ) + or + // barrier defined using models-as-data + barrierNode(node, "sql-injection") } predicate observeDiffInformedIncrementalMode() { any() } diff --git a/cpp/ql/src/change-notes/released/1.5.10.md b/cpp/ql/src/change-notes/released/1.5.10.md new file mode 100644 index 000000000000..829c5f1f1a1a --- /dev/null +++ b/cpp/ql/src/change-notes/released/1.5.10.md @@ -0,0 +1,3 @@ +## 1.5.10 + +No user-facing changes. diff --git a/cpp/ql/src/codeql-pack.release.yml b/cpp/ql/src/codeql-pack.release.yml index 5ac7d08bfbfc..fda54b31bffb 100644 --- a/cpp/ql/src/codeql-pack.release.yml +++ b/cpp/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.5.9 +lastReleaseVersion: 1.5.10 diff --git a/cpp/ql/src/qlpack.yml b/cpp/ql/src/qlpack.yml index 6ae2e8d17505..b374fb51f75f 100644 --- a/cpp/ql/src/qlpack.yml +++ b/cpp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-queries -version: 1.5.9 +version: 1.5.11-dev groups: - cpp - queries diff --git a/cpp/ql/src/utils/modelgenerator/internal/CaptureModels.qll b/cpp/ql/src/utils/modelgenerator/internal/CaptureModels.qll index ba1221d112b7..f2c621d04cb6 100644 --- a/cpp/ql/src/utils/modelgenerator/internal/CaptureModels.qll +++ b/cpp/ql/src/utils/modelgenerator/internal/CaptureModels.qll @@ -310,7 +310,7 @@ private module SummaryModelGeneratorInput implements SummaryModelGeneratorInputS } private predicate hasManualSummaryModel(Callable api) { - api = any(FlowSummaryImpl::Public::SummarizedCallable sc | sc.applyManualModel()) or + api = any(FlowSummaryImpl::Public::SummarizedCallable sc | sc.hasManualModel()) or api = any(FlowSummaryImpl::Public::NeutralSummaryCallable sc | sc.hasManualModel()) } diff --git a/cpp/ql/test/library-tests/controlflow/guards-ir/tests.expected b/cpp/ql/test/library-tests/controlflow/guards-ir/tests.expected index 2e18dcd7a620..62cecc059154 100644 --- a/cpp/ql/test/library-tests/controlflow/guards-ir/tests.expected +++ b/cpp/ql/test/library-tests/controlflow/guards-ir/tests.expected @@ -384,7 +384,9 @@ astGuardsControl | test.c:126:7:126:7 | 1 | true | 131 | 132 | | test.c:126:7:126:7 | 1 | true | 134 | 123 | | test.c:126:7:126:28 | ... && ... | true | 126 | 128 | +| test.c:126:7:126:28 | ... && ... | true | 131 | 131 | | test.c:126:7:126:28 | ... && ... | true | 131 | 132 | +| test.c:126:7:126:28 | ... && ... | true | 134 | 123 | | test.c:126:12:126:26 | call to test3_condition | true | 126 | 128 | | test.c:126:12:126:26 | call to test3_condition | true | 131 | 132 | | test.c:131:7:131:7 | b | true | 131 | 132 | @@ -405,9 +407,7 @@ astGuardsControl | test.c:181:9:181:9 | x | true | 181 | 182 | | test.c:181:9:181:9 | x | true | 186 | 180 | | test.cpp:18:8:18:10 | call to get | true | 19 | 19 | -| test.cpp:31:7:31:13 | ... == ... | false | 30 | 30 | | test.cpp:31:7:31:13 | ... == ... | false | 34 | 34 | -| test.cpp:31:7:31:13 | ... == ... | true | 30 | 30 | | test.cpp:31:7:31:13 | ... == ... | true | 31 | 32 | | test.cpp:42:13:42:20 | call to getABool | true | 43 | 45 | astGuardsEnsure @@ -589,13 +589,9 @@ astGuardsEnsure | test.c:175:13:175:32 | ... == ... | test.c:175:13:175:15 | call to foo | == | test.c:175:32:175:32 | 0 | 0 | 175 | 175 | | test.c:175:13:175:32 | ... == ... | test.c:175:32:175:32 | 0 | != | test.c:175:13:175:15 | call to foo | 0 | 175 | 175 | | test.c:175:13:175:32 | ... == ... | test.c:175:32:175:32 | 0 | == | test.c:175:13:175:15 | call to foo | 0 | 175 | 175 | -| test.cpp:31:7:31:13 | ... == ... | test.cpp:31:7:31:7 | x | != | test.cpp:31:12:31:13 | - ... | 0 | 30 | 30 | | test.cpp:31:7:31:13 | ... == ... | test.cpp:31:7:31:7 | x | != | test.cpp:31:12:31:13 | - ... | 0 | 34 | 34 | -| test.cpp:31:7:31:13 | ... == ... | test.cpp:31:7:31:7 | x | == | test.cpp:31:12:31:13 | - ... | 0 | 30 | 30 | | test.cpp:31:7:31:13 | ... == ... | test.cpp:31:7:31:7 | x | == | test.cpp:31:12:31:13 | - ... | 0 | 31 | 32 | -| test.cpp:31:7:31:13 | ... == ... | test.cpp:31:12:31:13 | - ... | != | test.cpp:31:7:31:7 | x | 0 | 30 | 30 | | test.cpp:31:7:31:13 | ... == ... | test.cpp:31:12:31:13 | - ... | != | test.cpp:31:7:31:7 | x | 0 | 34 | 34 | -| test.cpp:31:7:31:13 | ... == ... | test.cpp:31:12:31:13 | - ... | == | test.cpp:31:7:31:7 | x | 0 | 30 | 30 | | test.cpp:31:7:31:13 | ... == ... | test.cpp:31:12:31:13 | - ... | == | test.cpp:31:7:31:7 | x | 0 | 31 | 32 | astGuardsEnsure_const | test.c:7:9:7:13 | ... > ... | test.c:7:9:7:13 | ... > ... | != | 0 | 7 | 9 | @@ -793,13 +789,21 @@ astGuardsEnsure_const | test.c:126:7:126:7 | 1 | test.c:126:7:126:7 | 1 | == | 1 | 131 | 132 | | test.c:126:7:126:7 | 1 | test.c:126:7:126:7 | 1 | == | 1 | 134 | 123 | | test.c:126:7:126:28 | ... && ... | test.c:126:7:126:7 | 1 | != | 0 | 126 | 128 | +| test.c:126:7:126:28 | ... && ... | test.c:126:7:126:7 | 1 | != | 0 | 131 | 131 | | test.c:126:7:126:28 | ... && ... | test.c:126:7:126:7 | 1 | != | 0 | 131 | 132 | +| test.c:126:7:126:28 | ... && ... | test.c:126:7:126:7 | 1 | != | 0 | 134 | 123 | | test.c:126:7:126:28 | ... && ... | test.c:126:7:126:7 | 1 | == | 1 | 126 | 128 | +| test.c:126:7:126:28 | ... && ... | test.c:126:7:126:7 | 1 | == | 1 | 131 | 131 | | test.c:126:7:126:28 | ... && ... | test.c:126:7:126:7 | 1 | == | 1 | 131 | 132 | +| test.c:126:7:126:28 | ... && ... | test.c:126:7:126:7 | 1 | == | 1 | 134 | 123 | | test.c:126:7:126:28 | ... && ... | test.c:126:12:126:26 | call to test3_condition | != | 0 | 126 | 128 | +| test.c:126:7:126:28 | ... && ... | test.c:126:12:126:26 | call to test3_condition | != | 0 | 131 | 131 | | test.c:126:7:126:28 | ... && ... | test.c:126:12:126:26 | call to test3_condition | != | 0 | 131 | 132 | +| test.c:126:7:126:28 | ... && ... | test.c:126:12:126:26 | call to test3_condition | != | 0 | 134 | 123 | | test.c:126:7:126:28 | ... && ... | test.c:126:12:126:26 | call to test3_condition | == | 1 | 126 | 128 | +| test.c:126:7:126:28 | ... && ... | test.c:126:12:126:26 | call to test3_condition | == | 1 | 131 | 131 | | test.c:126:7:126:28 | ... && ... | test.c:126:12:126:26 | call to test3_condition | == | 1 | 131 | 132 | +| test.c:126:7:126:28 | ... && ... | test.c:126:12:126:26 | call to test3_condition | == | 1 | 134 | 123 | | test.c:126:12:126:26 | call to test3_condition | test.c:126:12:126:26 | call to test3_condition | != | 0 | 126 | 128 | | test.c:126:12:126:26 | call to test3_condition | test.c:126:12:126:26 | call to test3_condition | != | 0 | 131 | 132 | | test.c:126:12:126:26 | call to test3_condition | test.c:126:12:126:26 | call to test3_condition | == | 1 | 126 | 128 | @@ -846,17 +850,11 @@ astGuardsEnsure_const | test.c:181:9:181:9 | x | test.c:181:9:181:9 | x | == | 1 | 186 | 180 | | test.cpp:18:8:18:10 | call to get | test.cpp:18:8:18:10 | call to get | != | 0 | 19 | 19 | | test.cpp:18:8:18:10 | call to get | test.cpp:18:8:18:10 | call to get | == | 1 | 19 | 19 | -| test.cpp:31:7:31:13 | ... == ... | test.cpp:31:7:31:7 | x | != | -1 | 30 | 30 | | test.cpp:31:7:31:13 | ... == ... | test.cpp:31:7:31:7 | x | != | -1 | 34 | 34 | -| test.cpp:31:7:31:13 | ... == ... | test.cpp:31:7:31:7 | x | == | -1 | 30 | 30 | | test.cpp:31:7:31:13 | ... == ... | test.cpp:31:7:31:7 | x | == | -1 | 31 | 32 | -| test.cpp:31:7:31:13 | ... == ... | test.cpp:31:7:31:13 | ... == ... | != | 0 | 30 | 30 | | test.cpp:31:7:31:13 | ... == ... | test.cpp:31:7:31:13 | ... == ... | != | 0 | 31 | 32 | -| test.cpp:31:7:31:13 | ... == ... | test.cpp:31:7:31:13 | ... == ... | != | 1 | 30 | 30 | | test.cpp:31:7:31:13 | ... == ... | test.cpp:31:7:31:13 | ... == ... | != | 1 | 34 | 34 | -| test.cpp:31:7:31:13 | ... == ... | test.cpp:31:7:31:13 | ... == ... | == | 0 | 30 | 30 | | test.cpp:31:7:31:13 | ... == ... | test.cpp:31:7:31:13 | ... == ... | == | 0 | 34 | 34 | -| test.cpp:31:7:31:13 | ... == ... | test.cpp:31:7:31:13 | ... == ... | == | 1 | 30 | 30 | | test.cpp:31:7:31:13 | ... == ... | test.cpp:31:7:31:13 | ... == ... | == | 1 | 31 | 32 | | test.cpp:42:13:42:20 | call to getABool | test.cpp:42:13:42:20 | call to getABool | != | 0 | 43 | 45 | | test.cpp:42:13:42:20 | call to getABool | test.cpp:42:13:42:20 | call to getABool | == | 1 | 43 | 45 | diff --git a/cpp/ql/test/library-tests/controlflow/guards/GuardsControl.expected b/cpp/ql/test/library-tests/controlflow/guards/GuardsControl.expected index 80a6530291da..947fffd95f6f 100644 --- a/cpp/ql/test/library-tests/controlflow/guards/GuardsControl.expected +++ b/cpp/ql/test/library-tests/controlflow/guards/GuardsControl.expected @@ -105,9 +105,13 @@ | test.c:126:7:126:7 | 1 | true | test.c:131:10:132:16 | { ... } | | test.c:126:7:126:7 | 1 | true | test.c:134:1:123:10 | return ... | | test.c:126:7:126:28 | ... && ... | not 0 | test.c:126:31:128:16 | { ... } | +| test.c:126:7:126:28 | ... && ... | not 0 | test.c:131:3:131:7 | if (...) ... | | test.c:126:7:126:28 | ... && ... | not 0 | test.c:131:10:132:16 | { ... } | +| test.c:126:7:126:28 | ... && ... | not 0 | test.c:134:1:123:10 | return ... | | test.c:126:7:126:28 | ... && ... | true | test.c:126:31:128:16 | { ... } | +| test.c:126:7:126:28 | ... && ... | true | test.c:131:3:131:7 | if (...) ... | | test.c:126:7:126:28 | ... && ... | true | test.c:131:10:132:16 | { ... } | +| test.c:126:7:126:28 | ... && ... | true | test.c:134:1:123:10 | return ... | | test.c:126:12:126:26 | call to test3_condition | not 0 | test.c:126:31:128:16 | { ... } | | test.c:126:12:126:26 | call to test3_condition | not 0 | test.c:131:10:132:16 | { ... } | | test.c:126:12:126:26 | call to test3_condition | true | test.c:126:31:128:16 | { ... } | @@ -162,17 +166,11 @@ | test.c:219:9:219:22 | call to __builtin_expect | true | test.c:219:25:221:5 | { ... } | | test.cpp:18:8:18:10 | call to get | not null | test.cpp:19:5:19:14 | ExprStmt | | test.cpp:18:8:18:10 | call to get | true | test.cpp:19:5:19:14 | ExprStmt | -| test.cpp:30:22:30:22 | x | -1 | test.cpp:30:6:30:16 | doSomething | | test.cpp:30:22:30:22 | x | -1 | test.cpp:31:16:32:21 | { ... } | -| test.cpp:30:22:30:22 | x | not -1 | test.cpp:30:6:30:16 | doSomething | | test.cpp:30:22:30:22 | x | not -1 | test.cpp:34:1:34:1 | return ... | -| test.cpp:31:7:31:7 | x | -1 | test.cpp:30:6:30:16 | doSomething | | test.cpp:31:7:31:7 | x | -1 | test.cpp:31:16:32:21 | { ... } | -| test.cpp:31:7:31:7 | x | not -1 | test.cpp:30:6:30:16 | doSomething | | test.cpp:31:7:31:7 | x | not -1 | test.cpp:34:1:34:1 | return ... | -| test.cpp:31:7:31:13 | ... == ... | false | test.cpp:30:6:30:16 | doSomething | | test.cpp:31:7:31:13 | ... == ... | false | test.cpp:34:1:34:1 | return ... | -| test.cpp:31:7:31:13 | ... == ... | true | test.cpp:30:6:30:16 | doSomething | | test.cpp:31:7:31:13 | ... == ... | true | test.cpp:31:16:32:21 | { ... } | | test.cpp:42:13:42:20 | call to getABool | true | test.cpp:43:9:45:23 | { ... } | | test.cpp:60:31:60:31 | i | 0 | test.cpp:62:5:64:12 | case ...: | @@ -408,19 +406,11 @@ | test.cpp:400:11:400:25 | call to testEnumWrapper | 2 | test.cpp:404:5:406:12 | case ...: | | test.cpp:400:27:400:27 | b | false | test.cpp:404:5:406:12 | case ...: | | test.cpp:400:27:400:27 | b | true | test.cpp:401:5:403:12 | case ...: | -| test.cpp:410:26:410:26 | o | not null | test.cpp:410:6:410:18 | ensureNotNull | | test.cpp:410:26:410:26 | o | not null | test.cpp:412:1:412:1 | return ... | -| test.cpp:410:26:410:26 | o | null | test.cpp:410:6:410:18 | ensureNotNull | | test.cpp:410:26:410:26 | o | null | test.cpp:411:11:411:18 | ExprStmt | -| test.cpp:411:7:411:8 | ! ... | false | test.cpp:410:6:410:18 | ensureNotNull | | test.cpp:411:7:411:8 | ! ... | false | test.cpp:412:1:412:1 | return ... | -| test.cpp:411:7:411:8 | ! ... | true | test.cpp:410:6:410:18 | ensureNotNull | | test.cpp:411:7:411:8 | ! ... | true | test.cpp:411:11:411:18 | ExprStmt | -| test.cpp:411:8:411:8 | o | false | test.cpp:410:6:410:18 | ensureNotNull | | test.cpp:411:8:411:8 | o | false | test.cpp:411:11:411:18 | ExprStmt | -| test.cpp:411:8:411:8 | o | not null | test.cpp:410:6:410:18 | ensureNotNull | | test.cpp:411:8:411:8 | o | not null | test.cpp:412:1:412:1 | return ... | -| test.cpp:411:8:411:8 | o | null | test.cpp:410:6:410:18 | ensureNotNull | | test.cpp:411:8:411:8 | o | null | test.cpp:411:11:411:18 | ExprStmt | -| test.cpp:411:8:411:8 | o | true | test.cpp:410:6:410:18 | ensureNotNull | | test.cpp:411:8:411:8 | o | true | test.cpp:412:1:412:1 | return ... | diff --git a/cpp/ql/test/library-tests/controlflow/guards/GuardsEnsure.expected b/cpp/ql/test/library-tests/controlflow/guards/GuardsEnsure.expected index 0de63fa505b4..5a364e3deaad 100644 --- a/cpp/ql/test/library-tests/controlflow/guards/GuardsEnsure.expected +++ b/cpp/ql/test/library-tests/controlflow/guards/GuardsEnsure.expected @@ -195,13 +195,9 @@ binary | test.c:215:6:215:18 | call to __builtin_expect | test.c:215:17:215:17 | b | < | test.c:215:13:215:13 | a | 0 | test.c:215:21:217:5 | { ... } | | test.c:219:9:219:22 | call to __builtin_expect | test.c:219:16:219:16 | a | >= | test.c:219:20:219:21 | 42 | 1 | test.c:219:25:221:5 | { ... } | | test.c:219:9:219:22 | call to __builtin_expect | test.c:219:20:219:21 | 42 | < | test.c:219:16:219:16 | a | 0 | test.c:219:25:221:5 | { ... } | -| test.cpp:31:7:31:13 | ... == ... | test.cpp:31:7:31:7 | x | != | test.cpp:31:12:31:13 | - ... | 0 | test.cpp:30:6:30:16 | doSomething | | test.cpp:31:7:31:13 | ... == ... | test.cpp:31:7:31:7 | x | != | test.cpp:31:12:31:13 | - ... | 0 | test.cpp:34:1:34:1 | return ... | -| test.cpp:31:7:31:13 | ... == ... | test.cpp:31:7:31:7 | x | == | test.cpp:31:12:31:13 | - ... | 0 | test.cpp:30:6:30:16 | doSomething | | test.cpp:31:7:31:13 | ... == ... | test.cpp:31:7:31:7 | x | == | test.cpp:31:12:31:13 | - ... | 0 | test.cpp:31:16:32:21 | { ... } | -| test.cpp:31:7:31:13 | ... == ... | test.cpp:31:12:31:13 | - ... | != | test.cpp:31:7:31:7 | x | 0 | test.cpp:30:6:30:16 | doSomething | | test.cpp:31:7:31:13 | ... == ... | test.cpp:31:12:31:13 | - ... | != | test.cpp:31:7:31:7 | x | 0 | test.cpp:34:1:34:1 | return ... | -| test.cpp:31:7:31:13 | ... == ... | test.cpp:31:12:31:13 | - ... | == | test.cpp:31:7:31:7 | x | 0 | test.cpp:30:6:30:16 | doSomething | | test.cpp:31:7:31:13 | ... == ... | test.cpp:31:12:31:13 | - ... | == | test.cpp:31:7:31:7 | x | 0 | test.cpp:31:16:32:21 | { ... } | | test.cpp:105:6:105:14 | ... != ... | test.cpp:105:6:105:6 | f | != | test.cpp:105:11:105:14 | 0.0 | 0 | test.cpp:105:17:106:7 | { ... } | | test.cpp:105:6:105:14 | ... != ... | test.cpp:105:11:105:14 | 0.0 | != | test.cpp:105:6:105:6 | f | 0 | test.cpp:105:17:106:7 | { ... } | @@ -762,13 +758,21 @@ unary | test.c:126:7:126:7 | 1 | test.c:126:7:126:7 | 1 | == | 1 | test.c:131:10:132:16 | { ... } | | test.c:126:7:126:7 | 1 | test.c:126:7:126:7 | 1 | == | 1 | test.c:134:1:123:10 | return ... | | test.c:126:7:126:28 | ... && ... | test.c:126:7:126:7 | 1 | != | 0 | test.c:126:31:128:16 | { ... } | +| test.c:126:7:126:28 | ... && ... | test.c:126:7:126:7 | 1 | != | 0 | test.c:131:3:131:7 | if (...) ... | | test.c:126:7:126:28 | ... && ... | test.c:126:7:126:7 | 1 | != | 0 | test.c:131:10:132:16 | { ... } | +| test.c:126:7:126:28 | ... && ... | test.c:126:7:126:7 | 1 | != | 0 | test.c:134:1:123:10 | return ... | | test.c:126:7:126:28 | ... && ... | test.c:126:7:126:7 | 1 | == | 1 | test.c:126:31:128:16 | { ... } | +| test.c:126:7:126:28 | ... && ... | test.c:126:7:126:7 | 1 | == | 1 | test.c:131:3:131:7 | if (...) ... | | test.c:126:7:126:28 | ... && ... | test.c:126:7:126:7 | 1 | == | 1 | test.c:131:10:132:16 | { ... } | +| test.c:126:7:126:28 | ... && ... | test.c:126:7:126:7 | 1 | == | 1 | test.c:134:1:123:10 | return ... | | test.c:126:7:126:28 | ... && ... | test.c:126:12:126:26 | call to test3_condition | != | 0 | test.c:126:31:128:16 | { ... } | +| test.c:126:7:126:28 | ... && ... | test.c:126:12:126:26 | call to test3_condition | != | 0 | test.c:131:3:131:7 | if (...) ... | | test.c:126:7:126:28 | ... && ... | test.c:126:12:126:26 | call to test3_condition | != | 0 | test.c:131:10:132:16 | { ... } | +| test.c:126:7:126:28 | ... && ... | test.c:126:12:126:26 | call to test3_condition | != | 0 | test.c:134:1:123:10 | return ... | | test.c:126:7:126:28 | ... && ... | test.c:126:12:126:26 | call to test3_condition | == | 1 | test.c:126:31:128:16 | { ... } | +| test.c:126:7:126:28 | ... && ... | test.c:126:12:126:26 | call to test3_condition | == | 1 | test.c:131:3:131:7 | if (...) ... | | test.c:126:7:126:28 | ... && ... | test.c:126:12:126:26 | call to test3_condition | == | 1 | test.c:131:10:132:16 | { ... } | +| test.c:126:7:126:28 | ... && ... | test.c:126:12:126:26 | call to test3_condition | == | 1 | test.c:134:1:123:10 | return ... | | test.c:126:12:126:26 | call to test3_condition | test.c:126:12:126:26 | call to test3_condition | != | 0 | test.c:126:31:128:16 | { ... } | | test.c:126:12:126:26 | call to test3_condition | test.c:126:12:126:26 | call to test3_condition | != | 0 | test.c:131:10:132:16 | { ... } | | test.c:126:12:126:26 | call to test3_condition | test.c:126:12:126:26 | call to test3_condition | == | 1 | test.c:126:31:128:16 | { ... } | @@ -853,17 +857,11 @@ unary | test.c:219:9:219:22 | call to __builtin_expect | test.c:219:16:219:21 | ... > ... | != | 0 | test.c:219:25:221:5 | { ... } | | test.cpp:18:8:18:10 | call to get | test.cpp:18:8:18:10 | call to get | != | 0 | test.cpp:19:5:19:14 | ExprStmt | | test.cpp:18:8:18:10 | call to get | test.cpp:18:8:18:10 | call to get | == | 1 | test.cpp:19:5:19:14 | ExprStmt | -| test.cpp:31:7:31:13 | ... == ... | test.cpp:31:7:31:7 | x | != | -1 | test.cpp:30:6:30:16 | doSomething | | test.cpp:31:7:31:13 | ... == ... | test.cpp:31:7:31:7 | x | != | -1 | test.cpp:34:1:34:1 | return ... | -| test.cpp:31:7:31:13 | ... == ... | test.cpp:31:7:31:7 | x | == | -1 | test.cpp:30:6:30:16 | doSomething | | test.cpp:31:7:31:13 | ... == ... | test.cpp:31:7:31:7 | x | == | -1 | test.cpp:31:16:32:21 | { ... } | -| test.cpp:31:7:31:13 | ... == ... | test.cpp:31:7:31:13 | ... == ... | != | 0 | test.cpp:30:6:30:16 | doSomething | | test.cpp:31:7:31:13 | ... == ... | test.cpp:31:7:31:13 | ... == ... | != | 0 | test.cpp:31:16:32:21 | { ... } | -| test.cpp:31:7:31:13 | ... == ... | test.cpp:31:7:31:13 | ... == ... | != | 1 | test.cpp:30:6:30:16 | doSomething | | test.cpp:31:7:31:13 | ... == ... | test.cpp:31:7:31:13 | ... == ... | != | 1 | test.cpp:34:1:34:1 | return ... | -| test.cpp:31:7:31:13 | ... == ... | test.cpp:31:7:31:13 | ... == ... | == | 0 | test.cpp:30:6:30:16 | doSomething | | test.cpp:31:7:31:13 | ... == ... | test.cpp:31:7:31:13 | ... == ... | == | 0 | test.cpp:34:1:34:1 | return ... | -| test.cpp:31:7:31:13 | ... == ... | test.cpp:31:7:31:13 | ... == ... | == | 1 | test.cpp:30:6:30:16 | doSomething | | test.cpp:31:7:31:13 | ... == ... | test.cpp:31:7:31:13 | ... == ... | == | 1 | test.cpp:31:16:32:21 | { ... } | | test.cpp:42:13:42:20 | call to getABool | test.cpp:42:13:42:20 | call to getABool | != | 0 | test.cpp:43:9:45:23 | { ... } | | test.cpp:42:13:42:20 | call to getABool | test.cpp:42:13:42:20 | call to getABool | == | 1 | test.cpp:43:9:45:23 | { ... } | @@ -1401,35 +1399,19 @@ unary | test.cpp:394:7:394:47 | ... == ... | test.cpp:394:15:394:34 | call to returnAIfNoneAreNull | == | 0 | test.cpp:394:50:395:7 | { ... } | | test.cpp:400:11:400:25 | call to testEnumWrapper | test.cpp:400:11:400:25 | call to testEnumWrapper | == | 1 | test.cpp:401:5:403:12 | case ...: | | test.cpp:400:11:400:25 | call to testEnumWrapper | test.cpp:400:11:400:25 | call to testEnumWrapper | == | 2 | test.cpp:404:5:406:12 | case ...: | -| test.cpp:411:7:411:8 | ! ... | test.cpp:411:7:411:8 | ! ... | != | 0 | test.cpp:410:6:410:18 | ensureNotNull | | test.cpp:411:7:411:8 | ! ... | test.cpp:411:7:411:8 | ! ... | != | 0 | test.cpp:411:11:411:18 | ExprStmt | -| test.cpp:411:7:411:8 | ! ... | test.cpp:411:7:411:8 | ! ... | != | 1 | test.cpp:410:6:410:18 | ensureNotNull | | test.cpp:411:7:411:8 | ! ... | test.cpp:411:7:411:8 | ! ... | != | 1 | test.cpp:412:1:412:1 | return ... | -| test.cpp:411:7:411:8 | ! ... | test.cpp:411:7:411:8 | ! ... | == | 0 | test.cpp:410:6:410:18 | ensureNotNull | | test.cpp:411:7:411:8 | ! ... | test.cpp:411:7:411:8 | ! ... | == | 0 | test.cpp:412:1:412:1 | return ... | -| test.cpp:411:7:411:8 | ! ... | test.cpp:411:7:411:8 | ! ... | == | 1 | test.cpp:410:6:410:18 | ensureNotNull | | test.cpp:411:7:411:8 | ! ... | test.cpp:411:7:411:8 | ! ... | == | 1 | test.cpp:411:11:411:18 | ExprStmt | -| test.cpp:411:7:411:8 | ! ... | test.cpp:411:8:411:8 | o | != | 0 | test.cpp:410:6:410:18 | ensureNotNull | | test.cpp:411:7:411:8 | ! ... | test.cpp:411:8:411:8 | o | != | 0 | test.cpp:412:1:412:1 | return ... | -| test.cpp:411:7:411:8 | ! ... | test.cpp:411:8:411:8 | o | != | 1 | test.cpp:410:6:410:18 | ensureNotNull | | test.cpp:411:7:411:8 | ! ... | test.cpp:411:8:411:8 | o | != | 1 | test.cpp:411:11:411:18 | ExprStmt | -| test.cpp:411:7:411:8 | ! ... | test.cpp:411:8:411:8 | o | == | 0 | test.cpp:410:6:410:18 | ensureNotNull | | test.cpp:411:7:411:8 | ! ... | test.cpp:411:8:411:8 | o | == | 0 | test.cpp:411:11:411:18 | ExprStmt | -| test.cpp:411:7:411:8 | ! ... | test.cpp:411:8:411:8 | o | == | 1 | test.cpp:410:6:410:18 | ensureNotNull | | test.cpp:411:7:411:8 | ! ... | test.cpp:411:8:411:8 | o | == | 1 | test.cpp:412:1:412:1 | return ... | -| test.cpp:411:8:411:8 | o | test.cpp:411:7:411:8 | ! ... | != | 0 | test.cpp:410:6:410:18 | ensureNotNull | | test.cpp:411:8:411:8 | o | test.cpp:411:7:411:8 | ! ... | != | 0 | test.cpp:411:11:411:18 | ExprStmt | -| test.cpp:411:8:411:8 | o | test.cpp:411:7:411:8 | ! ... | != | 1 | test.cpp:410:6:410:18 | ensureNotNull | | test.cpp:411:8:411:8 | o | test.cpp:411:7:411:8 | ! ... | != | 1 | test.cpp:412:1:412:1 | return ... | -| test.cpp:411:8:411:8 | o | test.cpp:411:7:411:8 | ! ... | == | 0 | test.cpp:410:6:410:18 | ensureNotNull | | test.cpp:411:8:411:8 | o | test.cpp:411:7:411:8 | ! ... | == | 0 | test.cpp:412:1:412:1 | return ... | -| test.cpp:411:8:411:8 | o | test.cpp:411:7:411:8 | ! ... | == | 1 | test.cpp:410:6:410:18 | ensureNotNull | | test.cpp:411:8:411:8 | o | test.cpp:411:7:411:8 | ! ... | == | 1 | test.cpp:411:11:411:18 | ExprStmt | -| test.cpp:411:8:411:8 | o | test.cpp:411:8:411:8 | o | != | 0 | test.cpp:410:6:410:18 | ensureNotNull | | test.cpp:411:8:411:8 | o | test.cpp:411:8:411:8 | o | != | 0 | test.cpp:412:1:412:1 | return ... | -| test.cpp:411:8:411:8 | o | test.cpp:411:8:411:8 | o | != | 1 | test.cpp:410:6:410:18 | ensureNotNull | | test.cpp:411:8:411:8 | o | test.cpp:411:8:411:8 | o | != | 1 | test.cpp:411:11:411:18 | ExprStmt | -| test.cpp:411:8:411:8 | o | test.cpp:411:8:411:8 | o | == | 0 | test.cpp:410:6:410:18 | ensureNotNull | | test.cpp:411:8:411:8 | o | test.cpp:411:8:411:8 | o | == | 0 | test.cpp:411:11:411:18 | ExprStmt | -| test.cpp:411:8:411:8 | o | test.cpp:411:8:411:8 | o | == | 1 | test.cpp:410:6:410:18 | ensureNotNull | | test.cpp:411:8:411:8 | o | test.cpp:411:8:411:8 | o | == | 1 | test.cpp:412:1:412:1 | return ... | diff --git a/cpp/ql/test/library-tests/dataflow/asDefinition/test.cpp b/cpp/ql/test/library-tests/dataflow/asDefinition/test.cpp new file mode 100644 index 000000000000..facb67399585 --- /dev/null +++ b/cpp/ql/test/library-tests/dataflow/asDefinition/test.cpp @@ -0,0 +1,18 @@ +struct S { + int x; +}; + +void use(int); + +void test() { + int y = 43; // $ asDefinition=43 + use(y); + y = 44; // $ asDefinition="... = ..." + use(y); + + int x = 43; // $ asDefinition=43 + x = 44; // $ asDefinition="... = ..." + + S s; + s.x = 42; // $ asDefinition="... = ..." +} \ No newline at end of file diff --git a/cpp/ql/test/library-tests/dataflow/asDefinition/test.expected b/cpp/ql/test/library-tests/dataflow/asDefinition/test.expected new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/cpp/ql/test/library-tests/dataflow/asDefinition/test.ql b/cpp/ql/test/library-tests/dataflow/asDefinition/test.ql new file mode 100644 index 000000000000..b996f47fb49f --- /dev/null +++ b/cpp/ql/test/library-tests/dataflow/asDefinition/test.ql @@ -0,0 +1,22 @@ +import cpp +import utils.test.InlineExpectationsTest +import semmle.code.cpp.dataflow.new.DataFlow::DataFlow + +bindingset[s] +string quote(string s) { if s.matches("% %") then result = "\"" + s + "\"" else result = s } + +module AsDefinitionTest implements TestSig { + string getARelevantTag() { result = "asDefinition" } + + predicate hasActualResult(Location location, string element, string tag, string value) { + exists(Node n, Expr e | + e = n.asDefinition() and + location = e.getLocation() and + element = n.toString() and + tag = "asDefinition" and + value = quote(e.toString()) + ) + } +} + +import MakeTest diff --git a/cpp/ql/test/library-tests/dataflow/dataflow-tests/test-source-sink.expected b/cpp/ql/test/library-tests/dataflow/dataflow-tests/test-source-sink.expected index d9ac3c3dee56..03a106208a5b 100644 --- a/cpp/ql/test/library-tests/dataflow/dataflow-tests/test-source-sink.expected +++ b/cpp/ql/test/library-tests/dataflow/dataflow-tests/test-source-sink.expected @@ -147,6 +147,29 @@ astFlow | test.cpp:1165:10:1165:15 | call to source | test.cpp:1239:10:1239:26 | * ... | | test.cpp:1195:10:1195:24 | call to indirect_source | test.cpp:1200:19:1200:36 | global_int_ptr_ptr | | test.cpp:1195:10:1195:24 | call to indirect_source | test.cpp:1201:10:1201:27 | global_int_ptr_ptr | +| test.cpp:1258:11:1258:16 | call to source | test.cpp:1259:8:1259:10 | ... ++ | +| test.cpp:1262:7:1262:12 | call to source | test.cpp:1263:8:1263:10 | ... -- | +| test.cpp:1266:7:1266:12 | call to source | test.cpp:1267:8:1267:10 | ++ ... | +| test.cpp:1266:7:1266:12 | call to source | test.cpp:1268:8:1268:8 | x | +| test.cpp:1270:7:1270:12 | call to source | test.cpp:1271:8:1271:10 | -- ... | +| test.cpp:1270:7:1270:12 | call to source | test.cpp:1272:8:1272:8 | x | +| test.cpp:1274:7:1274:12 | call to source | test.cpp:1275:8:1275:14 | ... += ... | +| test.cpp:1274:7:1274:12 | call to source | test.cpp:1276:8:1276:8 | x | +| test.cpp:1278:7:1278:12 | call to source | test.cpp:1279:8:1279:14 | ... -= ... | +| test.cpp:1278:7:1278:12 | call to source | test.cpp:1280:8:1280:8 | x | +| test.cpp:1284:11:1284:16 | call to source | test.cpp:1285:8:1285:20 | ... ? ... : ... | +| test.cpp:1288:7:1288:12 | call to source | test.cpp:1289:8:1289:20 | ... ++ | +| test.cpp:1288:7:1288:12 | call to source | test.cpp:1290:8:1290:8 | x | +| test.cpp:1292:7:1292:12 | call to source | test.cpp:1294:8:1294:8 | x | +| test.cpp:1296:7:1296:12 | call to source | test.cpp:1297:8:1297:18 | ... ? ... : ... | +| test.cpp:1296:7:1296:12 | call to source | test.cpp:1298:8:1298:8 | x | +| test.cpp:1300:7:1300:12 | call to source | test.cpp:1301:8:1301:18 | ... ? ... : ... | +| test.cpp:1300:7:1300:12 | call to source | test.cpp:1302:8:1302:8 | x | +| test.cpp:1304:7:1304:12 | call to source | test.cpp:1305:8:1305:18 | ... ? ... : ... | +| test.cpp:1304:7:1304:12 | call to source | test.cpp:1306:8:1306:8 | x | +| test.cpp:1308:7:1308:12 | call to source | test.cpp:1309:14:1309:16 | ... ++ | +| test.cpp:1312:7:1312:12 | call to source | test.cpp:1313:8:1313:24 | ... ? ... : ... | +| test.cpp:1312:7:1312:12 | call to source | test.cpp:1314:8:1314:8 | x | | true_upon_entry.cpp:17:11:17:16 | call to source | true_upon_entry.cpp:21:8:21:8 | x | | true_upon_entry.cpp:27:9:27:14 | call to source | true_upon_entry.cpp:29:8:29:8 | x | | true_upon_entry.cpp:33:11:33:16 | call to source | true_upon_entry.cpp:39:8:39:8 | x | @@ -354,6 +377,19 @@ irFlow | test.cpp:1195:10:1195:24 | *call to indirect_source | test.cpp:1218:19:1218:36 | **global_int_ptr_ptr | | test.cpp:1195:10:1195:24 | *call to indirect_source | test.cpp:1224:19:1224:37 | ** ... | | test.cpp:1195:10:1195:24 | *call to indirect_source | test.cpp:1227:10:1227:29 | * ... | +| test.cpp:1258:11:1258:16 | call to source | test.cpp:1259:8:1259:10 | ... ++ | +| test.cpp:1262:7:1262:12 | call to source | test.cpp:1263:8:1263:10 | ... -- | +| test.cpp:1284:11:1284:16 | call to source | test.cpp:1285:8:1285:20 | ... ? ... : ... | +| test.cpp:1288:7:1288:12 | call to source | test.cpp:1290:8:1290:8 | x | +| test.cpp:1292:7:1292:12 | call to source | test.cpp:1294:8:1294:8 | x | +| test.cpp:1296:7:1296:12 | call to source | test.cpp:1297:8:1297:18 | ... ? ... : ... | +| test.cpp:1296:7:1296:12 | call to source | test.cpp:1298:8:1298:8 | x | +| test.cpp:1300:7:1300:12 | call to source | test.cpp:1301:8:1301:18 | ... ? ... : ... | +| test.cpp:1300:7:1300:12 | call to source | test.cpp:1302:8:1302:8 | x | +| test.cpp:1304:7:1304:12 | call to source | test.cpp:1306:8:1306:8 | x | +| test.cpp:1308:7:1308:12 | call to source | test.cpp:1309:8:1309:16 | ... ++ | +| test.cpp:1312:7:1312:12 | call to source | test.cpp:1313:8:1313:24 | ... ? ... : ... | +| test.cpp:1312:7:1312:12 | call to source | test.cpp:1314:8:1314:8 | x | | true_upon_entry.cpp:9:11:9:16 | call to source | true_upon_entry.cpp:13:8:13:8 | x | | true_upon_entry.cpp:17:11:17:16 | call to source | true_upon_entry.cpp:21:8:21:8 | x | | true_upon_entry.cpp:27:9:27:14 | call to source | true_upon_entry.cpp:29:8:29:8 | x | diff --git a/cpp/ql/test/library-tests/dataflow/dataflow-tests/test.cpp b/cpp/ql/test/library-tests/dataflow/dataflow-tests/test.cpp index 35e6a074cfd0..e1c3ef98fb74 100644 --- a/cpp/ql/test/library-tests/dataflow/dataflow-tests/test.cpp +++ b/cpp/ql/test/library-tests/dataflow/dataflow-tests/test.cpp @@ -1252,4 +1252,64 @@ namespace globals_without_explicit_def { calls_set_array(); sink(*global_int_array); // $ ir MISSING: ast } +} + +void crement_test1() { + int x = source(); + sink(x++); // $ ir ast + sink(x); + + x = source(); + sink(x--); // $ ir ast + sink(x); + + x = source(); + sink(++x); // $ SPURIOUS: ast + sink(x); // $ SPURIOUS: ast + + x = source(); + sink(--x); // $ SPURIOUS: ast + sink(x); // $ SPURIOUS: ast + + x = source(); + sink(x += 10); // $ SPURIOUS: ast + sink(x); // $ SPURIOUS: ast + + x = source(); + sink(x -= 10); // $ SPURIOUS: ast + sink(x); // $ SPURIOUS: ast +} + +void crement_test2(bool b, int y) { + int x = source(); + sink(b ? x++ : x--); // $ ir ast + sink(x); + + x = source(); + sink((b ? x : y)++); // $ ast MISSING: ir + sink(x); // $ ir ast + + x = source(); + sink(++(b ? x : y)); + sink(x); // $ ir ast + + x = source(); + sink(b ? x++ : y); // $ ir ast + sink(x); // $ ir ast + + x = source(); + sink(b ? x : y++); // $ ir ast + sink(x); // $ ir ast + + x = source(); + sink(b ? ++x : y); // $ SPURIOUS: ast + sink(x); // $ ir ast + + x = source(); + sink((long)x++); // $ ir ast + sink(x); + + x = source(); + sink(b ? (long)x++ : 0); // $ ir ast + sink(x); // $ ir ast } \ No newline at end of file diff --git a/cpp/ql/test/library-tests/dataflow/external-models/azure.cpp b/cpp/ql/test/library-tests/dataflow/external-models/azure.cpp new file mode 100644 index 000000000000..14407a8b5bed --- /dev/null +++ b/cpp/ql/test/library-tests/dataflow/external-models/azure.cpp @@ -0,0 +1,297 @@ +using uint16_t = unsigned short; +using int64_t = long long; +using size_t = unsigned long; +using uint8_t = unsigned char; +using int32_t = int; +using uint32_t = unsigned int; + +namespace std +{ + class string + { + public: + string(); + string(const char *); + ~string(); + }; + + template + class map + { + public: + map(); + ~map(); + + V& operator[](const K& key); + }; + + template + class vector + { + public: + vector(); + ~vector(); + + T& operator[](size_t); + }; + + template + class unique_ptr { + public: + unique_ptr(); + ~unique_ptr(); + + T* get(); + }; +} + +namespace Azure +{ + template + class Nullable + { + public: + Nullable(); + Nullable(const T); + Nullable(const Nullable &); + ~Nullable(); + Nullable (Nullable &&); + Nullable & operator= (const Nullable &); + bool HasValue() const; + const T & Value () const; + T& Value (); + const T * operator-> () const; + T * operator-> (); + const T & operator* () const; + T & operator* (); + }; + + namespace Core + { + class Url + { + public: + Url(); + Url(const std::string &); + void AppendPath(const std::string &encodedPath); + void AppendQueryParameter(const std::string &encodedKey, + const std::string &encodedValue); + + static std::string Url::Decode(const std::string &value); + static std::string Url::Encode(const std::string &value, + const std::string &doNotEncodeSymbols = ""); + + std::string Url::GetAbsoluteUrl() const; + const std::string &GetHost() const; + const std::string &GetPath() const; + uint16_t GetPort() const; + std::map GetQueryParameters() const; + std::string Url::GetRelativeUrl() const; + const std::string &GetScheme() const; + void RemoveQueryParameter(const std::string &encodedKey); + void SetHost(const std::string &encodedHost); + void SetPath(const std::string &encodedPath); + void SetPort(uint16_t port); + void SetQueryParameters(std::map queryParameters); + void SetScheme(const std::string &scheme); + }; + + class Context + { + public: + Context(); + }; + + namespace IO + { + class BodyStream + { + public: + virtual ~BodyStream(); + virtual int64_t Length() const = 0; + virtual void Rewind(); + size_t Read(uint8_t *buffer, size_t count, Azure::Core::Context const &context = Azure::Core::Context()); + size_t ReadToCount(uint8_t *buffer, size_t count, Azure::Core::Context const &context = Azure::Core::Context()); + std::vector ReadToEnd(Azure::Core::Context const &context = Azure::Core::Context()); + }; + } + + enum class HttpStatusCode { + None = 0, + Continue = 100, + SwitchingProtocols = 101, + Processing = 102, + EarlyHints = 103, + OK = 200, + Created = 201, + Accepted = 202, + NonAuthoritativeInformation = 203, + NoContent = 204, + ResetContent = 205, + PartialContent = 206, + MultiStatus = 207, + AlreadyReported = 208, + IMUsed = 226, + MultipleChoices = 300, + MovedPermanently = 301, + Found = 302, + SeeOther = 303, + NotModified = 304, + UseProxy = 305, + TemporaryRedirect = 307, + PermanentRedirect = 308, + BadRequest = 400, + Unauthorized = 401, + PaymentRequired = 402, + Forbidden = 403, + NotFound = 404, + MethodNotAllowed = 405, + NotAcceptable = 406, + ProxyAuthenticationRequired = 407, + RequestTimeout = 408, + Conflict = 409, + Gone = 410, + LengthRequired = 411, + PreconditionFailed = 412, + PayloadTooLarge = 413, + URITooLong = 414, + UnsupportedMediaType = 415, + RangeNotSatisfiable = 416, + ExpectationFailed = 417, + MisdirectedRequest = 421, + UnprocessableEntity = 422, + Locked = 423, + FailedDependency = 424, + TooEarly = 425, + UpgradeRequired = 426, + PreconditionRequired = 428, + TooManyRequests = 429, + RequestHeaderFieldsTooLarge = 431, + UnavailableForLegalReasons = 451, + InternalServerError = 500, + NotImplemented = 501, + BadGateway = 502, + ServiceUnavailable = 503, + GatewayTimeout = 504, + HTTPVersionNotSupported = 505, + VariantAlsoNegotiates = 506, + InsufficientStorage = 507, + LoopDetected = 508, + NotExtended = 510, + NetworkAuthenticationRequired = 511 + }; + + namespace Http + { + class HttpMethod + { + public: + HttpMethod(std::string value); + bool operator==(const HttpMethod &other) const; + bool operator!=(const HttpMethod &other) const; + const std::string &ToString() const; + }; + + extern const HttpMethod Get; + extern const HttpMethod Head; + extern const HttpMethod Post; + extern const HttpMethod Put; + extern const HttpMethod Delete; + extern const HttpMethod Patch; + extern const HttpMethod Options; + + class Request + { + public: + explicit Request(HttpMethod httpMethod, + Url url); + explicit Request(HttpMethod httpMethod, + Url url, + bool shouldBufferResponse); + explicit Request(HttpMethod httpMethod, + Url url, + IO::BodyStream *bodyStream); + explicit Request(HttpMethod httpMethod, + Url url, + IO::BodyStream *bodyStream, + bool shouldBufferResponse); + std::map GetHeaders () const; + Azure::Nullable GetHeader(std::string const &name); + IO::BodyStream * GetBodyStream(); + Azure::Core::IO::BodyStream const* GetBodyStream () const; + }; + + class RawResponse { + public: + RawResponse (int32_t majorVersion, int32_t minorVersion, HttpStatusCode statusCode, std::string const &reasonPhrase); + RawResponse (RawResponse const &response); + RawResponse (RawResponse &&response); + ~RawResponse (); + void SetHeader (std::string const &name, std::string const &value); + void SetBodyStream (std::unique_ptr< Azure::Core::IO::BodyStream > stream); + void SetBody (std::vector< uint8_t > body); + uint32_t GetMajorVersion () const; + uint32_t GetMinorVersion () const; + HttpStatusCode GetStatusCode () const; + std::string const & GetReasonPhrase () const; + std::map& GetHeaders () const; + std::unique_ptr ExtractBodyStream (); + std::vector & GetBody (); + std::vector const& GetBody() const; + }; + } + } +} + +void sink(char); +void sink(std::string); +void sink(std::vector); +void sink(Azure::Nullable); + +void test_BodyStream() { + Azure::Core::Http::Request request(Azure::Core::Http::Get, Azure::Core::Url("http://example.com")); + Azure::Core::IO::BodyStream * resp = request.GetBodyStream(); + + { + unsigned char buffer[1024]; + resp->Read(buffer, sizeof(buffer)); + sink(*buffer); // $ ir + } + { + unsigned char buffer[1024]; + resp->ReadToCount(buffer, sizeof(buffer)); + sink(*buffer); // $ ir + } + { + std::vector vec = resp->ReadToEnd(); + sink(vec); // $ ir + } +} + +void test_RawResponse(Azure::Core::Http::RawResponse& resp) { + { + std::map body = resp.GetHeaders(); + sink(body["Content-Type"]); // $ ir + } + { + std::vector body = resp.GetBody(); + sink(body); // $ ir + } + { + std::unique_ptr bodyStream = resp.ExtractBodyStream(); + sink(bodyStream.get()->ReadToEnd()); // $ ir + } +} + +void test_GetHeader() { + Azure::Core::Http::Request request(Azure::Core::Http::Get, Azure::Core::Url("http://example.com")); + { + auto headerValue = request.GetHeader("Content-Type").Value(); + sink(headerValue); // $ ir + } + { + std::map headers = request.GetHeaders(); + std::string contentType = headers["Content-Type"]; + sink(contentType); // $ ir + } +} \ No newline at end of file diff --git a/cpp/ql/test/library-tests/dataflow/external-models/flow.expected b/cpp/ql/test/library-tests/dataflow/external-models/flow.expected index d47ae8950fb3..1e46060c97ed 100644 --- a/cpp/ql/test/library-tests/dataflow/external-models/flow.expected +++ b/cpp/ql/test/library-tests/dataflow/external-models/flow.expected @@ -14,45 +14,111 @@ models | 13 | Source: ; ; false; NtReadFile; ; ; Argument[*5]; local; manual | | 14 | Source: ; ; false; ReadFile; ; ; Argument[*1]; local; manual | | 15 | Source: ; ; false; ReadFileEx; ; ; Argument[*1]; local; manual | -| 16 | Source: ; ; false; ymlSource; ; ; ReturnValue; local; manual | -| 17 | Source: boost::asio; ; false; read_until; ; ; Argument[*1]; remote; manual | -| 18 | Summary: ; ; false; CommandLineToArgvA; ; ; Argument[*0]; ReturnValue[**]; taint; manual | -| 19 | Summary: ; ; false; CreateRemoteThread; ; ; Argument[@4]; Argument[3].Parameter[@0]; value; manual | -| 20 | Summary: ; ; false; CreateRemoteThreadEx; ; ; Argument[@4]; Argument[3].Parameter[@0]; value; manual | -| 21 | Summary: ; ; false; CreateThread; ; ; Argument[@3]; Argument[2].Parameter[@0]; value; manual | -| 22 | Summary: ; ; false; ReadFileEx; ; ; Argument[*3].Field[@hEvent]; Argument[4].Parameter[*2].Field[@hEvent]; value; manual | -| 23 | Summary: ; ; false; RtlCopyDeviceMemory; ; ; Argument[*@1]; Argument[*@0]; value; manual | -| 24 | Summary: ; ; false; RtlCopyMemory; ; ; Argument[*@1]; Argument[*@0]; value; manual | -| 25 | Summary: ; ; false; RtlCopyMemoryNonTemporal; ; ; Argument[*@1]; Argument[*@0]; value; manual | -| 26 | Summary: ; ; false; RtlCopyUnicodeString; ; ; Argument[*1].Field[*Buffer]; Argument[*0].Field[*Buffer]; value; manual | -| 27 | Summary: ; ; false; RtlCopyVolatileMemory; ; ; Argument[*@1]; Argument[*@0]; value; manual | -| 28 | Summary: ; ; false; RtlInitUnicodeString; ; ; Argument[*1]; Argument[*0].Field[*Buffer]; value; manual | -| 29 | Summary: ; ; false; RtlMoveMemory; ; ; Argument[*@1]; Argument[*@0]; value; manual | -| 30 | Summary: ; ; false; RtlMoveVolatileMemory; ; ; Argument[*@1]; Argument[*@0]; value; manual | -| 31 | Summary: ; ; false; callWithArgument; ; ; Argument[1]; Argument[0].Parameter[0]; value; manual | -| 32 | Summary: ; ; false; callWithNonTypeTemplate; (const T &); ; Argument[*0]; ReturnValue; value; manual | -| 33 | Summary: ; ; false; pthread_create; ; ; Argument[@3]; Argument[2].Parameter[@0]; value; manual | -| 34 | Summary: ; ; false; ymlStepGenerated; ; ; Argument[0]; ReturnValue; taint; df-generated | -| 35 | Summary: ; ; false; ymlStepManual; ; ; Argument[0]; ReturnValue; taint; manual | -| 36 | Summary: ; ; false; ymlStepManual_with_body; ; ; Argument[0]; ReturnValue; taint; manual | -| 37 | Summary: boost::asio; ; false; buffer; ; ; Argument[*0]; ReturnValue; taint; manual | +| 16 | Source: ; ; false; WinHttpQueryHeaders; ; ; Argument[*3]; remote; manual | +| 17 | Source: ; ; false; WinHttpQueryHeadersEx; ; ; Argument[**8]; remote; manual | +| 18 | Source: ; ; false; WinHttpQueryHeadersEx; ; ; Argument[*5]; remote; manual | +| 19 | Source: ; ; false; WinHttpQueryHeadersEx; ; ; Argument[*6]; remote; manual | +| 20 | Source: ; ; false; WinHttpReadData; ; ; Argument[*1]; remote; manual | +| 21 | Source: ; ; false; WinHttpReadDataEx; ; ; Argument[*1]; remote; manual | +| 22 | Source: ; ; false; ymlSource; ; ; ReturnValue; local; manual | +| 23 | Source: Azure::Core::Http; RawResponse; true; ExtractBodyStream; ; ; ReturnValue[*]; remote; manual | +| 24 | Source: Azure::Core::Http; RawResponse; true; GetBody; ; ; ReturnValue[*]; remote; manual | +| 25 | Source: Azure::Core::Http; RawResponse; true; GetHeaders; ; ; ReturnValue[*]; remote; manual | +| 26 | Source: Azure::Core::Http; Request; true; GetBodyStream; ; ; ReturnValue[*]; remote; manual | +| 27 | Source: Azure::Core::Http; Request; true; GetHeader; ; ; ReturnValue; remote; manual | +| 28 | Source: Azure::Core::Http; Request; true; GetHeaders; ; ; ReturnValue; remote; manual | +| 29 | Source: boost::asio; ; false; read_until; ; ; Argument[*1]; remote; manual | +| 30 | Summary: ; ; false; CommandLineToArgvA; ; ; Argument[*0]; ReturnValue[**]; taint; manual | +| 31 | Summary: ; ; false; CreateRemoteThread; ; ; Argument[@4]; Argument[3].Parameter[@0]; value; manual | +| 32 | Summary: ; ; false; CreateRemoteThreadEx; ; ; Argument[@4]; Argument[3].Parameter[@0]; value; manual | +| 33 | Summary: ; ; false; CreateThread; ; ; Argument[@3]; Argument[2].Parameter[@0]; value; manual | +| 34 | Summary: ; ; false; ReadFileEx; ; ; Argument[*3].Field[@hEvent]; Argument[4].Parameter[*2].Field[@hEvent]; value; manual | +| 35 | Summary: ; ; false; RtlCopyDeviceMemory; ; ; Argument[*@1]; Argument[*@0]; value; manual | +| 36 | Summary: ; ; false; RtlCopyMemory; ; ; Argument[*@1]; Argument[*@0]; value; manual | +| 37 | Summary: ; ; false; RtlCopyMemoryNonTemporal; ; ; Argument[*@1]; Argument[*@0]; value; manual | +| 38 | Summary: ; ; false; RtlCopyUnicodeString; ; ; Argument[*1].Field[*Buffer]; Argument[*0].Field[*Buffer]; value; manual | +| 39 | Summary: ; ; false; RtlCopyVolatileMemory; ; ; Argument[*@1]; Argument[*@0]; value; manual | +| 40 | Summary: ; ; false; RtlInitUnicodeString; ; ; Argument[*1]; Argument[*0].Field[*Buffer]; value; manual | +| 41 | Summary: ; ; false; RtlMoveMemory; ; ; Argument[*@1]; Argument[*@0]; value; manual | +| 42 | Summary: ; ; false; RtlMoveVolatileMemory; ; ; Argument[*@1]; Argument[*@0]; value; manual | +| 43 | Summary: ; ; false; WinHttpCrackUrl; ; ; Argument[*0]; Argument[*3]; taint; manual | +| 44 | Summary: ; ; false; callWithArgument; ; ; Argument[1]; Argument[0].Parameter[0]; value; manual | +| 45 | Summary: ; ; false; callWithNonTypeTemplate; (const T &); ; Argument[*0]; ReturnValue; value; manual | +| 46 | Summary: ; ; false; pthread_create; ; ; Argument[@3]; Argument[2].Parameter[@0]; value; manual | +| 47 | Summary: ; ; false; ymlStepGenerated; ; ; Argument[0]; ReturnValue; taint; df-generated | +| 48 | Summary: ; ; false; ymlStepManual; ; ; Argument[0]; ReturnValue; taint; manual | +| 49 | Summary: ; ; false; ymlStepManual_with_body; ; ; Argument[0]; ReturnValue; taint; manual | +| 50 | Summary: Azure::Core::IO; BodyStream; true; Read; ; ; Argument[-1]; Argument[*0]; taint; manual | +| 51 | Summary: Azure::Core::IO; BodyStream; true; ReadToCount; ; ; Argument[-1]; Argument[*0]; taint; manual | +| 52 | Summary: Azure::Core::IO; BodyStream; true; ReadToEnd; ; ; Argument[-1]; ReturnValue.Element; taint; manual | +| 53 | Summary: Azure; Nullable; true; Value; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 54 | Summary: boost::asio; ; false; buffer; ; ; Argument[*0]; ReturnValue; taint; manual | edges -| asio_streams.cpp:56:18:56:23 | [summary param] *0 in buffer | asio_streams.cpp:56:18:56:23 | [summary] to write: ReturnValue in buffer | provenance | MaD:37 | -| asio_streams.cpp:87:34:87:44 | read_until output argument | asio_streams.cpp:91:7:91:17 | recv_buffer | provenance | Src:MaD:17 | -| asio_streams.cpp:87:34:87:44 | read_until output argument | asio_streams.cpp:93:29:93:39 | *recv_buffer | provenance | Src:MaD:17 Sink:MaD:2 | +| asio_streams.cpp:56:18:56:23 | [summary param] *0 in buffer | asio_streams.cpp:56:18:56:23 | [summary] to write: ReturnValue in buffer | provenance | MaD:54 | +| asio_streams.cpp:87:34:87:44 | read_until output argument | asio_streams.cpp:91:7:91:17 | recv_buffer | provenance | Src:MaD:29 | +| asio_streams.cpp:87:34:87:44 | read_until output argument | asio_streams.cpp:93:29:93:39 | *recv_buffer | provenance | Src:MaD:29 Sink:MaD:2 | | asio_streams.cpp:97:37:97:44 | call to source | asio_streams.cpp:98:7:98:14 | send_str | provenance | TaintFunction | | asio_streams.cpp:97:37:97:44 | call to source | asio_streams.cpp:100:64:100:71 | *send_str | provenance | TaintFunction | | asio_streams.cpp:100:44:100:62 | call to buffer | asio_streams.cpp:100:44:100:62 | call to buffer | provenance | | | asio_streams.cpp:100:44:100:62 | call to buffer | asio_streams.cpp:101:7:101:17 | send_buffer | provenance | | | asio_streams.cpp:100:44:100:62 | call to buffer | asio_streams.cpp:103:29:103:39 | *send_buffer | provenance | Sink:MaD:2 | | asio_streams.cpp:100:64:100:71 | *send_str | asio_streams.cpp:56:18:56:23 | [summary param] *0 in buffer | provenance | | -| asio_streams.cpp:100:64:100:71 | *send_str | asio_streams.cpp:100:44:100:62 | call to buffer | provenance | MaD:37 | -| test.cpp:4:5:4:17 | [summary param] 0 in ymlStepManual | test.cpp:4:5:4:17 | [summary] to write: ReturnValue in ymlStepManual | provenance | MaD:35 | -| test.cpp:5:5:5:20 | [summary param] 0 in ymlStepGenerated | test.cpp:5:5:5:20 | [summary] to write: ReturnValue in ymlStepGenerated | provenance | MaD:34 | -| test.cpp:6:5:6:27 | [summary param] 0 in ymlStepManual_with_body | test.cpp:6:5:6:27 | [summary] to write: ReturnValue in ymlStepManual_with_body | provenance | MaD:36 | +| asio_streams.cpp:100:64:100:71 | *send_str | asio_streams.cpp:100:44:100:62 | call to buffer | provenance | MaD:54 | +| azure.cpp:62:10:62:14 | [summary param] this in Value | azure.cpp:62:10:62:14 | [summary] to write: ReturnValue[*] in Value | provenance | MaD:53 | +| azure.cpp:113:16:113:19 | [summary param] this in Read | azure.cpp:113:16:113:19 | [summary param] *0 in Read [Return] | provenance | MaD:50 | +| azure.cpp:114:16:114:26 | [summary param] this in ReadToCount | azure.cpp:114:16:114:26 | [summary param] *0 in ReadToCount [Return] | provenance | MaD:51 | +| azure.cpp:115:30:115:38 | [summary param] this in ReadToEnd | azure.cpp:115:30:115:38 | [summary] to write: ReturnValue.Element in ReadToEnd | provenance | MaD:52 | +| azure.cpp:115:30:115:38 | [summary] to write: ReturnValue.Element in ReadToEnd | azure.cpp:115:30:115:38 | [summary] to write: ReturnValue in ReadToEnd [element] | provenance | | +| azure.cpp:253:48:253:60 | *call to GetBodyStream | azure.cpp:253:48:253:60 | *call to GetBodyStream | provenance | Src:MaD:26 | +| azure.cpp:253:48:253:60 | *call to GetBodyStream | azure.cpp:257:5:257:8 | *resp | provenance | | +| azure.cpp:253:48:253:60 | *call to GetBodyStream | azure.cpp:262:5:262:8 | *resp | provenance | | +| azure.cpp:253:48:253:60 | *call to GetBodyStream | azure.cpp:266:38:266:41 | *resp | provenance | | +| azure.cpp:257:5:257:8 | *resp | azure.cpp:113:16:113:19 | [summary param] this in Read | provenance | | +| azure.cpp:257:5:257:8 | *resp | azure.cpp:257:16:257:21 | Read output argument | provenance | MaD:50 | +| azure.cpp:257:16:257:21 | Read output argument | azure.cpp:258:10:258:16 | * ... | provenance | | +| azure.cpp:262:5:262:8 | *resp | azure.cpp:114:16:114:26 | [summary param] this in ReadToCount | provenance | | +| azure.cpp:262:5:262:8 | *resp | azure.cpp:262:23:262:28 | ReadToCount output argument | provenance | MaD:51 | +| azure.cpp:262:23:262:28 | ReadToCount output argument | azure.cpp:263:10:263:16 | * ... | provenance | | +| azure.cpp:266:38:266:41 | *resp | azure.cpp:115:30:115:38 | [summary param] this in ReadToEnd | provenance | | +| azure.cpp:266:38:266:41 | *resp | azure.cpp:266:44:266:52 | call to ReadToEnd [element] | provenance | MaD:52 | +| azure.cpp:266:44:266:52 | call to ReadToEnd [element] | azure.cpp:266:44:266:52 | call to ReadToEnd [element] | provenance | | +| azure.cpp:266:44:266:52 | call to ReadToEnd [element] | azure.cpp:267:10:267:12 | vec [element] | provenance | | +| azure.cpp:267:10:267:12 | vec [element] | azure.cpp:267:10:267:12 | vec | provenance | | +| azure.cpp:273:62:273:64 | call to GetHeaders | azure.cpp:273:62:273:64 | call to GetHeaders | provenance | Src:MaD:25 | +| azure.cpp:273:62:273:64 | call to GetHeaders | azure.cpp:274:14:274:29 | call to operator[] | provenance | TaintFunction | +| azure.cpp:273:62:273:64 | call to GetHeaders | azure.cpp:274:14:274:29 | call to operator[] | provenance | TaintFunction | +| azure.cpp:273:62:273:64 | call to GetHeaders | azure.cpp:274:14:274:29 | call to operator[] | provenance | TaintFunction | +| azure.cpp:274:14:274:29 | call to operator[] | azure.cpp:274:10:274:29 | call to operator[] | provenance | | +| azure.cpp:274:14:274:29 | call to operator[] | azure.cpp:274:14:274:29 | call to operator[] | provenance | | +| azure.cpp:277:45:277:47 | call to GetBody | azure.cpp:277:45:277:47 | call to GetBody | provenance | Src:MaD:24 | +| azure.cpp:277:45:277:47 | call to GetBody | azure.cpp:278:10:278:13 | body | provenance | | +| azure.cpp:277:45:277:47 | call to GetBody | azure.cpp:278:10:278:13 | body | provenance | | +| azure.cpp:278:10:278:13 | body | azure.cpp:278:10:278:13 | body | provenance | | +| azure.cpp:281:68:281:84 | *call to ExtractBodyStream | azure.cpp:281:68:281:84 | *call to ExtractBodyStream | provenance | Src:MaD:23 | +| azure.cpp:281:68:281:84 | *call to ExtractBodyStream | azure.cpp:282:21:282:23 | *call to get | provenance | | +| azure.cpp:282:21:282:23 | *call to get | azure.cpp:115:30:115:38 | [summary param] this in ReadToEnd | provenance | | +| azure.cpp:282:21:282:23 | *call to get | azure.cpp:282:28:282:36 | call to ReadToEnd [element] | provenance | MaD:52 | +| azure.cpp:282:28:282:36 | call to ReadToEnd [element] | azure.cpp:282:10:282:38 | call to ReadToEnd | provenance | | +| azure.cpp:282:28:282:36 | call to ReadToEnd [element] | azure.cpp:282:28:282:36 | call to ReadToEnd [element] | provenance | | +| azure.cpp:289:24:289:56 | call to GetHeader | azure.cpp:62:10:62:14 | [summary param] this in Value | provenance | | +| azure.cpp:289:24:289:56 | call to GetHeader | azure.cpp:289:63:289:65 | call to Value | provenance | MaD:53 | +| azure.cpp:289:32:289:40 | call to GetHeader | azure.cpp:289:24:289:56 | call to GetHeader | provenance | | +| azure.cpp:289:32:289:40 | call to GetHeader | azure.cpp:289:32:289:40 | call to GetHeader | provenance | Src:MaD:27 | +| azure.cpp:289:63:289:65 | call to Value | azure.cpp:289:63:289:65 | call to Value | provenance | | +| azure.cpp:289:63:289:65 | call to Value | azure.cpp:290:10:290:20 | headerValue | provenance | | +| azure.cpp:289:63:289:65 | call to Value | azure.cpp:290:10:290:20 | headerValue | provenance | | +| azure.cpp:290:10:290:20 | headerValue | azure.cpp:290:10:290:20 | headerValue | provenance | | +| azure.cpp:293:58:293:67 | call to GetHeaders | azure.cpp:293:58:293:67 | call to GetHeaders | provenance | Src:MaD:28 | +| azure.cpp:293:58:293:67 | call to GetHeaders | azure.cpp:294:38:294:53 | call to operator[] | provenance | TaintFunction | +| azure.cpp:294:38:294:53 | call to operator[] | azure.cpp:295:10:295:20 | contentType | provenance | | +| azure.cpp:294:38:294:53 | call to operator[] | azure.cpp:295:10:295:20 | contentType | provenance | | +| azure.cpp:295:10:295:20 | contentType | azure.cpp:295:10:295:20 | contentType | provenance | | +| test.cpp:4:5:4:17 | [summary param] 0 in ymlStepManual | test.cpp:4:5:4:17 | [summary] to write: ReturnValue in ymlStepManual | provenance | MaD:48 | +| test.cpp:5:5:5:20 | [summary param] 0 in ymlStepGenerated | test.cpp:5:5:5:20 | [summary] to write: ReturnValue in ymlStepGenerated | provenance | MaD:47 | +| test.cpp:6:5:6:27 | [summary param] 0 in ymlStepManual_with_body | test.cpp:6:5:6:27 | [summary] to write: ReturnValue in ymlStepManual_with_body | provenance | MaD:49 | | test.cpp:7:47:7:52 | value2 | test.cpp:7:64:7:69 | value2 | provenance | | | test.cpp:7:64:7:69 | value2 | test.cpp:7:5:7:30 | *ymlStepGenerated_with_body | provenance | | -| test.cpp:10:10:10:18 | call to ymlSource | test.cpp:10:10:10:18 | call to ymlSource | provenance | Src:MaD:16 | +| test.cpp:10:10:10:18 | call to ymlSource | test.cpp:10:10:10:18 | call to ymlSource | provenance | Src:MaD:22 | | test.cpp:10:10:10:18 | call to ymlSource | test.cpp:14:10:14:10 | x | provenance | Sink:MaD:1 | | test.cpp:10:10:10:18 | call to ymlSource | test.cpp:17:24:17:24 | x | provenance | | | test.cpp:10:10:10:18 | call to ymlSource | test.cpp:21:27:21:27 | x | provenance | | @@ -61,15 +127,15 @@ edges | test.cpp:17:10:17:22 | call to ymlStepManual | test.cpp:17:10:17:22 | call to ymlStepManual | provenance | | | test.cpp:17:10:17:22 | call to ymlStepManual | test.cpp:18:10:18:10 | y | provenance | Sink:MaD:1 | | test.cpp:17:24:17:24 | x | test.cpp:4:5:4:17 | [summary param] 0 in ymlStepManual | provenance | | -| test.cpp:17:24:17:24 | x | test.cpp:17:10:17:22 | call to ymlStepManual | provenance | MaD:35 | +| test.cpp:17:24:17:24 | x | test.cpp:17:10:17:22 | call to ymlStepManual | provenance | MaD:48 | | test.cpp:21:10:21:25 | call to ymlStepGenerated | test.cpp:21:10:21:25 | call to ymlStepGenerated | provenance | | | test.cpp:21:10:21:25 | call to ymlStepGenerated | test.cpp:22:10:22:10 | z | provenance | Sink:MaD:1 | | test.cpp:21:27:21:27 | x | test.cpp:5:5:5:20 | [summary param] 0 in ymlStepGenerated | provenance | | -| test.cpp:21:27:21:27 | x | test.cpp:21:10:21:25 | call to ymlStepGenerated | provenance | MaD:34 | +| test.cpp:21:27:21:27 | x | test.cpp:21:10:21:25 | call to ymlStepGenerated | provenance | MaD:47 | | test.cpp:25:11:25:33 | call to ymlStepManual_with_body | test.cpp:25:11:25:33 | call to ymlStepManual_with_body | provenance | | | test.cpp:25:11:25:33 | call to ymlStepManual_with_body | test.cpp:26:10:26:11 | y2 | provenance | Sink:MaD:1 | | test.cpp:25:35:25:35 | x | test.cpp:6:5:6:27 | [summary param] 0 in ymlStepManual_with_body | provenance | | -| test.cpp:25:35:25:35 | x | test.cpp:25:11:25:33 | call to ymlStepManual_with_body | provenance | MaD:36 | +| test.cpp:25:35:25:35 | x | test.cpp:25:11:25:33 | call to ymlStepManual_with_body | provenance | MaD:49 | | test.cpp:32:11:32:36 | call to ymlStepGenerated_with_body | test.cpp:32:11:32:36 | call to ymlStepGenerated_with_body | provenance | | | test.cpp:32:11:32:36 | call to ymlStepGenerated_with_body | test.cpp:33:10:33:11 | z2 | provenance | Sink:MaD:1 | | test.cpp:32:41:32:41 | x | test.cpp:7:47:7:52 | value2 | provenance | | @@ -77,16 +143,16 @@ edges | test.cpp:46:30:46:32 | *arg [x] | test.cpp:47:12:47:19 | *arg [x] | provenance | | | test.cpp:47:12:47:19 | *arg [x] | test.cpp:48:13:48:13 | *s [x] | provenance | | | test.cpp:48:13:48:13 | *s [x] | test.cpp:48:16:48:16 | x | provenance | Sink:MaD:1 | -| test.cpp:52:5:52:18 | [summary param] *3 in pthread_create [x] | test.cpp:52:5:52:18 | [summary] to write: Argument[2].Parameter[*0] in pthread_create [x] | provenance | MaD:33 | +| test.cpp:52:5:52:18 | [summary param] *3 in pthread_create [x] | test.cpp:52:5:52:18 | [summary] to write: Argument[2].Parameter[*0] in pthread_create [x] | provenance | MaD:46 | | test.cpp:52:5:52:18 | [summary] to write: Argument[2].Parameter[*0] in pthread_create [x] | test.cpp:46:30:46:32 | *arg [x] | provenance | | | test.cpp:56:2:56:2 | *s [post update] [x] | test.cpp:59:55:59:64 | *& ... [x] | provenance | | | test.cpp:56:2:56:18 | ... = ... | test.cpp:56:2:56:2 | *s [post update] [x] | provenance | | -| test.cpp:56:8:56:16 | call to ymlSource | test.cpp:56:2:56:18 | ... = ... | provenance | Src:MaD:16 | +| test.cpp:56:8:56:16 | call to ymlSource | test.cpp:56:2:56:18 | ... = ... | provenance | Src:MaD:22 | | test.cpp:59:55:59:64 | *& ... [x] | test.cpp:52:5:52:18 | [summary param] *3 in pthread_create [x] | provenance | | -| test.cpp:63:6:63:21 | [summary param] 1 in callWithArgument | test.cpp:63:6:63:21 | [summary] to write: Argument[0].Parameter[0] in callWithArgument | provenance | MaD:31 | -| test.cpp:63:6:63:21 | [summary param] 1 in callWithArgument | test.cpp:63:6:63:21 | [summary] to write: Argument[0].Parameter[0] in callWithArgument | provenance | MaD:31 | -| test.cpp:63:6:63:21 | [summary param] 1 in callWithArgument | test.cpp:63:6:63:21 | [summary] to write: Argument[0].Parameter[0] in callWithArgument | provenance | MaD:31 | -| test.cpp:63:6:63:21 | [summary param] 1 in callWithArgument | test.cpp:63:6:63:21 | [summary] to write: Argument[0].Parameter[0] in callWithArgument | provenance | MaD:31 | +| test.cpp:63:6:63:21 | [summary param] 1 in callWithArgument | test.cpp:63:6:63:21 | [summary] to write: Argument[0].Parameter[0] in callWithArgument | provenance | MaD:44 | +| test.cpp:63:6:63:21 | [summary param] 1 in callWithArgument | test.cpp:63:6:63:21 | [summary] to write: Argument[0].Parameter[0] in callWithArgument | provenance | MaD:44 | +| test.cpp:63:6:63:21 | [summary param] 1 in callWithArgument | test.cpp:63:6:63:21 | [summary] to write: Argument[0].Parameter[0] in callWithArgument | provenance | MaD:44 | +| test.cpp:63:6:63:21 | [summary param] 1 in callWithArgument | test.cpp:63:6:63:21 | [summary] to write: Argument[0].Parameter[0] in callWithArgument | provenance | MaD:44 | | test.cpp:63:6:63:21 | [summary] to write: Argument[0].Parameter[0] in callWithArgument | test.cpp:68:22:68:22 | y | provenance | | | test.cpp:63:6:63:21 | [summary] to write: Argument[0].Parameter[0] in callWithArgument | test.cpp:74:22:74:22 | y | provenance | | | test.cpp:63:6:63:21 | [summary] to write: Argument[0].Parameter[0] in callWithArgument | test.cpp:82:22:82:22 | y | provenance | | @@ -95,7 +161,7 @@ edges | test.cpp:74:22:74:22 | y | test.cpp:75:11:75:11 | y | provenance | Sink:MaD:1 | | test.cpp:82:22:82:22 | y | test.cpp:83:11:83:11 | y | provenance | Sink:MaD:1 | | test.cpp:88:22:88:22 | y | test.cpp:89:11:89:11 | y | provenance | Sink:MaD:1 | -| test.cpp:94:10:94:18 | call to ymlSource | test.cpp:94:10:94:18 | call to ymlSource | provenance | Src:MaD:16 | +| test.cpp:94:10:94:18 | call to ymlSource | test.cpp:94:10:94:18 | call to ymlSource | provenance | Src:MaD:22 | | test.cpp:94:10:94:18 | call to ymlSource | test.cpp:97:26:97:26 | x | provenance | | | test.cpp:94:10:94:18 | call to ymlSource | test.cpp:101:26:101:26 | x | provenance | | | test.cpp:94:10:94:18 | call to ymlSource | test.cpp:103:63:103:63 | x | provenance | | @@ -104,28 +170,28 @@ edges | test.cpp:101:26:101:26 | x | test.cpp:63:6:63:21 | [summary param] 1 in callWithArgument | provenance | | | test.cpp:103:63:103:63 | x | test.cpp:63:6:63:21 | [summary param] 1 in callWithArgument | provenance | | | test.cpp:104:62:104:62 | x | test.cpp:63:6:63:21 | [summary param] 1 in callWithArgument | provenance | | -| test.cpp:111:3:111:25 | [summary param] *0 in callWithNonTypeTemplate | test.cpp:111:3:111:25 | [summary] to write: ReturnValue in callWithNonTypeTemplate | provenance | MaD:32 | -| test.cpp:114:10:114:18 | call to ymlSource | test.cpp:114:10:114:18 | call to ymlSource | provenance | Src:MaD:16 | +| test.cpp:111:3:111:25 | [summary param] *0 in callWithNonTypeTemplate | test.cpp:111:3:111:25 | [summary] to write: ReturnValue in callWithNonTypeTemplate | provenance | MaD:45 | +| test.cpp:114:10:114:18 | call to ymlSource | test.cpp:114:10:114:18 | call to ymlSource | provenance | Src:MaD:22 | | test.cpp:114:10:114:18 | call to ymlSource | test.cpp:118:44:118:44 | *x | provenance | | | test.cpp:118:11:118:42 | call to callWithNonTypeTemplate | test.cpp:118:11:118:42 | call to callWithNonTypeTemplate | provenance | | | test.cpp:118:11:118:42 | call to callWithNonTypeTemplate | test.cpp:119:10:119:11 | y2 | provenance | Sink:MaD:1 | | test.cpp:118:44:118:44 | *x | test.cpp:111:3:111:25 | [summary param] *0 in callWithNonTypeTemplate | provenance | | -| test.cpp:118:44:118:44 | *x | test.cpp:118:11:118:42 | call to callWithNonTypeTemplate | provenance | MaD:32 | -| windows.cpp:17:8:17:25 | [summary param] *0 in CommandLineToArgvA | windows.cpp:17:8:17:25 | [summary] to write: ReturnValue[**] in CommandLineToArgvA | provenance | MaD:18 | +| test.cpp:118:44:118:44 | *x | test.cpp:118:11:118:42 | call to callWithNonTypeTemplate | provenance | MaD:45 | +| windows.cpp:17:8:17:25 | [summary param] *0 in CommandLineToArgvA | windows.cpp:17:8:17:25 | [summary] to write: ReturnValue[**] in CommandLineToArgvA | provenance | MaD:30 | | windows.cpp:22:15:22:29 | *call to GetCommandLineA | windows.cpp:22:15:22:29 | *call to GetCommandLineA | provenance | Src:MaD:3 | | windows.cpp:22:15:22:29 | *call to GetCommandLineA | windows.cpp:24:8:24:11 | * ... | provenance | | | windows.cpp:22:15:22:29 | *call to GetCommandLineA | windows.cpp:27:36:27:38 | *cmd | provenance | | | windows.cpp:27:17:27:34 | **call to CommandLineToArgvA | windows.cpp:27:17:27:34 | **call to CommandLineToArgvA | provenance | | | windows.cpp:27:17:27:34 | **call to CommandLineToArgvA | windows.cpp:30:8:30:15 | * ... | provenance | | | windows.cpp:27:36:27:38 | *cmd | windows.cpp:17:8:17:25 | [summary param] *0 in CommandLineToArgvA | provenance | | -| windows.cpp:27:36:27:38 | *cmd | windows.cpp:27:17:27:34 | **call to CommandLineToArgvA | provenance | MaD:18 | +| windows.cpp:27:36:27:38 | *cmd | windows.cpp:27:17:27:34 | **call to CommandLineToArgvA | provenance | MaD:30 | | windows.cpp:34:17:34:38 | *call to GetEnvironmentStringsA | windows.cpp:34:17:34:38 | *call to GetEnvironmentStringsA | provenance | Src:MaD:4 | | windows.cpp:34:17:34:38 | *call to GetEnvironmentStringsA | windows.cpp:36:10:36:13 | * ... | provenance | | | windows.cpp:39:36:39:38 | GetEnvironmentVariableA output argument | windows.cpp:41:10:41:13 | * ... | provenance | Src:MaD:5 | | windows.cpp:90:6:90:15 | [summary param] *3 in ReadFileEx [*hEvent] | windows.cpp:90:6:90:15 | [summary] read: Argument[*3].Field[*hEvent] in ReadFileEx | provenance | | | windows.cpp:90:6:90:15 | [summary param] *3 in ReadFileEx [hEvent] | windows.cpp:90:6:90:15 | [summary] read: Argument[*3].Field[hEvent] in ReadFileEx | provenance | | -| windows.cpp:90:6:90:15 | [summary] read: Argument[*3].Field[*hEvent] in ReadFileEx | windows.cpp:90:6:90:15 | [summary] to write: Argument[4].Parameter[*2].Field[*hEvent] in ReadFileEx | provenance | MaD:22 | -| windows.cpp:90:6:90:15 | [summary] read: Argument[*3].Field[hEvent] in ReadFileEx | windows.cpp:90:6:90:15 | [summary] to write: Argument[4].Parameter[*2].Field[hEvent] in ReadFileEx | provenance | MaD:22 | +| windows.cpp:90:6:90:15 | [summary] read: Argument[*3].Field[*hEvent] in ReadFileEx | windows.cpp:90:6:90:15 | [summary] to write: Argument[4].Parameter[*2].Field[*hEvent] in ReadFileEx | provenance | MaD:34 | +| windows.cpp:90:6:90:15 | [summary] read: Argument[*3].Field[hEvent] in ReadFileEx | windows.cpp:90:6:90:15 | [summary] to write: Argument[4].Parameter[*2].Field[hEvent] in ReadFileEx | provenance | MaD:34 | | windows.cpp:90:6:90:15 | [summary] to write: Argument[4].Parameter[*2] in ReadFileEx [*hEvent] | windows.cpp:147:16:147:27 | *lpOverlapped [*hEvent] | provenance | | | windows.cpp:90:6:90:15 | [summary] to write: Argument[4].Parameter[*2] in ReadFileEx [hEvent] | windows.cpp:157:16:157:27 | *lpOverlapped [hEvent] | provenance | | | windows.cpp:90:6:90:15 | [summary] to write: Argument[4].Parameter[*2].Field[*hEvent] in ReadFileEx | windows.cpp:90:6:90:15 | [summary] to write: Argument[4].Parameter[*2] in ReadFileEx [*hEvent] | provenance | | @@ -173,11 +239,11 @@ edges | windows.cpp:332:23:332:40 | *call to MapViewOfFileNuma2 | windows.cpp:332:23:332:40 | *call to MapViewOfFileNuma2 | provenance | Src:MaD:12 | | windows.cpp:332:23:332:40 | *call to MapViewOfFileNuma2 | windows.cpp:333:20:333:52 | *pMapView | provenance | | | windows.cpp:333:20:333:52 | *pMapView | windows.cpp:335:10:335:16 | * ... | provenance | | -| windows.cpp:349:8:349:19 | [summary param] *3 in CreateThread [x] | windows.cpp:349:8:349:19 | [summary] to write: Argument[2].Parameter[*0] in CreateThread [x] | provenance | MaD:21 | +| windows.cpp:349:8:349:19 | [summary param] *3 in CreateThread [x] | windows.cpp:349:8:349:19 | [summary] to write: Argument[2].Parameter[*0] in CreateThread [x] | provenance | MaD:33 | | windows.cpp:349:8:349:19 | [summary] to write: Argument[2].Parameter[*0] in CreateThread [x] | windows.cpp:403:26:403:36 | *lpParameter [x] | provenance | | -| windows.cpp:357:8:357:25 | [summary param] *4 in CreateRemoteThread [x] | windows.cpp:357:8:357:25 | [summary] to write: Argument[3].Parameter[*0] in CreateRemoteThread [x] | provenance | MaD:19 | +| windows.cpp:357:8:357:25 | [summary param] *4 in CreateRemoteThread [x] | windows.cpp:357:8:357:25 | [summary] to write: Argument[3].Parameter[*0] in CreateRemoteThread [x] | provenance | MaD:31 | | windows.cpp:357:8:357:25 | [summary] to write: Argument[3].Parameter[*0] in CreateRemoteThread [x] | windows.cpp:410:26:410:36 | *lpParameter [x] | provenance | | -| windows.cpp:387:8:387:27 | [summary param] *4 in CreateRemoteThreadEx [x] | windows.cpp:387:8:387:27 | [summary] to write: Argument[3].Parameter[*0] in CreateRemoteThreadEx [x] | provenance | MaD:20 | +| windows.cpp:387:8:387:27 | [summary param] *4 in CreateRemoteThreadEx [x] | windows.cpp:387:8:387:27 | [summary] to write: Argument[3].Parameter[*0] in CreateRemoteThreadEx [x] | provenance | MaD:32 | | windows.cpp:387:8:387:27 | [summary] to write: Argument[3].Parameter[*0] in CreateRemoteThreadEx [x] | windows.cpp:417:26:417:36 | *lpParameter [x] | provenance | | | windows.cpp:403:26:403:36 | *lpParameter [x] | windows.cpp:405:10:405:25 | *lpParameter [x] | provenance | | | windows.cpp:405:10:405:25 | *lpParameter [x] | windows.cpp:406:8:406:8 | *s [x] | provenance | | @@ -196,17 +262,17 @@ edges | windows.cpp:439:7:439:8 | *& ... [x] | windows.cpp:349:8:349:19 | [summary param] *3 in CreateThread [x] | provenance | | | windows.cpp:451:7:451:8 | *& ... [x] | windows.cpp:357:8:357:25 | [summary param] *4 in CreateRemoteThread [x] | provenance | | | windows.cpp:464:7:464:8 | *& ... [x] | windows.cpp:387:8:387:27 | [summary param] *4 in CreateRemoteThreadEx [x] | provenance | | -| windows.cpp:473:17:473:37 | [summary param] *1 in RtlCopyVolatileMemory | windows.cpp:473:17:473:37 | [summary param] *0 in RtlCopyVolatileMemory [Return] | provenance | MaD:27 | -| windows.cpp:479:17:479:35 | [summary param] *1 in RtlCopyDeviceMemory | windows.cpp:479:17:479:35 | [summary param] *0 in RtlCopyDeviceMemory [Return] | provenance | MaD:23 | -| windows.cpp:485:6:485:18 | [summary param] *1 in RtlCopyMemory | windows.cpp:485:6:485:18 | [summary param] *0 in RtlCopyMemory [Return] | provenance | MaD:24 | -| windows.cpp:493:6:493:29 | [summary param] *1 in RtlCopyMemoryNonTemporal | windows.cpp:493:6:493:29 | [summary param] *0 in RtlCopyMemoryNonTemporal [Return] | provenance | MaD:25 | +| windows.cpp:473:17:473:37 | [summary param] *1 in RtlCopyVolatileMemory | windows.cpp:473:17:473:37 | [summary param] *0 in RtlCopyVolatileMemory [Return] | provenance | MaD:39 | +| windows.cpp:479:17:479:35 | [summary param] *1 in RtlCopyDeviceMemory | windows.cpp:479:17:479:35 | [summary param] *0 in RtlCopyDeviceMemory [Return] | provenance | MaD:35 | +| windows.cpp:485:6:485:18 | [summary param] *1 in RtlCopyMemory | windows.cpp:485:6:485:18 | [summary param] *0 in RtlCopyMemory [Return] | provenance | MaD:36 | +| windows.cpp:493:6:493:29 | [summary param] *1 in RtlCopyMemoryNonTemporal | windows.cpp:493:6:493:29 | [summary param] *0 in RtlCopyMemoryNonTemporal [Return] | provenance | MaD:37 | | windows.cpp:510:6:510:25 | [summary param] *1 in RtlCopyUnicodeString [*Buffer] | windows.cpp:510:6:510:25 | [summary] read: Argument[*1].Field[*Buffer] in RtlCopyUnicodeString | provenance | | -| windows.cpp:510:6:510:25 | [summary] read: Argument[*1].Field[*Buffer] in RtlCopyUnicodeString | windows.cpp:510:6:510:25 | [summary] to write: Argument[*0].Field[*Buffer] in RtlCopyUnicodeString | provenance | MaD:26 | +| windows.cpp:510:6:510:25 | [summary] read: Argument[*1].Field[*Buffer] in RtlCopyUnicodeString | windows.cpp:510:6:510:25 | [summary] to write: Argument[*0].Field[*Buffer] in RtlCopyUnicodeString | provenance | MaD:38 | | windows.cpp:510:6:510:25 | [summary] to write: Argument[*0] in RtlCopyUnicodeString [*Buffer] | windows.cpp:510:6:510:25 | [summary param] *0 in RtlCopyUnicodeString [Return] [*Buffer] | provenance | | | windows.cpp:510:6:510:25 | [summary] to write: Argument[*0].Field[*Buffer] in RtlCopyUnicodeString | windows.cpp:510:6:510:25 | [summary] to write: Argument[*0] in RtlCopyUnicodeString [*Buffer] | provenance | | -| windows.cpp:515:6:515:18 | [summary param] *1 in RtlMoveMemory | windows.cpp:515:6:515:18 | [summary param] *0 in RtlMoveMemory [Return] | provenance | MaD:29 | -| windows.cpp:521:17:521:37 | [summary param] *1 in RtlMoveVolatileMemory | windows.cpp:521:17:521:37 | [summary param] *0 in RtlMoveVolatileMemory [Return] | provenance | MaD:30 | -| windows.cpp:527:6:527:25 | [summary param] *1 in RtlInitUnicodeString | windows.cpp:527:6:527:25 | [summary] to write: Argument[*0].Field[*Buffer] in RtlInitUnicodeString | provenance | MaD:28 | +| windows.cpp:515:6:515:18 | [summary param] *1 in RtlMoveMemory | windows.cpp:515:6:515:18 | [summary param] *0 in RtlMoveMemory [Return] | provenance | MaD:41 | +| windows.cpp:521:17:521:37 | [summary param] *1 in RtlMoveVolatileMemory | windows.cpp:521:17:521:37 | [summary param] *0 in RtlMoveVolatileMemory [Return] | provenance | MaD:42 | +| windows.cpp:527:6:527:25 | [summary param] *1 in RtlInitUnicodeString | windows.cpp:527:6:527:25 | [summary] to write: Argument[*0].Field[*Buffer] in RtlInitUnicodeString | provenance | MaD:40 | | windows.cpp:527:6:527:25 | [summary] to write: Argument[*0] in RtlInitUnicodeString [*Buffer] | windows.cpp:527:6:527:25 | [summary param] *0 in RtlInitUnicodeString [Return] [*Buffer] | provenance | | | windows.cpp:527:6:527:25 | [summary] to write: Argument[*0].Field[*Buffer] in RtlInitUnicodeString | windows.cpp:527:6:527:25 | [summary] to write: Argument[*0] in RtlInitUnicodeString [*Buffer] | provenance | | | windows.cpp:533:11:533:16 | call to source | windows.cpp:533:11:533:16 | call to source | provenance | | @@ -218,37 +284,51 @@ edges | windows.cpp:533:11:533:16 | call to source | windows.cpp:573:40:573:41 | *& ... | provenance | | | windows.cpp:537:27:537:37 | RtlCopyVolatileMemory output argument | windows.cpp:538:10:538:23 | access to array | provenance | | | windows.cpp:537:40:537:41 | *& ... | windows.cpp:473:17:473:37 | [summary param] *1 in RtlCopyVolatileMemory | provenance | | -| windows.cpp:537:40:537:41 | *& ... | windows.cpp:537:27:537:37 | RtlCopyVolatileMemory output argument | provenance | MaD:27 | +| windows.cpp:537:40:537:41 | *& ... | windows.cpp:537:27:537:37 | RtlCopyVolatileMemory output argument | provenance | MaD:39 | | windows.cpp:542:25:542:35 | RtlCopyDeviceMemory output argument | windows.cpp:543:10:543:23 | access to array | provenance | | | windows.cpp:542:38:542:39 | *& ... | windows.cpp:479:17:479:35 | [summary param] *1 in RtlCopyDeviceMemory | provenance | | -| windows.cpp:542:38:542:39 | *& ... | windows.cpp:542:25:542:35 | RtlCopyDeviceMemory output argument | provenance | MaD:23 | +| windows.cpp:542:38:542:39 | *& ... | windows.cpp:542:25:542:35 | RtlCopyDeviceMemory output argument | provenance | MaD:35 | | windows.cpp:547:19:547:29 | RtlCopyMemory output argument | windows.cpp:548:10:548:23 | access to array | provenance | | | windows.cpp:547:32:547:33 | *& ... | windows.cpp:485:6:485:18 | [summary param] *1 in RtlCopyMemory | provenance | | -| windows.cpp:547:32:547:33 | *& ... | windows.cpp:547:19:547:29 | RtlCopyMemory output argument | provenance | MaD:24 | +| windows.cpp:547:32:547:33 | *& ... | windows.cpp:547:19:547:29 | RtlCopyMemory output argument | provenance | MaD:36 | | windows.cpp:552:30:552:40 | RtlCopyMemoryNonTemporal output argument | windows.cpp:553:10:553:23 | access to array | provenance | | | windows.cpp:552:43:552:44 | *& ... | windows.cpp:493:6:493:29 | [summary param] *1 in RtlCopyMemoryNonTemporal | provenance | | -| windows.cpp:552:43:552:44 | *& ... | windows.cpp:552:30:552:40 | RtlCopyMemoryNonTemporal output argument | provenance | MaD:25 | +| windows.cpp:552:43:552:44 | *& ... | windows.cpp:552:30:552:40 | RtlCopyMemoryNonTemporal output argument | provenance | MaD:37 | | windows.cpp:559:5:559:24 | ... = ... | windows.cpp:561:39:561:44 | *buffer | provenance | | | windows.cpp:559:17:559:24 | call to source | windows.cpp:559:5:559:24 | ... = ... | provenance | | | windows.cpp:561:26:561:36 | RtlInitUnicodeString output argument [*Buffer] | windows.cpp:562:10:562:19 | *src_string [*Buffer] | provenance | | | windows.cpp:561:26:561:36 | RtlInitUnicodeString output argument [*Buffer] | windows.cpp:563:40:563:50 | *& ... [*Buffer] | provenance | | | windows.cpp:561:39:561:44 | *buffer | windows.cpp:527:6:527:25 | [summary param] *1 in RtlInitUnicodeString | provenance | | -| windows.cpp:561:39:561:44 | *buffer | windows.cpp:561:26:561:36 | RtlInitUnicodeString output argument [*Buffer] | provenance | MaD:28 | +| windows.cpp:561:39:561:44 | *buffer | windows.cpp:561:26:561:36 | RtlInitUnicodeString output argument [*Buffer] | provenance | MaD:40 | | windows.cpp:562:10:562:19 | *src_string [*Buffer] | windows.cpp:562:10:562:29 | access to array | provenance | | | windows.cpp:562:10:562:19 | *src_string [*Buffer] | windows.cpp:562:21:562:26 | *Buffer | provenance | | | windows.cpp:562:21:562:26 | *Buffer | windows.cpp:562:10:562:29 | access to array | provenance | | | windows.cpp:563:26:563:37 | RtlCopyUnicodeString output argument [*Buffer] | windows.cpp:564:10:564:20 | *dest_string [*Buffer] | provenance | | | windows.cpp:563:40:563:50 | *& ... [*Buffer] | windows.cpp:510:6:510:25 | [summary param] *1 in RtlCopyUnicodeString [*Buffer] | provenance | | -| windows.cpp:563:40:563:50 | *& ... [*Buffer] | windows.cpp:563:26:563:37 | RtlCopyUnicodeString output argument [*Buffer] | provenance | MaD:26 | +| windows.cpp:563:40:563:50 | *& ... [*Buffer] | windows.cpp:563:26:563:37 | RtlCopyUnicodeString output argument [*Buffer] | provenance | MaD:38 | | windows.cpp:564:10:564:20 | *dest_string [*Buffer] | windows.cpp:564:10:564:30 | access to array | provenance | | | windows.cpp:564:10:564:20 | *dest_string [*Buffer] | windows.cpp:564:22:564:27 | *Buffer | provenance | | | windows.cpp:564:22:564:27 | *Buffer | windows.cpp:564:10:564:30 | access to array | provenance | | | windows.cpp:568:19:568:29 | RtlMoveMemory output argument | windows.cpp:569:10:569:23 | access to array | provenance | | | windows.cpp:568:32:568:33 | *& ... | windows.cpp:515:6:515:18 | [summary param] *1 in RtlMoveMemory | provenance | | -| windows.cpp:568:32:568:33 | *& ... | windows.cpp:568:19:568:29 | RtlMoveMemory output argument | provenance | MaD:29 | +| windows.cpp:568:32:568:33 | *& ... | windows.cpp:568:19:568:29 | RtlMoveMemory output argument | provenance | MaD:41 | | windows.cpp:573:27:573:37 | RtlMoveVolatileMemory output argument | windows.cpp:574:10:574:23 | access to array | provenance | | | windows.cpp:573:40:573:41 | *& ... | windows.cpp:521:17:521:37 | [summary param] *1 in RtlMoveVolatileMemory | provenance | | -| windows.cpp:573:40:573:41 | *& ... | windows.cpp:573:27:573:37 | RtlMoveVolatileMemory output argument | provenance | MaD:30 | +| windows.cpp:573:40:573:41 | *& ... | windows.cpp:573:27:573:37 | RtlMoveVolatileMemory output argument | provenance | MaD:42 | +| windows.cpp:645:45:645:50 | WinHttpReadData output argument | windows.cpp:647:10:647:16 | * ... | provenance | Src:MaD:20 | +| windows.cpp:652:48:652:53 | WinHttpReadDataEx output argument | windows.cpp:654:10:654:16 | * ... | provenance | Src:MaD:21 | +| windows.cpp:659:47:659:52 | WinHttpQueryHeaders output argument | windows.cpp:661:10:661:16 | * ... | provenance | Src:MaD:16 | +| windows.cpp:669:70:669:79 | WinHttpQueryHeadersEx output argument | windows.cpp:673:10:673:29 | * ... | provenance | Src:MaD:18 | +| windows.cpp:669:82:669:87 | WinHttpQueryHeadersEx output argument | windows.cpp:671:10:671:16 | * ... | provenance | Src:MaD:19 | +| windows.cpp:669:105:669:112 | WinHttpQueryHeadersEx output argument | windows.cpp:675:10:675:27 | * ... | provenance | Src:MaD:17 | +| windows.cpp:714:6:714:20 | [summary param] *0 in WinHttpCrackUrl | windows.cpp:714:6:714:20 | [summary param] *3 in WinHttpCrackUrl [Return] | provenance | MaD:43 | +| windows.cpp:728:5:728:28 | ... = ... | windows.cpp:729:35:729:35 | *x | provenance | | +| windows.cpp:728:12:728:28 | call to source | windows.cpp:728:5:728:28 | ... = ... | provenance | | +| windows.cpp:729:35:729:35 | *x | windows.cpp:714:6:714:20 | [summary param] *0 in WinHttpCrackUrl | provenance | | +| windows.cpp:729:35:729:35 | *x | windows.cpp:729:44:729:57 | WinHttpCrackUrl output argument | provenance | MaD:43 | +| windows.cpp:729:44:729:57 | WinHttpCrackUrl output argument | windows.cpp:731:10:731:36 | * ... | provenance | | +| windows.cpp:729:44:729:57 | WinHttpCrackUrl output argument | windows.cpp:733:10:733:35 | * ... | provenance | | +| windows.cpp:729:44:729:57 | WinHttpCrackUrl output argument | windows.cpp:735:10:735:37 | * ... | provenance | | nodes | asio_streams.cpp:56:18:56:23 | [summary param] *0 in buffer | semmle.label | [summary param] *0 in buffer | | asio_streams.cpp:56:18:56:23 | [summary] to write: ReturnValue in buffer | semmle.label | [summary] to write: ReturnValue in buffer | @@ -262,6 +342,59 @@ nodes | asio_streams.cpp:100:64:100:71 | *send_str | semmle.label | *send_str | | asio_streams.cpp:101:7:101:17 | send_buffer | semmle.label | send_buffer | | asio_streams.cpp:103:29:103:39 | *send_buffer | semmle.label | *send_buffer | +| azure.cpp:62:10:62:14 | [summary param] this in Value | semmle.label | [summary param] this in Value | +| azure.cpp:62:10:62:14 | [summary] to write: ReturnValue[*] in Value | semmle.label | [summary] to write: ReturnValue[*] in Value | +| azure.cpp:113:16:113:19 | [summary param] *0 in Read [Return] | semmle.label | [summary param] *0 in Read [Return] | +| azure.cpp:113:16:113:19 | [summary param] this in Read | semmle.label | [summary param] this in Read | +| azure.cpp:114:16:114:26 | [summary param] *0 in ReadToCount [Return] | semmle.label | [summary param] *0 in ReadToCount [Return] | +| azure.cpp:114:16:114:26 | [summary param] this in ReadToCount | semmle.label | [summary param] this in ReadToCount | +| azure.cpp:115:30:115:38 | [summary param] this in ReadToEnd | semmle.label | [summary param] this in ReadToEnd | +| azure.cpp:115:30:115:38 | [summary] to write: ReturnValue in ReadToEnd [element] | semmle.label | [summary] to write: ReturnValue in ReadToEnd [element] | +| azure.cpp:115:30:115:38 | [summary] to write: ReturnValue.Element in ReadToEnd | semmle.label | [summary] to write: ReturnValue.Element in ReadToEnd | +| azure.cpp:253:48:253:60 | *call to GetBodyStream | semmle.label | *call to GetBodyStream | +| azure.cpp:253:48:253:60 | *call to GetBodyStream | semmle.label | *call to GetBodyStream | +| azure.cpp:257:5:257:8 | *resp | semmle.label | *resp | +| azure.cpp:257:16:257:21 | Read output argument | semmle.label | Read output argument | +| azure.cpp:258:10:258:16 | * ... | semmle.label | * ... | +| azure.cpp:262:5:262:8 | *resp | semmle.label | *resp | +| azure.cpp:262:23:262:28 | ReadToCount output argument | semmle.label | ReadToCount output argument | +| azure.cpp:263:10:263:16 | * ... | semmle.label | * ... | +| azure.cpp:266:38:266:41 | *resp | semmle.label | *resp | +| azure.cpp:266:44:266:52 | call to ReadToEnd [element] | semmle.label | call to ReadToEnd [element] | +| azure.cpp:266:44:266:52 | call to ReadToEnd [element] | semmle.label | call to ReadToEnd [element] | +| azure.cpp:267:10:267:12 | vec | semmle.label | vec | +| azure.cpp:267:10:267:12 | vec [element] | semmle.label | vec [element] | +| azure.cpp:273:62:273:64 | call to GetHeaders | semmle.label | call to GetHeaders | +| azure.cpp:273:62:273:64 | call to GetHeaders | semmle.label | call to GetHeaders | +| azure.cpp:274:10:274:29 | call to operator[] | semmle.label | call to operator[] | +| azure.cpp:274:14:274:29 | call to operator[] | semmle.label | call to operator[] | +| azure.cpp:274:14:274:29 | call to operator[] | semmle.label | call to operator[] | +| azure.cpp:274:14:274:29 | call to operator[] | semmle.label | call to operator[] | +| azure.cpp:277:45:277:47 | call to GetBody | semmle.label | call to GetBody | +| azure.cpp:277:45:277:47 | call to GetBody | semmle.label | call to GetBody | +| azure.cpp:278:10:278:13 | body | semmle.label | body | +| azure.cpp:278:10:278:13 | body | semmle.label | body | +| azure.cpp:278:10:278:13 | body | semmle.label | body | +| azure.cpp:281:68:281:84 | *call to ExtractBodyStream | semmle.label | *call to ExtractBodyStream | +| azure.cpp:281:68:281:84 | *call to ExtractBodyStream | semmle.label | *call to ExtractBodyStream | +| azure.cpp:282:10:282:38 | call to ReadToEnd | semmle.label | call to ReadToEnd | +| azure.cpp:282:21:282:23 | *call to get | semmle.label | *call to get | +| azure.cpp:282:28:282:36 | call to ReadToEnd [element] | semmle.label | call to ReadToEnd [element] | +| azure.cpp:282:28:282:36 | call to ReadToEnd [element] | semmle.label | call to ReadToEnd [element] | +| azure.cpp:289:24:289:56 | call to GetHeader | semmle.label | call to GetHeader | +| azure.cpp:289:32:289:40 | call to GetHeader | semmle.label | call to GetHeader | +| azure.cpp:289:32:289:40 | call to GetHeader | semmle.label | call to GetHeader | +| azure.cpp:289:63:289:65 | call to Value | semmle.label | call to Value | +| azure.cpp:289:63:289:65 | call to Value | semmle.label | call to Value | +| azure.cpp:290:10:290:20 | headerValue | semmle.label | headerValue | +| azure.cpp:290:10:290:20 | headerValue | semmle.label | headerValue | +| azure.cpp:290:10:290:20 | headerValue | semmle.label | headerValue | +| azure.cpp:293:58:293:67 | call to GetHeaders | semmle.label | call to GetHeaders | +| azure.cpp:293:58:293:67 | call to GetHeaders | semmle.label | call to GetHeaders | +| azure.cpp:294:38:294:53 | call to operator[] | semmle.label | call to operator[] | +| azure.cpp:295:10:295:20 | contentType | semmle.label | contentType | +| azure.cpp:295:10:295:20 | contentType | semmle.label | contentType | +| azure.cpp:295:10:295:20 | contentType | semmle.label | contentType | | test.cpp:4:5:4:17 | [summary param] 0 in ymlStepManual | semmle.label | [summary param] 0 in ymlStepManual | | test.cpp:4:5:4:17 | [summary] to write: ReturnValue in ymlStepManual | semmle.label | [summary] to write: ReturnValue in ymlStepManual | | test.cpp:5:5:5:20 | [summary param] 0 in ymlStepGenerated | semmle.label | [summary param] 0 in ymlStepGenerated | @@ -482,8 +615,34 @@ nodes | windows.cpp:573:27:573:37 | RtlMoveVolatileMemory output argument | semmle.label | RtlMoveVolatileMemory output argument | | windows.cpp:573:40:573:41 | *& ... | semmle.label | *& ... | | windows.cpp:574:10:574:23 | access to array | semmle.label | access to array | +| windows.cpp:645:45:645:50 | WinHttpReadData output argument | semmle.label | WinHttpReadData output argument | +| windows.cpp:647:10:647:16 | * ... | semmle.label | * ... | +| windows.cpp:652:48:652:53 | WinHttpReadDataEx output argument | semmle.label | WinHttpReadDataEx output argument | +| windows.cpp:654:10:654:16 | * ... | semmle.label | * ... | +| windows.cpp:659:47:659:52 | WinHttpQueryHeaders output argument | semmle.label | WinHttpQueryHeaders output argument | +| windows.cpp:661:10:661:16 | * ... | semmle.label | * ... | +| windows.cpp:669:70:669:79 | WinHttpQueryHeadersEx output argument | semmle.label | WinHttpQueryHeadersEx output argument | +| windows.cpp:669:82:669:87 | WinHttpQueryHeadersEx output argument | semmle.label | WinHttpQueryHeadersEx output argument | +| windows.cpp:669:105:669:112 | WinHttpQueryHeadersEx output argument | semmle.label | WinHttpQueryHeadersEx output argument | +| windows.cpp:671:10:671:16 | * ... | semmle.label | * ... | +| windows.cpp:673:10:673:29 | * ... | semmle.label | * ... | +| windows.cpp:675:10:675:27 | * ... | semmle.label | * ... | +| windows.cpp:714:6:714:20 | [summary param] *0 in WinHttpCrackUrl | semmle.label | [summary param] *0 in WinHttpCrackUrl | +| windows.cpp:714:6:714:20 | [summary param] *3 in WinHttpCrackUrl [Return] | semmle.label | [summary param] *3 in WinHttpCrackUrl [Return] | +| windows.cpp:728:5:728:28 | ... = ... | semmle.label | ... = ... | +| windows.cpp:728:12:728:28 | call to source | semmle.label | call to source | +| windows.cpp:729:35:729:35 | *x | semmle.label | *x | +| windows.cpp:729:44:729:57 | WinHttpCrackUrl output argument | semmle.label | WinHttpCrackUrl output argument | +| windows.cpp:731:10:731:36 | * ... | semmle.label | * ... | +| windows.cpp:733:10:733:35 | * ... | semmle.label | * ... | +| windows.cpp:735:10:735:37 | * ... | semmle.label | * ... | subpaths | asio_streams.cpp:100:64:100:71 | *send_str | asio_streams.cpp:56:18:56:23 | [summary param] *0 in buffer | asio_streams.cpp:56:18:56:23 | [summary] to write: ReturnValue in buffer | asio_streams.cpp:100:44:100:62 | call to buffer | +| azure.cpp:257:5:257:8 | *resp | azure.cpp:113:16:113:19 | [summary param] this in Read | azure.cpp:113:16:113:19 | [summary param] *0 in Read [Return] | azure.cpp:257:16:257:21 | Read output argument | +| azure.cpp:262:5:262:8 | *resp | azure.cpp:114:16:114:26 | [summary param] this in ReadToCount | azure.cpp:114:16:114:26 | [summary param] *0 in ReadToCount [Return] | azure.cpp:262:23:262:28 | ReadToCount output argument | +| azure.cpp:266:38:266:41 | *resp | azure.cpp:115:30:115:38 | [summary param] this in ReadToEnd | azure.cpp:115:30:115:38 | [summary] to write: ReturnValue in ReadToEnd [element] | azure.cpp:266:44:266:52 | call to ReadToEnd [element] | +| azure.cpp:282:21:282:23 | *call to get | azure.cpp:115:30:115:38 | [summary param] this in ReadToEnd | azure.cpp:115:30:115:38 | [summary] to write: ReturnValue in ReadToEnd [element] | azure.cpp:282:28:282:36 | call to ReadToEnd [element] | +| azure.cpp:289:24:289:56 | call to GetHeader | azure.cpp:62:10:62:14 | [summary param] this in Value | azure.cpp:62:10:62:14 | [summary] to write: ReturnValue[*] in Value | azure.cpp:289:63:289:65 | call to Value | | test.cpp:17:24:17:24 | x | test.cpp:4:5:4:17 | [summary param] 0 in ymlStepManual | test.cpp:4:5:4:17 | [summary] to write: ReturnValue in ymlStepManual | test.cpp:17:10:17:22 | call to ymlStepManual | | test.cpp:21:27:21:27 | x | test.cpp:5:5:5:20 | [summary param] 0 in ymlStepGenerated | test.cpp:5:5:5:20 | [summary] to write: ReturnValue in ymlStepGenerated | test.cpp:21:10:21:25 | call to ymlStepGenerated | | test.cpp:25:35:25:35 | x | test.cpp:6:5:6:27 | [summary param] 0 in ymlStepManual_with_body | test.cpp:6:5:6:27 | [summary] to write: ReturnValue in ymlStepManual_with_body | test.cpp:25:11:25:33 | call to ymlStepManual_with_body | @@ -498,4 +657,5 @@ subpaths | windows.cpp:563:40:563:50 | *& ... [*Buffer] | windows.cpp:510:6:510:25 | [summary param] *1 in RtlCopyUnicodeString [*Buffer] | windows.cpp:510:6:510:25 | [summary param] *0 in RtlCopyUnicodeString [Return] [*Buffer] | windows.cpp:563:26:563:37 | RtlCopyUnicodeString output argument [*Buffer] | | windows.cpp:568:32:568:33 | *& ... | windows.cpp:515:6:515:18 | [summary param] *1 in RtlMoveMemory | windows.cpp:515:6:515:18 | [summary param] *0 in RtlMoveMemory [Return] | windows.cpp:568:19:568:29 | RtlMoveMemory output argument | | windows.cpp:573:40:573:41 | *& ... | windows.cpp:521:17:521:37 | [summary param] *1 in RtlMoveVolatileMemory | windows.cpp:521:17:521:37 | [summary param] *0 in RtlMoveVolatileMemory [Return] | windows.cpp:573:27:573:37 | RtlMoveVolatileMemory output argument | +| windows.cpp:729:35:729:35 | *x | windows.cpp:714:6:714:20 | [summary param] *0 in WinHttpCrackUrl | windows.cpp:714:6:714:20 | [summary param] *3 in WinHttpCrackUrl [Return] | windows.cpp:729:44:729:57 | WinHttpCrackUrl output argument | testFailures diff --git a/cpp/ql/test/library-tests/dataflow/external-models/sources.expected b/cpp/ql/test/library-tests/dataflow/external-models/sources.expected index cb7e06b801d0..c683d8539a07 100644 --- a/cpp/ql/test/library-tests/dataflow/external-models/sources.expected +++ b/cpp/ql/test/library-tests/dataflow/external-models/sources.expected @@ -1,4 +1,10 @@ | asio_streams.cpp:87:34:87:44 | read_until output argument | remote | +| azure.cpp:253:48:253:60 | *call to GetBodyStream | remote | +| azure.cpp:273:62:273:64 | call to GetHeaders | remote | +| azure.cpp:277:45:277:47 | call to GetBody | remote | +| azure.cpp:281:68:281:84 | *call to ExtractBodyStream | remote | +| azure.cpp:289:32:289:40 | call to GetHeader | remote | +| azure.cpp:293:58:293:67 | call to GetHeaders | remote | | test.cpp:10:10:10:18 | call to ymlSource | local | | test.cpp:56:8:56:16 | call to ymlSource | local | | test.cpp:94:10:94:18 | call to ymlSource | local | @@ -20,3 +26,9 @@ | windows.cpp:318:23:318:37 | *call to MapViewOfFileEx | local | | windows.cpp:325:23:325:42 | *call to MapViewOfFileFromApp | local | | windows.cpp:332:23:332:40 | *call to MapViewOfFileNuma2 | local | +| windows.cpp:645:45:645:50 | WinHttpReadData output argument | remote | +| windows.cpp:652:48:652:53 | WinHttpReadDataEx output argument | remote | +| windows.cpp:659:47:659:52 | WinHttpQueryHeaders output argument | remote | +| windows.cpp:669:70:669:79 | WinHttpQueryHeadersEx output argument | remote | +| windows.cpp:669:82:669:87 | WinHttpQueryHeadersEx output argument | remote | +| windows.cpp:669:105:669:112 | WinHttpQueryHeadersEx output argument | remote | diff --git a/cpp/ql/test/library-tests/dataflow/external-models/steps.expected b/cpp/ql/test/library-tests/dataflow/external-models/steps.expected index ce5dd687caf9..61b05459ade1 100644 --- a/cpp/ql/test/library-tests/dataflow/external-models/steps.expected +++ b/cpp/ql/test/library-tests/dataflow/external-models/steps.expected @@ -1,8 +1,12 @@ | asio_streams.cpp:100:64:100:71 | *send_str | asio_streams.cpp:100:44:100:62 | call to buffer | +| azure.cpp:252:79:252:98 | call to string | azure.cpp:252:62:252:99 | call to Url | +| azure.cpp:257:5:257:8 | *resp | azure.cpp:257:16:257:21 | Read output argument | +| azure.cpp:262:5:262:8 | *resp | azure.cpp:262:23:262:28 | ReadToCount output argument | +| azure.cpp:287:79:287:98 | call to string | azure.cpp:287:62:287:99 | call to Url | +| azure.cpp:289:24:289:56 | call to GetHeader | azure.cpp:289:63:289:65 | call to Value | | test.cpp:17:24:17:24 | x | test.cpp:17:10:17:22 | call to ymlStepManual | | test.cpp:21:27:21:27 | x | test.cpp:21:10:21:25 | call to ymlStepGenerated | | test.cpp:25:35:25:35 | x | test.cpp:25:11:25:33 | call to ymlStepManual_with_body | | test.cpp:28:35:28:35 | 0 | test.cpp:28:11:28:33 | call to ymlStepManual_with_body | -| test.cpp:32:38:32:38 | 0 | test.cpp:32:11:32:36 | call to ymlStepGenerated_with_body | -| test.cpp:35:38:35:38 | x | test.cpp:35:11:35:36 | call to ymlStepGenerated_with_body | | windows.cpp:27:36:27:38 | *cmd | windows.cpp:27:17:27:34 | **call to CommandLineToArgvA | +| windows.cpp:729:35:729:35 | *x | windows.cpp:729:44:729:57 | WinHttpCrackUrl output argument | diff --git a/cpp/ql/test/library-tests/dataflow/external-models/validatemodels.expected b/cpp/ql/test/library-tests/dataflow/external-models/validatemodels.expected index 1b74b290eb39..15ae50bddc26 100644 --- a/cpp/ql/test/library-tests/dataflow/external-models/validatemodels.expected +++ b/cpp/ql/test/library-tests/dataflow/external-models/validatemodels.expected @@ -5586,3 +5586,6 @@ | Unrecognized output specification "Field[***hEvent]" in summary model. | | Unrecognized output specification "Parameter[***0]" in summary model. | | Unrecognized output specification "Parameter[****0]" in summary model. | +| Unrecognized output specification "ReturnValue[*****]" in summary model. | +| Unrecognized output specification "ReturnValue[****]" in summary model. | +| Unrecognized output specification "ReturnValue[***]" in summary model. | diff --git a/cpp/ql/test/library-tests/dataflow/external-models/windows.cpp b/cpp/ql/test/library-tests/dataflow/external-models/windows.cpp index 3e03c1a69a5b..2900af9034c8 100644 --- a/cpp/ql/test/library-tests/dataflow/external-models/windows.cpp +++ b/cpp/ql/test/library-tests/dataflow/external-models/windows.cpp @@ -573,4 +573,165 @@ void test_copy_and_move_memory() { RtlMoveVolatileMemory(dest_buffer, &x, sizeof(x)); sink(dest_buffer[0]); // $ ir } +} + +using HINTERNET = void*; +using ULONGLONG = unsigned long long; +using UINT = unsigned int; +using PDWORD = DWORD*; +using PCSTR = const char*; +typedef union _WINHTTP_HEADER_NAME { + PCWSTR pwszName; + PCSTR pszName; +} WINHTTP_HEADER_NAME, *PWINHTTP_HEADER_NAME; +typedef struct _WINHTTP_EXTENDED_HEADER { + union { + PCWSTR pwszName; + PCSTR pszName; + }; + union { + PCWSTR pwszValue; + PCSTR pszValue; + }; +} WINHTTP_EXTENDED_HEADER, *PWINHTTP_EXTENDED_HEADER; + +BOOL WinHttpReadData( + HINTERNET hRequest, + LPVOID lpBuffer, + DWORD dwNumberOfBytesToRead, + LPDWORD lpdwNumberOfBytesRead +); + +DWORD WinHttpReadDataEx( + HINTERNET hRequest, + LPVOID lpBuffer, + DWORD dwNumberOfBytesToRead, + LPDWORD lpdwNumberOfBytesRead, + ULONGLONG ullFlags, + DWORD cbProperty, + PVOID pvProperty +); + +using LPCWSTR = const wchar_t*; + +BOOL WinHttpQueryHeaders( + HINTERNET hRequest, + DWORD dwInfoLevel, + LPCWSTR pwszName, + LPVOID lpBuffer, + LPDWORD lpdwBufferLength, + LPDWORD lpdwIndex +); + +DWORD WinHttpQueryHeadersEx( + HINTERNET hRequest, + DWORD dwInfoLevel, + ULONGLONG ullFlags, + UINT uiCodePage, + PDWORD pdwIndex, + PWINHTTP_HEADER_NAME pHeaderName, + PVOID pBuffer, + PDWORD pdwBufferLength, + PWINHTTP_EXTENDED_HEADER *ppHeaders, + PDWORD pdwHeadersCount +); + +void sink(PCSTR); + +void test_winhttp(HINTERNET hRequest) { + { + char buffer[1024]; + DWORD bytesRead; + BOOL result = WinHttpReadData(hRequest, buffer, sizeof(buffer), &bytesRead); + sink(buffer); + sink(*buffer); // $ ir + } + { + char buffer[1024]; + DWORD bytesRead; + DWORD result = WinHttpReadDataEx(hRequest, buffer, sizeof(buffer), &bytesRead, 0, 0, nullptr); + sink(buffer); + sink(*buffer); // $ ir + } + { + char buffer[1024]; + DWORD bufferLength = sizeof(buffer); + WinHttpQueryHeaders(hRequest, 0, nullptr, buffer, &bufferLength, nullptr); + sink(buffer); + sink(*buffer); // $ ir + } + { + char buffer[1024]; + DWORD bufferLength = sizeof(buffer); + PWINHTTP_EXTENDED_HEADER headers; + DWORD headersCount; + PWINHTTP_HEADER_NAME headerName; + DWORD result = WinHttpQueryHeadersEx(hRequest, 0, 0, 0, nullptr, headerName, buffer, &bufferLength, &headers, &headersCount); + sink(buffer); + sink(*buffer); // $ ir + sink(headerName->pszName); + sink(*headerName->pszName); // $ ir + sink(headers->pszValue); + sink(*headers->pszValue); // $ ir + } +} + +using LPWSTR = wchar_t*; +using INTERNET_SCHEME = enum { + INTERNET_SCHEME_INVALID = -1, + INTERNET_SCHEME_UNKNOWN = 0, + INTERNET_SCHEME_HTTP = 1, + INTERNET_SCHEME_HTTPS = 2, + INTERNET_SCHEME_FTP = 3, + INTERNET_SCHEME_FILE = 4, + INTERNET_SCHEME_NEWS = 5, + INTERNET_SCHEME_MAILTO = 6, + INTERNET_SCHEME_SNEWS = 7, + INTERNET_SCHEME_SOCKS = 8, + INTERNET_SCHEME_WAIS = 9, + INTERNET_SCHEME_LAST = 10 +}; +using INTERNET_PORT = unsigned short; + +typedef struct _WINHTTP_URL_COMPONENTS { + DWORD dwStructSize; + LPWSTR lpszScheme; + DWORD dwSchemeLength; + INTERNET_SCHEME nScheme; + LPWSTR lpszHostName; + DWORD dwHostNameLength; + INTERNET_PORT nPort; + LPWSTR lpszUserName; + DWORD dwUserNameLength; + LPWSTR lpszPassword; + DWORD dwPasswordLength; + LPWSTR lpszUrlPath; + DWORD dwUrlPathLength; + LPWSTR lpszExtraInfo; + DWORD dwExtraInfoLength; +} URL_COMPONENTS, *LPURL_COMPONENTS; + +BOOL WinHttpCrackUrl( + LPCWSTR pwszUrl, + DWORD dwUrlLength, + DWORD dwFlags, + LPURL_COMPONENTS lpUrlComponents +); + +void sink(LPWSTR); + +void test_winhttp_crack_url() { + { + URL_COMPONENTS urlComponents; + urlComponents.dwStructSize = sizeof(URL_COMPONENTS); + wchar_t x[256]; + x[0] = (wchar_t)source(); + BOOL result = WinHttpCrackUrl(x, 0, 0, &urlComponents); + sink(urlComponents.lpszHostName); + sink(*urlComponents.lpszHostName); // $ ir + sink(urlComponents.lpszUrlPath); + sink(*urlComponents.lpszUrlPath); // $ ir + sink(urlComponents.lpszExtraInfo); + sink(*urlComponents.lpszExtraInfo); // $ ir + } } \ No newline at end of file diff --git a/cpp/ql/test/library-tests/dataflow/ir-barrier-guards/test.cpp b/cpp/ql/test/library-tests/dataflow/ir-barrier-guards/test.cpp index 9d9a89c70087..6c4b45db48f1 100644 --- a/cpp/ql/test/library-tests/dataflow/ir-barrier-guards/test.cpp +++ b/cpp/ql/test/library-tests/dataflow/ir-barrier-guards/test.cpp @@ -12,4 +12,38 @@ void testCheckArgument(int p) { if (checkArgument(&p)) { sink(p); // $ barrier=glval indirect_barrier=int } +} + +int* get_clean_value(int* x) { return x; } +bool is_clean_value(int*); + +int* get_clean_pointer(int* x) { return x; } +bool is_clean_pointer(int*); + +void sink(int*); + +void test_mad(int x, int* p) { + { + if(is_clean_value(&x)) { + sink(x); // $ external=int + } + } + + { + if(is_clean_value(p)) { + sink(*p); // $ external=int + } + } + + { + if(is_clean_pointer(p)) { + sink(p); // $ external=int* + } + } + + { + if(is_clean_pointer(&x)) { + sink(x); // $ external=glval + } + } } \ No newline at end of file diff --git a/cpp/ql/test/library-tests/dataflow/ir-barrier-guards/test.ext.yml b/cpp/ql/test/library-tests/dataflow/ir-barrier-guards/test.ext.yml new file mode 100644 index 000000000000..8eeed7cd0b55 --- /dev/null +++ b/cpp/ql/test/library-tests/dataflow/ir-barrier-guards/test.ext.yml @@ -0,0 +1,13 @@ +extensions: + - addsTo: + pack: codeql/cpp-all + extensible: barrierModel + data: + - ["", "", False, "get_clean_pointer", "", "", "ReturnValue", "test-barrier", "manual"] + - ["", "", False, "get_clean_data", "", "", "ReturnValue[*]", "test-barrier", "manual"] + - addsTo: + pack: codeql/cpp-all + extensible: barrierGuardModel + data: + - ["", "", False, "is_clean_value", "", "", "Argument[*0]", "true", "test-barrier", "manual"] + - ["", "", False, "is_clean_pointer", "", "", "Argument[0]", "true", "test-barrier", "manual"] \ No newline at end of file diff --git a/cpp/ql/test/library-tests/dataflow/ir-barrier-guards/test.ql b/cpp/ql/test/library-tests/dataflow/ir-barrier-guards/test.ql index 5961da371228..8948c65e33c0 100644 --- a/cpp/ql/test/library-tests/dataflow/ir-barrier-guards/test.ql +++ b/cpp/ql/test/library-tests/dataflow/ir-barrier-guards/test.ql @@ -2,6 +2,7 @@ import cpp import semmle.code.cpp.dataflow.new.DataFlow import semmle.code.cpp.controlflow.IRGuards import utils.test.InlineExpectationsTest +import semmle.code.cpp.dataflow.ExternalFlow predicate instructionGuardChecks(IRGuardCondition gc, Instruction checked, boolean branch) { exists(CallInstruction call | @@ -27,18 +28,26 @@ predicate barrierGuard(DataFlow::Node node, string s) { else s = node.getType().toString().replaceAll(" ", "") } +predicate externalBarrierGuard(DataFlow::Node node, string s) { + barrierNode(node, "test-barrier") and + if node.isGLValue() + then s = "glval<" + node.getType().toString().replaceAll(" ", "") + ">" + else s = node.getType().toString().replaceAll(" ", "") +} + module Test implements TestSig { - string getARelevantTag() { result = ["barrier", "indirect_barrier"] } + string getARelevantTag() { result = ["barrier", "indirect_barrier", "external"] } predicate hasActualResult(Location location, string element, string tag, string value) { - exists(DataFlow::Node node, string s | - indirectBarrierGuard(node, s) and - value = s and + exists(DataFlow::Node node | + indirectBarrierGuard(node, value) and tag = "indirect_barrier" or - barrierGuard(node, s) and - value = s and + barrierGuard(node, value) and tag = "barrier" + or + externalBarrierGuard(node, value) and + tag = "external" | element = node.toString() and location = node.getLocation() diff --git a/cpp/ql/test/library-tests/ir/ir/PrintAST.expected b/cpp/ql/test/library-tests/ir/ir/PrintAST.expected index a9dd614a9ae3..45666a3b50b8 100644 --- a/cpp/ql/test/library-tests/ir/ir/PrintAST.expected +++ b/cpp/ql/test/library-tests/ir/ir/PrintAST.expected @@ -25131,6 +25131,517 @@ ir.cpp: # 2823| Type = [ArrayType] int[] # 2823| ValueCategory = lvalue # 2824| getStmt(5): [ReturnStmt] return ... +# 2830| [TopLevelFunction] void test_assert_simple(int, int, unsigned int, int) +# 2830| : +# 2830| getParameter(0): [Parameter] x +# 2830| Type = [IntType] int +# 2830| getParameter(1): [Parameter] y +# 2830| Type = [IntType] int +# 2830| getParameter(2): [Parameter] u +# 2830| Type = [IntType] unsigned int +# 2830| getParameter(3): [Parameter] shadowed +# 2830| Type = [IntType] int +# 2830| getEntryPoint(): [BlockStmt] { ... } +# 2831| getStmt(0): [ExprStmt] ExprStmt +# 2831| getExpr(): [Literal] 0 +# 2831| Type = [IntType] int +# 2831| Value = [Literal] 0 +# 2831| ValueCategory = prvalue +# 2831| getExpr().getFullyConverted(): [ParenthesisExpr] (...) +# 2831| Type = [VoidType] void +# 2831| ValueCategory = prvalue +# 2831| getExpr(): [CStyleCast] (void)... +# 2831| Conversion = [VoidConversion] conversion to void +# 2831| Type = [VoidType] void +# 2831| ValueCategory = prvalue +# 2832| getStmt(1): [ExprStmt] ExprStmt +# 2832| getExpr(): [Literal] 0 +# 2832| Type = [IntType] int +# 2832| Value = [Literal] 0 +# 2832| ValueCategory = prvalue +# 2832| getExpr().getFullyConverted(): [ParenthesisExpr] (...) +# 2832| Type = [VoidType] void +# 2832| ValueCategory = prvalue +# 2832| getExpr(): [CStyleCast] (void)... +# 2832| Conversion = [VoidConversion] conversion to void +# 2832| Type = [VoidType] void +# 2832| ValueCategory = prvalue +# 2833| getStmt(2): [ExprStmt] ExprStmt +# 2833| getExpr(): [Literal] 0 +# 2833| Type = [IntType] int +# 2833| Value = [Literal] 0 +# 2833| ValueCategory = prvalue +# 2833| getExpr().getFullyConverted(): [ParenthesisExpr] (...) +# 2833| Type = [VoidType] void +# 2833| ValueCategory = prvalue +# 2833| getExpr(): [CStyleCast] (void)... +# 2833| Conversion = [VoidConversion] conversion to void +# 2833| Type = [VoidType] void +# 2833| ValueCategory = prvalue +# 2835| getStmt(3): [EmptyStmt] ; +# 2837| getStmt(4): [ExprStmt] ExprStmt +# 2837| getExpr(): [Literal] 0 +# 2837| Type = [IntType] int +# 2837| Value = [Literal] 0 +# 2837| ValueCategory = prvalue +# 2837| getExpr().getFullyConverted(): [ParenthesisExpr] (...) +# 2837| Type = [VoidType] void +# 2837| ValueCategory = prvalue +# 2837| getExpr(): [CStyleCast] (void)... +# 2837| Conversion = [VoidConversion] conversion to void +# 2837| Type = [VoidType] void +# 2837| ValueCategory = prvalue +# 2839| getStmt(5): [BlockStmt] { ... } +# 2840| getStmt(0): [DeclStmt] declaration +# 2840| getDeclarationEntry(0): [VariableDeclarationEntry] definition of shadowed +# 2840| Type = [IntType] int +# 2840| getVariable().getInitializer(): [Initializer] initializer for shadowed +# 2840| getExpr(): [VariableAccess] x +# 2840| Type = [IntType] int +# 2840| ValueCategory = prvalue(load) +# 2841| getStmt(1): [ExprStmt] ExprStmt +# 2841| getExpr(): [Literal] 0 +# 2841| Type = [IntType] int +# 2841| Value = [Literal] 0 +# 2841| ValueCategory = prvalue +# 2841| getExpr().getFullyConverted(): [ParenthesisExpr] (...) +# 2841| Type = [VoidType] void +# 2841| ValueCategory = prvalue +# 2841| getExpr(): [CStyleCast] (void)... +# 2841| Conversion = [VoidConversion] conversion to void +# 2841| Type = [VoidType] void +# 2841| ValueCategory = prvalue +# 2843| getStmt(6): [ReturnStmt] return ... +# 2846| [TemplateFunction,TopLevelFunction] void test_assert_in_template(T, int, unsigned int) +# 2846| : +# 2846| getParameter(0): [Parameter] x +# 2846| Type = [TypeTemplateParameter] T +# 2846| getParameter(1): [Parameter] y +# 2846| Type = [IntType] int +# 2846| getParameter(2): [Parameter] u +# 2846| Type = [IntType] unsigned int +# 2846| getEntryPoint(): [BlockStmt] { ... } +# 2847| getStmt(0): [ExprStmt] ExprStmt +# 2847| getExpr(): [Literal] 0 +# 2847| Type = [IntType] int +# 2847| Value = [Literal] 0 +# 2847| ValueCategory = prvalue +# 2847| getExpr().getFullyConverted(): [ParenthesisExpr] (...) +# 2847| Type = [VoidType] void +# 2847| ValueCategory = prvalue +# 2847| getExpr(): [CStyleCast] (void)... +# 2847| Conversion = [VoidConversion] conversion to void +# 2847| Type = [VoidType] void +# 2847| ValueCategory = prvalue +# 2848| getStmt(1): [ExprStmt] ExprStmt +# 2848| getExpr(): [Literal] 0 +# 2848| Type = [IntType] int +# 2848| Value = [Literal] 0 +# 2848| ValueCategory = prvalue +# 2848| getExpr().getFullyConverted(): [ParenthesisExpr] (...) +# 2848| Type = [VoidType] void +# 2848| ValueCategory = prvalue +# 2848| getExpr(): [CStyleCast] (void)... +# 2848| Conversion = [VoidConversion] conversion to void +# 2848| Type = [VoidType] void +# 2848| ValueCategory = prvalue +# 2849| getStmt(2): [ExprStmt] ExprStmt +# 2849| getExpr(): [Literal] 0 +# 2849| Type = [IntType] int +# 2849| Value = [Literal] 0 +# 2849| ValueCategory = prvalue +# 2849| getExpr().getFullyConverted(): [ParenthesisExpr] (...) +# 2849| Type = [VoidType] void +# 2849| ValueCategory = prvalue +# 2849| getExpr(): [CStyleCast] (void)... +# 2849| Conversion = [VoidConversion] conversion to void +# 2849| Type = [VoidType] void +# 2849| ValueCategory = prvalue +# 2851| getStmt(3): [EmptyStmt] ; +# 2853| getStmt(4): [ExprStmt] ExprStmt +# 2853| getExpr(): [Literal] 0 +# 2853| Type = [IntType] int +# 2853| Value = [Literal] 0 +# 2853| ValueCategory = prvalue +# 2853| getExpr().getFullyConverted(): [ParenthesisExpr] (...) +# 2853| Type = [VoidType] void +# 2853| ValueCategory = prvalue +# 2853| getExpr(): [CStyleCast] (void)... +# 2853| Conversion = [VoidConversion] conversion to void +# 2853| Type = [VoidType] void +# 2853| ValueCategory = prvalue +# 2855| getStmt(5): [BlockStmt] { ... } +# 2856| getStmt(0): [DeclStmt] declaration +# 2856| getDeclarationEntry(0): [VariableDeclarationEntry] definition of shadowed +# 2856| Type = [IntType] int +# 2856| getVariable().getInitializer(): [Initializer] initializer for shadowed +# 2856| getExpr(): [VariableAccess] x +# 2856| Type = [TypeTemplateParameter] T +# 2856| ValueCategory = lvalue +# 2856| getExpr().getFullyConverted(): [CStyleCast] (int)... +# 2856| Type = [IntType] int +# 2856| ValueCategory = prvalue +# 2857| getStmt(1): [ExprStmt] ExprStmt +# 2857| getExpr(): [Literal] 0 +# 2857| Type = [IntType] int +# 2857| Value = [Literal] 0 +# 2857| ValueCategory = prvalue +# 2857| getExpr().getFullyConverted(): [ParenthesisExpr] (...) +# 2857| Type = [VoidType] void +# 2857| ValueCategory = prvalue +# 2857| getExpr(): [CStyleCast] (void)... +# 2857| Conversion = [VoidConversion] conversion to void +# 2857| Type = [VoidType] void +# 2857| ValueCategory = prvalue +# 2859| getStmt(6): [ExprStmt] ExprStmt +# 2859| getExpr(): [Literal] 0 +# 2859| Type = [IntType] int +# 2859| Value = [Literal] 0 +# 2859| ValueCategory = prvalue +# 2859| getExpr().getFullyConverted(): [ParenthesisExpr] (...) +# 2859| Type = [VoidType] void +# 2859| ValueCategory = prvalue +# 2859| getExpr(): [CStyleCast] (void)... +# 2859| Conversion = [VoidConversion] conversion to void +# 2859| Type = [VoidType] void +# 2859| ValueCategory = prvalue +# 2860| getStmt(7): [ReturnStmt] return ... +# 2846| [FunctionTemplateInstantiation,TopLevelFunction] void test_assert_in_template(int, int, unsigned int) +# 2846| : +# 2846| getParameter(0): [Parameter] x +# 2846| Type = [IntType] int +# 2846| getParameter(1): [Parameter] y +# 2846| Type = [IntType] int +# 2846| getParameter(2): [Parameter] u +# 2846| Type = [IntType] unsigned int +# 2846| getEntryPoint(): [BlockStmt] { ... } +# 2847| getStmt(0): [ExprStmt] ExprStmt +# 2847| getExpr(): [Literal] 0 +# 2847| Type = [IntType] int +# 2847| Value = [Literal] 0 +# 2847| ValueCategory = prvalue +# 2847| getExpr().getFullyConverted(): [ParenthesisExpr] (...) +# 2847| Type = [VoidType] void +# 2847| ValueCategory = prvalue +# 2847| getExpr(): [CStyleCast] (void)... +# 2847| Conversion = [VoidConversion] conversion to void +# 2847| Type = [VoidType] void +# 2847| ValueCategory = prvalue +# 2848| getStmt(1): [ExprStmt] ExprStmt +# 2848| getExpr(): [Literal] 0 +# 2848| Type = [IntType] int +# 2848| Value = [Literal] 0 +# 2848| ValueCategory = prvalue +# 2848| getExpr().getFullyConverted(): [ParenthesisExpr] (...) +# 2848| Type = [VoidType] void +# 2848| ValueCategory = prvalue +# 2848| getExpr(): [CStyleCast] (void)... +# 2848| Conversion = [VoidConversion] conversion to void +# 2848| Type = [VoidType] void +# 2848| ValueCategory = prvalue +# 2849| getStmt(2): [ExprStmt] ExprStmt +# 2849| getExpr(): [Literal] 0 +# 2849| Type = [IntType] int +# 2849| Value = [Literal] 0 +# 2849| ValueCategory = prvalue +# 2849| getExpr().getFullyConverted(): [ParenthesisExpr] (...) +# 2849| Type = [VoidType] void +# 2849| ValueCategory = prvalue +# 2849| getExpr(): [CStyleCast] (void)... +# 2849| Conversion = [VoidConversion] conversion to void +# 2849| Type = [VoidType] void +# 2849| ValueCategory = prvalue +# 2851| getStmt(3): [EmptyStmt] ; +# 2853| getStmt(4): [ExprStmt] ExprStmt +# 2853| getExpr(): [Literal] 0 +# 2853| Type = [IntType] int +# 2853| Value = [Literal] 0 +# 2853| ValueCategory = prvalue +# 2853| getExpr().getFullyConverted(): [ParenthesisExpr] (...) +# 2853| Type = [VoidType] void +# 2853| ValueCategory = prvalue +# 2853| getExpr(): [CStyleCast] (void)... +# 2853| Conversion = [VoidConversion] conversion to void +# 2853| Type = [VoidType] void +# 2853| ValueCategory = prvalue +# 2855| getStmt(5): [BlockStmt] { ... } +# 2856| getStmt(0): [DeclStmt] declaration +# 2856| getDeclarationEntry(0): [VariableDeclarationEntry] definition of shadowed +# 2856| Type = [IntType] int +# 2856| getVariable().getInitializer(): [Initializer] initializer for shadowed +# 2856| getExpr(): [VariableAccess] x +# 2856| Type = [IntType] int +# 2856| ValueCategory = prvalue(load) +# 2857| getStmt(1): [ExprStmt] ExprStmt +# 2857| getExpr(): [Literal] 0 +# 2857| Type = [IntType] int +# 2857| Value = [Literal] 0 +# 2857| ValueCategory = prvalue +# 2857| getExpr().getFullyConverted(): [ParenthesisExpr] (...) +# 2857| Type = [VoidType] void +# 2857| ValueCategory = prvalue +# 2857| getExpr(): [CStyleCast] (void)... +# 2857| Conversion = [VoidConversion] conversion to void +# 2857| Type = [VoidType] void +# 2857| ValueCategory = prvalue +# 2859| getStmt(6): [ExprStmt] ExprStmt +# 2859| getExpr(): [Literal] 0 +# 2859| Type = [IntType] int +# 2859| Value = [Literal] 0 +# 2859| ValueCategory = prvalue +# 2859| getExpr().getFullyConverted(): [ParenthesisExpr] (...) +# 2859| Type = [VoidType] void +# 2859| ValueCategory = prvalue +# 2859| getExpr(): [CStyleCast] (void)... +# 2859| Conversion = [VoidConversion] conversion to void +# 2859| Type = [VoidType] void +# 2859| ValueCategory = prvalue +# 2860| getStmt(7): [ReturnStmt] return ... +# 2846| [FunctionTemplateInstantiation,TopLevelFunction] void test_assert_in_template(short, int, unsigned int) +# 2846| : +# 2846| getParameter(0): [Parameter] x +# 2846| Type = [ShortType] short +# 2846| getParameter(1): [Parameter] y +# 2846| Type = [IntType] int +# 2846| getParameter(2): [Parameter] u +# 2846| Type = [IntType] unsigned int +# 2846| getEntryPoint(): [BlockStmt] { ... } +# 2847| getStmt(0): [ExprStmt] ExprStmt +# 2847| getExpr(): [Literal] 0 +# 2847| Type = [IntType] int +# 2847| Value = [Literal] 0 +# 2847| ValueCategory = prvalue +# 2847| getExpr().getFullyConverted(): [ParenthesisExpr] (...) +# 2847| Type = [VoidType] void +# 2847| ValueCategory = prvalue +# 2847| getExpr(): [CStyleCast] (void)... +# 2847| Conversion = [VoidConversion] conversion to void +# 2847| Type = [VoidType] void +# 2847| ValueCategory = prvalue +# 2848| getStmt(1): [ExprStmt] ExprStmt +# 2848| getExpr(): [Literal] 0 +# 2848| Type = [IntType] int +# 2848| Value = [Literal] 0 +# 2848| ValueCategory = prvalue +# 2848| getExpr().getFullyConverted(): [ParenthesisExpr] (...) +# 2848| Type = [VoidType] void +# 2848| ValueCategory = prvalue +# 2848| getExpr(): [CStyleCast] (void)... +# 2848| Conversion = [VoidConversion] conversion to void +# 2848| Type = [VoidType] void +# 2848| ValueCategory = prvalue +# 2849| getStmt(2): [ExprStmt] ExprStmt +# 2849| getExpr(): [Literal] 0 +# 2849| Type = [IntType] int +# 2849| Value = [Literal] 0 +# 2849| ValueCategory = prvalue +# 2849| getExpr().getFullyConverted(): [ParenthesisExpr] (...) +# 2849| Type = [VoidType] void +# 2849| ValueCategory = prvalue +# 2849| getExpr(): [CStyleCast] (void)... +# 2849| Conversion = [VoidConversion] conversion to void +# 2849| Type = [VoidType] void +# 2849| ValueCategory = prvalue +# 2851| getStmt(3): [EmptyStmt] ; +# 2853| getStmt(4): [ExprStmt] ExprStmt +# 2853| getExpr(): [Literal] 0 +# 2853| Type = [IntType] int +# 2853| Value = [Literal] 0 +# 2853| ValueCategory = prvalue +# 2853| getExpr().getFullyConverted(): [ParenthesisExpr] (...) +# 2853| Type = [VoidType] void +# 2853| ValueCategory = prvalue +# 2853| getExpr(): [CStyleCast] (void)... +# 2853| Conversion = [VoidConversion] conversion to void +# 2853| Type = [VoidType] void +# 2853| ValueCategory = prvalue +# 2855| getStmt(5): [BlockStmt] { ... } +# 2856| getStmt(0): [DeclStmt] declaration +# 2856| getDeclarationEntry(0): [VariableDeclarationEntry] definition of shadowed +# 2856| Type = [IntType] int +# 2856| getVariable().getInitializer(): [Initializer] initializer for shadowed +# 2856| getExpr(): [VariableAccess] x +# 2856| Type = [ShortType] short +# 2856| ValueCategory = prvalue(load) +# 2856| getExpr().getFullyConverted(): [CStyleCast] (int)... +# 2856| Conversion = [IntegralConversion] integral conversion +# 2856| Type = [IntType] int +# 2856| ValueCategory = prvalue +# 2857| getStmt(1): [ExprStmt] ExprStmt +# 2857| getExpr(): [Literal] 0 +# 2857| Type = [IntType] int +# 2857| Value = [Literal] 0 +# 2857| ValueCategory = prvalue +# 2857| getExpr().getFullyConverted(): [ParenthesisExpr] (...) +# 2857| Type = [VoidType] void +# 2857| ValueCategory = prvalue +# 2857| getExpr(): [CStyleCast] (void)... +# 2857| Conversion = [VoidConversion] conversion to void +# 2857| Type = [VoidType] void +# 2857| ValueCategory = prvalue +# 2859| getStmt(6): [ExprStmt] ExprStmt +# 2859| getExpr(): [Literal] 0 +# 2859| Type = [IntType] int +# 2859| Value = [Literal] 0 +# 2859| ValueCategory = prvalue +# 2859| getExpr().getFullyConverted(): [ParenthesisExpr] (...) +# 2859| Type = [VoidType] void +# 2859| ValueCategory = prvalue +# 2859| getExpr(): [CStyleCast] (void)... +# 2859| Conversion = [VoidConversion] conversion to void +# 2859| Type = [VoidType] void +# 2859| ValueCategory = prvalue +# 2860| getStmt(7): [ReturnStmt] return ... +# 2867| [TopLevelFunction] void (unnamed namespace)::complex_assertions(int, bool, int) +# 2867| : +# 2867| getParameter(0): [Parameter] x +# 2867| Type = [IntType] int +# 2867| getParameter(1): [Parameter] b +# 2867| Type = [BoolType] bool +# 2867| getParameter(2): [Parameter] max +# 2867| Type = [IntType] int +# 2867| getEntryPoint(): [BlockStmt] { ... } +# 2868| getStmt(0): [DeclStmt] declaration +# 2868| getDeclarationEntry(0): [VariableDeclarationEntry] definition of y +# 2868| Type = [IntType] int +# 2868| getVariable().getInitializer(): [Initializer] initializer for y +# 2868| getExpr(): [CommaExpr] ... , ... +# 2868| Type = [IntType] int +# 2868| ValueCategory = prvalue(load) +# 2868| getLeftOperand(): [Literal] 0 +# 2868| Type = [IntType] int +# 2868| Value = [Literal] 0 +# 2868| ValueCategory = prvalue +# 2868| getRightOperand(): [VariableAccess] x +# 2868| Type = [IntType] int +# 2868| ValueCategory = prvalue(load) +# 2868| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2868| Type = [VoidType] void +# 2868| ValueCategory = prvalue +# 2868| getExpr(): [CStyleCast] (void)... +# 2868| Conversion = [VoidConversion] conversion to void +# 2868| Type = [VoidType] void +# 2868| ValueCategory = prvalue +# 2868| getExpr().getFullyConverted(): [ParenthesisExpr] (...) +# 2868| Type = [IntType] int +# 2868| ValueCategory = prvalue(load) +# 2869| getStmt(1): [DeclStmt] declaration +# 2869| getDeclarationEntry(0): [VariableDeclarationEntry] definition of z +# 2869| Type = [IntType] int +# 2869| getVariable().getInitializer(): [Initializer] initializer for z +# 2869| getExpr(): [ConditionalExpr] ... ? ... : ... +# 2869| Type = [IntType] int +# 2869| ValueCategory = prvalue +# 2869| getCondition(): [VariableAccess] b +# 2869| Type = [BoolType] bool +# 2869| ValueCategory = prvalue(load) +# 2869| getThen(): [CommaExpr] ... , ... +# 2869| Type = [IntType] int +# 2869| Value = [CommaExpr] 0 +# 2869| ValueCategory = prvalue +# 2869| getLeftOperand(): [Literal] 0 +# 2869| Type = [IntType] int +# 2869| Value = [Literal] 0 +# 2869| ValueCategory = prvalue +# 2869| getRightOperand(): [Literal] 0 +# 2869| Type = [IntType] int +# 2869| Value = [Literal] 0 +# 2869| ValueCategory = prvalue +# 2869| getLeftOperand().getFullyConverted(): [ParenthesisExpr] (...) +# 2869| Type = [VoidType] void +# 2869| ValueCategory = prvalue +# 2869| getExpr(): [CStyleCast] (void)... +# 2869| Conversion = [VoidConversion] conversion to void +# 2869| Type = [VoidType] void +# 2869| ValueCategory = prvalue +# 2869| getElse(): [Literal] 1 +# 2869| Type = [IntType] int +# 2869| Value = [Literal] 1 +# 2869| ValueCategory = prvalue +# 2869| getThen().getFullyConverted(): [ParenthesisExpr] (...) +# 2869| Type = [IntType] int +# 2869| Value = [ParenthesisExpr] 0 +# 2869| ValueCategory = prvalue +# 2871| getStmt(2): [TryStmt] try { ... } +# 2871| getStmt(): [BlockStmt] { ... } +# 2872| getStmt(0): [ExprStmt] ExprStmt +# 2872| getExpr(): [ThrowExpr] throw ... +# 2872| Type = [IntType] int +# 2872| ValueCategory = prvalue +# 2872| getExpr(): [Literal] 41 +# 2872| Type = [IntType] int +# 2872| Value = [Literal] 41 +# 2872| ValueCategory = prvalue +# 2873| getChild(1): [Handler] +# 2873| getParameter(): [Parameter] c +# 2873| Type = [IntType] int +# 2873| getBlock(): [CatchBlock] { ... } +# 2874| getStmt(0): [ExprStmt] ExprStmt +# 2874| getExpr(): [Literal] 0 +# 2874| Type = [IntType] int +# 2874| Value = [Literal] 0 +# 2874| ValueCategory = prvalue +# 2874| getExpr().getFullyConverted(): [ParenthesisExpr] (...) +# 2874| Type = [VoidType] void +# 2874| ValueCategory = prvalue +# 2874| getExpr(): [CStyleCast] (void)... +# 2874| Conversion = [VoidConversion] conversion to void +# 2874| Type = [VoidType] void +# 2874| ValueCategory = prvalue +# 2875| getStmt(1): [ExprStmt] ExprStmt +# 2875| getExpr(): [Literal] 0 +# 2875| Type = [IntType] int +# 2875| Value = [Literal] 0 +# 2875| ValueCategory = prvalue +# 2875| getExpr().getFullyConverted(): [ParenthesisExpr] (...) +# 2875| Type = [VoidType] void +# 2875| ValueCategory = prvalue +# 2875| getExpr(): [CStyleCast] (void)... +# 2875| Conversion = [VoidConversion] conversion to void +# 2875| Type = [VoidType] void +# 2875| ValueCategory = prvalue +# 2878| getStmt(3): [ExprStmt] ExprStmt +# 2878| getExpr(): [Literal] 0 +# 2878| Type = [IntType] int +# 2878| Value = [Literal] 0 +# 2878| ValueCategory = prvalue +# 2878| getExpr().getFullyConverted(): [ParenthesisExpr] (...) +# 2878| Type = [VoidType] void +# 2878| ValueCategory = prvalue +# 2878| getExpr(): [CStyleCast] (void)... +# 2878| Conversion = [VoidConversion] conversion to void +# 2878| Type = [VoidType] void +# 2878| ValueCategory = prvalue +# 2879| getStmt(4): [DeclStmt] declaration +# 2879| getDeclarationEntry(0): [VariableDeclarationEntry] definition of shadowed +# 2879| Type = [IntType] int +# 2881| getStmt(5): [TryStmt] try { ... } +# 2881| getStmt(): [BlockStmt] { ... } +# 2882| getStmt(0): [ExprStmt] ExprStmt +# 2882| getExpr(): [ThrowExpr] throw ... +# 2882| Type = [IntType] int +# 2882| ValueCategory = prvalue +# 2882| getExpr(): [Literal] 41 +# 2882| Type = [IntType] int +# 2882| Value = [Literal] 41 +# 2882| ValueCategory = prvalue +# 2883| getChild(1): [Handler] +# 2883| getParameter(): [Parameter] shadowed +# 2883| Type = [IntType] int +# 2883| getBlock(): [CatchBlock] { ... } +# 2884| getStmt(0): [ExprStmt] ExprStmt +# 2884| getExpr(): [Literal] 0 +# 2884| Type = [IntType] int +# 2884| Value = [Literal] 0 +# 2884| ValueCategory = prvalue +# 2884| getExpr().getFullyConverted(): [ParenthesisExpr] (...) +# 2884| Type = [VoidType] void +# 2884| ValueCategory = prvalue +# 2884| getExpr(): [CStyleCast] (void)... +# 2884| Conversion = [VoidConversion] conversion to void +# 2884| Type = [VoidType] void +# 2884| ValueCategory = prvalue +# 2886| getStmt(6): [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 94daf808a722..369cc9495a2b 100644 --- a/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected +++ b/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected @@ -20741,6 +20741,331 @@ ir.cpp: # 2821| v2821_10(void) = AliasedUse : m2821_3 # 2821| v2821_11(void) = ExitFunction : +# 2830| void test_assert_simple(int, int, unsigned int, int) +# 2830| Block 0 +# 2830| v2830_1(void) = EnterFunction : +# 2830| m2830_2(unknown) = AliasedDefinition : +# 2830| m2830_3(unknown) = InitializeNonLocal : +# 2830| m2830_4(unknown) = Chi : total:m2830_2, partial:m2830_3 +# 2830| r2830_5(glval) = VariableAddress[x] : +# 2830| m2830_6(int) = InitializeParameter[x] : &:r2830_5 +# 2830| r2830_7(glval) = VariableAddress[y] : +# 2830| m2830_8(int) = InitializeParameter[y] : &:r2830_7 +# 2830| r2830_9(glval) = VariableAddress[u] : +# 2830| m2830_10(unsigned int) = InitializeParameter[u] : &:r2830_9 +# 2830| r2830_11(glval) = VariableAddress[shadowed] : +# 2830| m2830_12(int) = InitializeParameter[shadowed] : &:r2830_11 +# 2831| r2831_1(glval) = VariableAddress[x] : +# 2831| r2831_2(int) = Load[x] : &:r2831_1, m2830_6 +# 2831| r2831_3(int) = Constant[0] : +# 2831| r2831_4(bool) = CompareGT : r2831_2, r2831_3 +# 2831| v2831_5(void) = ConditionalBranch : r2831_4 +#-----| True -> Block 1 + +# 2832| Block 1 +# 2832| r2832_1(int) = Constant[0] : +# 2832| r2832_2(glval) = VariableAddress[x] : +# 2832| r2832_3(int) = Load[x] : &:r2832_2, m2830_6 +# 2832| r2832_4(bool) = CompareLT : r2832_1, r2832_3 +# 2832| v2832_5(void) = ConditionalBranch : r2832_4 +#-----| True -> Block 2 + +# 2833| Block 2 +# 2833| r2833_1(glval) = VariableAddress[x] : +# 2833| r2833_2(int) = Load[x] : &:r2833_1, m2830_6 +# 2833| r2833_3(glval) = VariableAddress[y] : +# 2833| r2833_4(int) = Load[y] : &:r2833_3, m2830_8 +# 2833| r2833_5(bool) = CompareLT : r2833_2, r2833_4 +# 2833| v2833_6(void) = ConditionalBranch : r2833_5 +#-----| True -> Block 3 + +# 2835| Block 3 +# 2835| r2835_1(glval) = VariableAddress[x] : +# 2835| r2835_2(int) = Load[x] : &:r2835_1, m2830_6 +# 2835| r2835_3(int) = Constant[2] : +# 2835| r2835_4(bool) = CompareNE : r2835_2, r2835_3 +# 2835| v2835_5(void) = ConditionalBranch : r2835_4 +#-----| True -> Block 4 + +# 2837| Block 4 +# 2837| r2837_1(glval) = VariableAddress[u] : +# 2837| r2837_2(unsigned int) = Load[u] : &:r2837_1, m2830_10 +# 2837| r2837_3(glval) = VariableAddress[x] : +# 2837| r2837_4(int) = Load[x] : &:r2837_3, m2830_6 +# 2837| r2837_5(bool) = CompareLT : r2837_2, r2837_4 +# 2837| v2837_6(void) = ConditionalBranch : r2837_5 +#-----| True -> Block 5 + +# 2840| Block 5 +# 2840| r2840_1(glval) = VariableAddress[shadowed] : +# 2840| r2840_2(glval) = VariableAddress[x] : +# 2840| r2840_3(int) = Load[x] : &:r2840_2, m2830_6 +# 2840| m2840_4(int) = Store[shadowed] : &:r2840_1, r2840_3 +# 2841| r2841_1(int) = Constant[0] : +# 2841| v2841_2(void) = Convert : r2841_1 +# 2843| v2843_1(void) = NoOp : +# 2830| v2830_13(void) = ReturnVoid : +# 2830| v2830_14(void) = AliasedUse : m2830_3 +# 2830| v2830_15(void) = ExitFunction : + +# 2846| void test_assert_in_template(int, int, unsigned int) +# 2846| Block 0 +# 2846| v2846_1(void) = EnterFunction : +# 2846| m2846_2(unknown) = AliasedDefinition : +# 2846| m2846_3(unknown) = InitializeNonLocal : +# 2846| m2846_4(unknown) = Chi : total:m2846_2, partial:m2846_3 +# 2846| r2846_5(glval) = VariableAddress[x] : +# 2846| m2846_6(int) = InitializeParameter[x] : &:r2846_5 +# 2846| r2846_7(glval) = VariableAddress[y] : +# 2846| m2846_8(int) = InitializeParameter[y] : &:r2846_7 +# 2846| r2846_9(glval) = VariableAddress[u] : +# 2846| m2846_10(unsigned int) = InitializeParameter[u] : &:r2846_9 +# 2847| r2847_1(glval) = VariableAddress[x] : +# 2847| r2847_2(int) = Load[x] : &:r2847_1, m2846_6 +# 2847| r2847_3(int) = Constant[0] : +# 2847| r2847_4(bool) = CompareGT : r2847_2, r2847_3 +# 2847| v2847_5(void) = ConditionalBranch : r2847_4 +#-----| True -> Block 1 + +# 2848| Block 1 +# 2848| r2848_1(int) = Constant[0] : +# 2848| r2848_2(glval) = VariableAddress[x] : +# 2848| r2848_3(int) = Load[x] : &:r2848_2, m2846_6 +# 2848| r2848_4(bool) = CompareLT : r2848_1, r2848_3 +# 2848| v2848_5(void) = ConditionalBranch : r2848_4 +#-----| True -> Block 2 + +# 2849| Block 2 +# 2849| r2849_1(glval) = VariableAddress[x] : +# 2849| r2849_2(int) = Load[x] : &:r2849_1, m2846_6 +# 2849| r2849_3(glval) = VariableAddress[y] : +# 2849| r2849_4(int) = Load[y] : &:r2849_3, m2846_8 +# 2849| r2849_5(bool) = CompareLT : r2849_2, r2849_4 +# 2849| v2849_6(void) = ConditionalBranch : r2849_5 +#-----| True -> Block 3 + +# 2851| Block 3 +# 2851| r2851_1(glval) = VariableAddress[x] : +# 2851| r2851_2(int) = Load[x] : &:r2851_1, m2846_6 +# 2851| r2851_3(int) = Constant[2] : +# 2851| r2851_4(bool) = CompareNE : r2851_2, r2851_3 +# 2851| v2851_5(void) = ConditionalBranch : r2851_4 +#-----| True -> Block 4 + +# 2853| Block 4 +# 2853| r2853_1(glval) = VariableAddress[u] : +# 2853| r2853_2(unsigned int) = Load[u] : &:r2853_1, m2846_10 +# 2853| r2853_3(glval) = VariableAddress[x] : +# 2853| r2853_4(int) = Load[x] : &:r2853_3, m2846_6 +# 2853| r2853_5(bool) = CompareLT : r2853_2, r2853_4 +# 2853| v2853_6(void) = ConditionalBranch : r2853_5 +#-----| True -> Block 5 + +# 2856| Block 5 +# 2856| r2856_1(glval) = VariableAddress[shadowed] : +# 2856| r2856_2(glval) = VariableAddress[x] : +# 2856| r2856_3(int) = Load[x] : &:r2856_2, m2846_6 +# 2856| m2856_4(int) = Store[shadowed] : &:r2856_1, r2856_3 +# 2857| r2857_1(glval) = VariableAddress[shadowed] : +# 2857| r2857_2(int) = Load[shadowed] : &:r2857_1, m2856_4 +# 2857| r2857_3(int) = Constant[0] : +# 2857| r2857_4(bool) = CompareGT : r2857_2, r2857_3 +# 2857| v2857_5(void) = ConditionalBranch : r2857_4 +#-----| True -> Block 6 + +# 2859| Block 6 +# 2859| r2859_1(glval) = VariableAddress[x] : +# 2859| r2859_2(int) = Load[x] : &:r2859_1, m2846_6 +# 2859| r2859_3(int) = Constant[0] : +# 2859| r2859_4(bool) = CompareGT : r2859_2, r2859_3 +# 2859| v2859_5(void) = ConditionalBranch : r2859_4 +#-----| True -> Block 7 + +# 2860| Block 7 +# 2860| v2860_1(void) = NoOp : +# 2846| v2846_11(void) = ReturnVoid : +# 2846| v2846_12(void) = AliasedUse : m2846_3 +# 2846| v2846_13(void) = ExitFunction : + +# 2846| void test_assert_in_template(short, int, unsigned int) +# 2846| Block 0 +# 2846| v2846_1(void) = EnterFunction : +# 2846| m2846_2(unknown) = AliasedDefinition : +# 2846| m2846_3(unknown) = InitializeNonLocal : +# 2846| m2846_4(unknown) = Chi : total:m2846_2, partial:m2846_3 +# 2846| r2846_5(glval) = VariableAddress[x] : +# 2846| m2846_6(short) = InitializeParameter[x] : &:r2846_5 +# 2846| r2846_7(glval) = VariableAddress[y] : +# 2846| m2846_8(int) = InitializeParameter[y] : &:r2846_7 +# 2846| r2846_9(glval) = VariableAddress[u] : +# 2846| m2846_10(unsigned int) = InitializeParameter[u] : &:r2846_9 +# 2847| r2847_1(glval) = VariableAddress[x] : +# 2847| r2847_2(short) = Load[x] : &:r2847_1, m2846_6 +# 2847| r2847_3(int) = Constant[0] : +# 2847| r2847_4(bool) = CompareGT : r2847_2, r2847_3 +# 2847| v2847_5(void) = ConditionalBranch : r2847_4 +#-----| True -> Block 1 + +# 2848| Block 1 +# 2848| r2848_1(int) = Constant[0] : +# 2848| r2848_2(glval) = VariableAddress[x] : +# 2848| r2848_3(short) = Load[x] : &:r2848_2, m2846_6 +# 2848| r2848_4(bool) = CompareLT : r2848_1, r2848_3 +# 2848| v2848_5(void) = ConditionalBranch : r2848_4 +#-----| True -> Block 2 + +# 2849| Block 2 +# 2849| r2849_1(glval) = VariableAddress[x] : +# 2849| r2849_2(short) = Load[x] : &:r2849_1, m2846_6 +# 2849| r2849_3(glval) = VariableAddress[y] : +# 2849| r2849_4(int) = Load[y] : &:r2849_3, m2846_8 +# 2849| r2849_5(bool) = CompareLT : r2849_2, r2849_4 +# 2849| v2849_6(void) = ConditionalBranch : r2849_5 +#-----| True -> Block 3 + +# 2851| Block 3 +# 2851| r2851_1(glval) = VariableAddress[x] : +# 2851| r2851_2(short) = Load[x] : &:r2851_1, m2846_6 +# 2851| r2851_3(int) = Constant[2] : +# 2851| r2851_4(bool) = CompareNE : r2851_2, r2851_3 +# 2851| v2851_5(void) = ConditionalBranch : r2851_4 +#-----| True -> Block 4 + +# 2853| Block 4 +# 2853| r2853_1(glval) = VariableAddress[u] : +# 2853| r2853_2(unsigned int) = Load[u] : &:r2853_1, m2846_10 +# 2853| r2853_3(glval) = VariableAddress[x] : +# 2853| r2853_4(short) = Load[x] : &:r2853_3, m2846_6 +# 2853| r2853_5(bool) = CompareLT : r2853_2, r2853_4 +# 2853| v2853_6(void) = ConditionalBranch : r2853_5 +#-----| True -> Block 5 + +# 2856| Block 5 +# 2856| r2856_1(glval) = VariableAddress[shadowed] : +# 2856| r2856_2(glval) = VariableAddress[x] : +# 2856| r2856_3(short) = Load[x] : &:r2856_2, m2846_6 +# 2856| r2856_4(int) = Convert : r2856_3 +# 2856| m2856_5(int) = Store[shadowed] : &:r2856_1, r2856_4 +# 2857| r2857_1(glval) = VariableAddress[shadowed] : +# 2857| r2857_2(int) = Load[shadowed] : &:r2857_1, m2856_5 +# 2857| r2857_3(int) = Constant[0] : +# 2857| r2857_4(bool) = CompareGT : r2857_2, r2857_3 +# 2857| v2857_5(void) = ConditionalBranch : r2857_4 +#-----| True -> Block 6 + +# 2859| Block 6 +# 2859| r2859_1(glval) = VariableAddress[x] : +# 2859| r2859_2(short) = Load[x] : &:r2859_1, m2846_6 +# 2859| r2859_3(int) = Constant[0] : +# 2859| r2859_4(bool) = CompareGT : r2859_2, r2859_3 +# 2859| v2859_5(void) = ConditionalBranch : r2859_4 +#-----| True -> Block 7 + +# 2860| Block 7 +# 2860| v2860_1(void) = NoOp : +# 2846| v2846_11(void) = ReturnVoid : +# 2846| v2846_12(void) = AliasedUse : m2846_3 +# 2846| v2846_13(void) = ExitFunction : + +# 2867| void (unnamed namespace)::complex_assertions(int, bool, int) +# 2867| Block 0 +# 2867| v2867_1(void) = EnterFunction : +# 2867| m2867_2(unknown) = AliasedDefinition : +# 2867| m2867_3(unknown) = InitializeNonLocal : +# 2867| m2867_4(unknown) = Chi : total:m2867_2, partial:m2867_3 +# 2867| r2867_5(glval) = VariableAddress[x] : +# 2867| m2867_6(int) = InitializeParameter[x] : &:r2867_5 +# 2867| r2867_7(glval) = VariableAddress[b] : +# 2867| m2867_8(bool) = InitializeParameter[b] : &:r2867_7 +# 2867| r2867_9(glval) = VariableAddress[max] : +# 2867| m2867_10(int) = InitializeParameter[max] : &:r2867_9 +# 2868| r2868_1(glval) = VariableAddress[y] : +# 2868| r2868_2(int) = Constant[0] : +# 2868| v2868_3(void) = Convert : r2868_2 +# 2868| r2868_4(glval) = VariableAddress[x] : +# 2868| r2868_5(int) = Load[x] : &:r2868_4, m2867_6 +# 2868| r2868_6(int) = CopyValue : r2868_5 +# 2868| m2868_7(int) = Store[y] : &:r2868_1, r2868_6 +# 2869| r2869_1(glval) = VariableAddress[z] : +# 2869| r2869_2(glval) = VariableAddress[b] : +# 2869| r2869_3(bool) = Load[b] : &:r2869_2, m2867_8 +# 2869| v2869_4(void) = ConditionalBranch : r2869_3 +#-----| False -> Block 5 +#-----| True -> Block 4 + +# 2867| Block 1 +# 2867| v2867_11(void) = AliasedUse : m2867_3 +# 2867| v2867_12(void) = ExitFunction : + +# 2867| Block 2 +# 2867| v2867_13(void) = Unwind : +#-----| Goto -> Block 1 + +# 2869| Block 3 +# 2869| m2869_5(int) = Phi : from 4:m2869_11, from 5:m2869_14 +# 2869| r2869_6(glval) = VariableAddress[#temp2869:17] : +# 2869| r2869_7(int) = Load[#temp2869:17] : &:r2869_6, m2869_5 +# 2869| m2869_8(int) = Store[z] : &:r2869_1, r2869_7 +# 2872| r2872_1(glval) = VariableAddress[#throw2872:13] : +# 2872| r2872_2(int) = Constant[41] : +# 2872| m2872_3(int) = Store[#throw2872:13] : &:r2872_1, r2872_2 +# 2872| v2872_4(void) = ThrowValue : &:r2872_1, m2872_3 +#-----| C++ Exception -> Block 6 + +# 2869| Block 4 +# 2869| r2869_9(int) = Constant[0] : +# 2869| r2869_10(glval) = VariableAddress[#temp2869:17] : +# 2869| m2869_11(int) = Store[#temp2869:17] : &:r2869_10, r2869_9 +#-----| Goto -> Block 3 + +# 2869| Block 5 +# 2869| r2869_12(int) = Constant[1] : +# 2869| r2869_13(glval) = VariableAddress[#temp2869:17] : +# 2869| m2869_14(int) = Store[#temp2869:17] : &:r2869_13, r2869_12 +#-----| Goto -> Block 3 + +# 2873| Block 6 +# 2873| v2873_1(void) = CatchByType[int] : +#-----| C++ Exception -> Block 2 +#-----| Goto -> Block 7 + +# 2873| Block 7 +# 2873| r2873_2(glval) = VariableAddress[c] : +# 2873| m2873_3(int) = InitializeParameter[c] : &:r2873_2 +# 2874| r2874_1(glval) = VariableAddress[c] : +# 2874| r2874_2(int) = Load[c] : &:r2874_1, m2873_3 +# 2874| r2874_3(int) = Constant[42] : +# 2874| r2874_4(bool) = CompareLT : r2874_2, r2874_3 +# 2874| v2874_5(void) = ConditionalBranch : r2874_4 +#-----| True -> Block 8 + +# 2875| Block 8 +# 2875| r2875_1(int) = Constant[0] : +# 2875| v2875_2(void) = Convert : r2875_1 +# 2878| r2878_1(int) = Constant[0] : +# 2878| v2878_2(void) = Convert : r2878_1 +# 2879| r2879_1(glval) = VariableAddress[shadowed] : +# 2879| m2879_2(int) = Uninitialized[shadowed] : &:r2879_1 +# 2882| r2882_1(glval) = VariableAddress[#throw2882:13] : +# 2882| r2882_2(int) = Constant[41] : +# 2882| m2882_3(int) = Store[#throw2882:13] : &:r2882_1, r2882_2 +# 2882| v2882_4(void) = ThrowValue : &:r2882_1, m2882_3 +#-----| C++ Exception -> Block 9 + +# 2883| Block 9 +# 2883| v2883_1(void) = CatchByType[int] : +#-----| C++ Exception -> Block 2 +#-----| Goto -> Block 10 + +# 2883| Block 10 +# 2883| r2883_2(glval) = VariableAddress[shadowed] : +# 2883| m2883_3(int) = InitializeParameter[shadowed] : &:r2883_2 +# 2884| r2884_1(int) = Constant[0] : +# 2884| v2884_2(void) = Convert : r2884_1 +# 2886| v2886_1(void) = NoOp : +# 2867| v2867_14(void) = ReturnVoid : +#-----| Goto -> Block 1 + ir23.cpp: # 1| bool consteval_1() # 1| Block 0 diff --git a/cpp/ql/test/library-tests/ir/ir/assertion_variable_resolution.expected b/cpp/ql/test/library-tests/ir/ir/assertion_variable_resolution.expected new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/cpp/ql/test/library-tests/ir/ir/assertion_variable_resolution.ql b/cpp/ql/test/library-tests/ir/ir/assertion_variable_resolution.ql new file mode 100644 index 000000000000..09420b11c3bc --- /dev/null +++ b/cpp/ql/test/library-tests/ir/ir/assertion_variable_resolution.ql @@ -0,0 +1,20 @@ +import cpp +import semmle.code.cpp.ir.IR +import semmle.code.cpp.ir.implementation.raw.internal.TranslatedAssertion +import utils.test.InlineExpectationsTest + +module Test implements TestSig { + string getARelevantTag() { result = "var" } + + predicate hasActualResult(Location location, string element, string tag, string value) { + exists(TranslatedAssertionVarAccess tava, Variable v | + v = tava.getVariable() and + location = tava.getLocation() and + tava.toString() = element and + tag = "var" and + value = v.getLocation().getStartLine().toString() + ":" + v.getName() + ) + } +} + +import MakeTest diff --git a/cpp/ql/test/library-tests/ir/ir/ir.cpp b/cpp/ql/test/library-tests/ir/ir/ir.cpp index 99876f7e9a47..41494ec00b3c 100644 --- a/cpp/ql/test/library-tests/ir/ir/ir.cpp +++ b/cpp/ql/test/library-tests/ir/ir/ir.cpp @@ -2823,4 +2823,67 @@ void vla_sizeof_test5(int len1, size_t len2) { size_t z = sizeof((*&tmp1)[1]); } +// Common definitions for assertions in release builds +#define assert(x) ((void)0) +#define __analysis_assume(x) + +void test_assert_simple(int x, int y, unsigned u, int shadowed) { + assert(x > 0); // $ var=2830:x + assert(0 < x); // $ var=2830:x + assert(x < y); // $ var=2830:x var=2830:y + + __analysis_assume(x != 2); // $ var=2830:x + + assert(u < x); // $ var=2830:u var=2830:x + + { + int shadowed = x; + assert(shadowed > 0); // no assertion generated since the variable is shadowed + } +} + +template +void test_assert_in_template(T x, int y, unsigned u) { + assert(x > 0); // $ var=2846:x + assert(0 < x); // $ var=2846:x + assert(x < y); // $ var=2846:x var=2846:y + + __analysis_assume(x != 2); // $ var=2846:x + + assert(u < x); // $ var=2846:u var=2846:x + + { + int shadowed = x; + assert(shadowed > 0); // $ var=2856:shadowed + } + assert(x> 0); // $ var=2846:x +} + +template void test_assert_in_template(int, int, unsigned); +template void test_assert_in_template(short, int, unsigned); +namespace { + int shadowed; + + void complex_assertions(int x, bool b, int max) { + int y = (assert(x > 0), x); // no assertion generated + int z = b ? (assert(x != 0), 0) : 1; // no assertion generated + + try { + throw 41; + } catch (int c) { + assert(c < 42); // $ var=2873:c + assert(shadowed < 42); // no assertion generated + } + + assert(shadowed > 0); // no assertion generated + int shadowed; + + try { + throw 41; + } catch (int shadowed) { + assert(shadowed < 42); // no assertion generated + } + } +} + // 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 94e18abb9dfa..03278f9aa728 100644 --- a/cpp/ql/test/library-tests/ir/ir/raw_ir.expected +++ b/cpp/ql/test/library-tests/ir/ir/raw_ir.expected @@ -18880,6 +18880,326 @@ ir.cpp: # 2821| v2821_9(void) = AliasedUse : ~m? # 2821| v2821_10(void) = ExitFunction : +# 2830| void test_assert_simple(int, int, unsigned int, int) +# 2830| Block 0 +# 2830| v2830_1(void) = EnterFunction : +# 2830| mu2830_2(unknown) = AliasedDefinition : +# 2830| mu2830_3(unknown) = InitializeNonLocal : +# 2830| r2830_4(glval) = VariableAddress[x] : +# 2830| mu2830_5(int) = InitializeParameter[x] : &:r2830_4 +# 2830| r2830_6(glval) = VariableAddress[y] : +# 2830| mu2830_7(int) = InitializeParameter[y] : &:r2830_6 +# 2830| r2830_8(glval) = VariableAddress[u] : +# 2830| mu2830_9(unsigned int) = InitializeParameter[u] : &:r2830_8 +# 2830| r2830_10(glval) = VariableAddress[shadowed] : +# 2830| mu2830_11(int) = InitializeParameter[shadowed] : &:r2830_10 +# 2831| r2831_1(glval) = VariableAddress[x] : +# 2831| r2831_2(int) = Load[x] : &:r2831_1, ~m? +# 2831| r2831_3(int) = Constant[0] : +# 2831| r2831_4(bool) = CompareGT : r2831_2, r2831_3 +# 2831| v2831_5(void) = ConditionalBranch : r2831_4 +#-----| True -> Block 1 + +# 2832| Block 1 +# 2832| r2832_1(int) = Constant[0] : +# 2832| r2832_2(glval) = VariableAddress[x] : +# 2832| r2832_3(int) = Load[x] : &:r2832_2, ~m? +# 2832| r2832_4(bool) = CompareLT : r2832_1, r2832_3 +# 2832| v2832_5(void) = ConditionalBranch : r2832_4 +#-----| True -> Block 2 + +# 2833| Block 2 +# 2833| r2833_1(glval) = VariableAddress[x] : +# 2833| r2833_2(int) = Load[x] : &:r2833_1, ~m? +# 2833| r2833_3(glval) = VariableAddress[y] : +# 2833| r2833_4(int) = Load[y] : &:r2833_3, ~m? +# 2833| r2833_5(bool) = CompareLT : r2833_2, r2833_4 +# 2833| v2833_6(void) = ConditionalBranch : r2833_5 +#-----| True -> Block 3 + +# 2835| Block 3 +# 2835| r2835_1(glval) = VariableAddress[x] : +# 2835| r2835_2(int) = Load[x] : &:r2835_1, ~m? +# 2835| r2835_3(int) = Constant[2] : +# 2835| r2835_4(bool) = CompareNE : r2835_2, r2835_3 +# 2835| v2835_5(void) = ConditionalBranch : r2835_4 +#-----| True -> Block 4 + +# 2837| Block 4 +# 2837| r2837_1(glval) = VariableAddress[u] : +# 2837| r2837_2(unsigned int) = Load[u] : &:r2837_1, ~m? +# 2837| r2837_3(glval) = VariableAddress[x] : +# 2837| r2837_4(int) = Load[x] : &:r2837_3, ~m? +# 2837| r2837_5(bool) = CompareLT : r2837_2, r2837_4 +# 2837| v2837_6(void) = ConditionalBranch : r2837_5 +#-----| True -> Block 5 + +# 2840| Block 5 +# 2840| r2840_1(glval) = VariableAddress[shadowed] : +# 2840| r2840_2(glval) = VariableAddress[x] : +# 2840| r2840_3(int) = Load[x] : &:r2840_2, ~m? +# 2840| mu2840_4(int) = Store[shadowed] : &:r2840_1, r2840_3 +# 2841| r2841_1(int) = Constant[0] : +# 2841| v2841_2(void) = Convert : r2841_1 +# 2843| v2843_1(void) = NoOp : +# 2830| v2830_12(void) = ReturnVoid : +# 2830| v2830_13(void) = AliasedUse : ~m? +# 2830| v2830_14(void) = ExitFunction : + +# 2846| void test_assert_in_template(int, int, unsigned int) +# 2846| Block 0 +# 2846| v2846_1(void) = EnterFunction : +# 2846| mu2846_2(unknown) = AliasedDefinition : +# 2846| mu2846_3(unknown) = InitializeNonLocal : +# 2846| r2846_4(glval) = VariableAddress[x] : +# 2846| mu2846_5(int) = InitializeParameter[x] : &:r2846_4 +# 2846| r2846_6(glval) = VariableAddress[y] : +# 2846| mu2846_7(int) = InitializeParameter[y] : &:r2846_6 +# 2846| r2846_8(glval) = VariableAddress[u] : +# 2846| mu2846_9(unsigned int) = InitializeParameter[u] : &:r2846_8 +# 2847| r2847_1(glval) = VariableAddress[x] : +# 2847| r2847_2(int) = Load[x] : &:r2847_1, ~m? +# 2847| r2847_3(int) = Constant[0] : +# 2847| r2847_4(bool) = CompareGT : r2847_2, r2847_3 +# 2847| v2847_5(void) = ConditionalBranch : r2847_4 +#-----| True -> Block 1 + +# 2848| Block 1 +# 2848| r2848_1(int) = Constant[0] : +# 2848| r2848_2(glval) = VariableAddress[x] : +# 2848| r2848_3(int) = Load[x] : &:r2848_2, ~m? +# 2848| r2848_4(bool) = CompareLT : r2848_1, r2848_3 +# 2848| v2848_5(void) = ConditionalBranch : r2848_4 +#-----| True -> Block 2 + +# 2849| Block 2 +# 2849| r2849_1(glval) = VariableAddress[x] : +# 2849| r2849_2(int) = Load[x] : &:r2849_1, ~m? +# 2849| r2849_3(glval) = VariableAddress[y] : +# 2849| r2849_4(int) = Load[y] : &:r2849_3, ~m? +# 2849| r2849_5(bool) = CompareLT : r2849_2, r2849_4 +# 2849| v2849_6(void) = ConditionalBranch : r2849_5 +#-----| True -> Block 3 + +# 2851| Block 3 +# 2851| r2851_1(glval) = VariableAddress[x] : +# 2851| r2851_2(int) = Load[x] : &:r2851_1, ~m? +# 2851| r2851_3(int) = Constant[2] : +# 2851| r2851_4(bool) = CompareNE : r2851_2, r2851_3 +# 2851| v2851_5(void) = ConditionalBranch : r2851_4 +#-----| True -> Block 4 + +# 2853| Block 4 +# 2853| r2853_1(glval) = VariableAddress[u] : +# 2853| r2853_2(unsigned int) = Load[u] : &:r2853_1, ~m? +# 2853| r2853_3(glval) = VariableAddress[x] : +# 2853| r2853_4(int) = Load[x] : &:r2853_3, ~m? +# 2853| r2853_5(bool) = CompareLT : r2853_2, r2853_4 +# 2853| v2853_6(void) = ConditionalBranch : r2853_5 +#-----| True -> Block 5 + +# 2856| Block 5 +# 2856| r2856_1(glval) = VariableAddress[shadowed] : +# 2856| r2856_2(glval) = VariableAddress[x] : +# 2856| r2856_3(int) = Load[x] : &:r2856_2, ~m? +# 2856| mu2856_4(int) = Store[shadowed] : &:r2856_1, r2856_3 +# 2857| r2857_1(glval) = VariableAddress[shadowed] : +# 2857| r2857_2(int) = Load[shadowed] : &:r2857_1, ~m? +# 2857| r2857_3(int) = Constant[0] : +# 2857| r2857_4(bool) = CompareGT : r2857_2, r2857_3 +# 2857| v2857_5(void) = ConditionalBranch : r2857_4 +#-----| True -> Block 6 + +# 2859| Block 6 +# 2859| r2859_1(glval) = VariableAddress[x] : +# 2859| r2859_2(int) = Load[x] : &:r2859_1, ~m? +# 2859| r2859_3(int) = Constant[0] : +# 2859| r2859_4(bool) = CompareGT : r2859_2, r2859_3 +# 2859| v2859_5(void) = ConditionalBranch : r2859_4 +#-----| True -> Block 7 + +# 2860| Block 7 +# 2860| v2860_1(void) = NoOp : +# 2846| v2846_10(void) = ReturnVoid : +# 2846| v2846_11(void) = AliasedUse : ~m? +# 2846| v2846_12(void) = ExitFunction : + +# 2846| void test_assert_in_template(short, int, unsigned int) +# 2846| Block 0 +# 2846| v2846_1(void) = EnterFunction : +# 2846| mu2846_2(unknown) = AliasedDefinition : +# 2846| mu2846_3(unknown) = InitializeNonLocal : +# 2846| r2846_4(glval) = VariableAddress[x] : +# 2846| mu2846_5(short) = InitializeParameter[x] : &:r2846_4 +# 2846| r2846_6(glval) = VariableAddress[y] : +# 2846| mu2846_7(int) = InitializeParameter[y] : &:r2846_6 +# 2846| r2846_8(glval) = VariableAddress[u] : +# 2846| mu2846_9(unsigned int) = InitializeParameter[u] : &:r2846_8 +# 2847| r2847_1(glval) = VariableAddress[x] : +# 2847| r2847_2(short) = Load[x] : &:r2847_1, ~m? +# 2847| r2847_3(int) = Constant[0] : +# 2847| r2847_4(bool) = CompareGT : r2847_2, r2847_3 +# 2847| v2847_5(void) = ConditionalBranch : r2847_4 +#-----| True -> Block 1 + +# 2848| Block 1 +# 2848| r2848_1(int) = Constant[0] : +# 2848| r2848_2(glval) = VariableAddress[x] : +# 2848| r2848_3(short) = Load[x] : &:r2848_2, ~m? +# 2848| r2848_4(bool) = CompareLT : r2848_1, r2848_3 +# 2848| v2848_5(void) = ConditionalBranch : r2848_4 +#-----| True -> Block 2 + +# 2849| Block 2 +# 2849| r2849_1(glval) = VariableAddress[x] : +# 2849| r2849_2(short) = Load[x] : &:r2849_1, ~m? +# 2849| r2849_3(glval) = VariableAddress[y] : +# 2849| r2849_4(int) = Load[y] : &:r2849_3, ~m? +# 2849| r2849_5(bool) = CompareLT : r2849_2, r2849_4 +# 2849| v2849_6(void) = ConditionalBranch : r2849_5 +#-----| True -> Block 3 + +# 2851| Block 3 +# 2851| r2851_1(glval) = VariableAddress[x] : +# 2851| r2851_2(short) = Load[x] : &:r2851_1, ~m? +# 2851| r2851_3(int) = Constant[2] : +# 2851| r2851_4(bool) = CompareNE : r2851_2, r2851_3 +# 2851| v2851_5(void) = ConditionalBranch : r2851_4 +#-----| True -> Block 4 + +# 2853| Block 4 +# 2853| r2853_1(glval) = VariableAddress[u] : +# 2853| r2853_2(unsigned int) = Load[u] : &:r2853_1, ~m? +# 2853| r2853_3(glval) = VariableAddress[x] : +# 2853| r2853_4(short) = Load[x] : &:r2853_3, ~m? +# 2853| r2853_5(bool) = CompareLT : r2853_2, r2853_4 +# 2853| v2853_6(void) = ConditionalBranch : r2853_5 +#-----| True -> Block 5 + +# 2856| Block 5 +# 2856| r2856_1(glval) = VariableAddress[shadowed] : +# 2856| r2856_2(glval) = VariableAddress[x] : +# 2856| r2856_3(short) = Load[x] : &:r2856_2, ~m? +# 2856| r2856_4(int) = Convert : r2856_3 +# 2856| mu2856_5(int) = Store[shadowed] : &:r2856_1, r2856_4 +# 2857| r2857_1(glval) = VariableAddress[shadowed] : +# 2857| r2857_2(int) = Load[shadowed] : &:r2857_1, ~m? +# 2857| r2857_3(int) = Constant[0] : +# 2857| r2857_4(bool) = CompareGT : r2857_2, r2857_3 +# 2857| v2857_5(void) = ConditionalBranch : r2857_4 +#-----| True -> Block 6 + +# 2859| Block 6 +# 2859| r2859_1(glval) = VariableAddress[x] : +# 2859| r2859_2(short) = Load[x] : &:r2859_1, ~m? +# 2859| r2859_3(int) = Constant[0] : +# 2859| r2859_4(bool) = CompareGT : r2859_2, r2859_3 +# 2859| v2859_5(void) = ConditionalBranch : r2859_4 +#-----| True -> Block 7 + +# 2860| Block 7 +# 2860| v2860_1(void) = NoOp : +# 2846| v2846_10(void) = ReturnVoid : +# 2846| v2846_11(void) = AliasedUse : ~m? +# 2846| v2846_12(void) = ExitFunction : + +# 2867| void (unnamed namespace)::complex_assertions(int, bool, int) +# 2867| Block 0 +# 2867| v2867_1(void) = EnterFunction : +# 2867| mu2867_2(unknown) = AliasedDefinition : +# 2867| mu2867_3(unknown) = InitializeNonLocal : +# 2867| r2867_4(glval) = VariableAddress[x] : +# 2867| mu2867_5(int) = InitializeParameter[x] : &:r2867_4 +# 2867| r2867_6(glval) = VariableAddress[b] : +# 2867| mu2867_7(bool) = InitializeParameter[b] : &:r2867_6 +# 2867| r2867_8(glval) = VariableAddress[max] : +# 2867| mu2867_9(int) = InitializeParameter[max] : &:r2867_8 +# 2868| r2868_1(glval) = VariableAddress[y] : +# 2868| r2868_2(int) = Constant[0] : +# 2868| v2868_3(void) = Convert : r2868_2 +# 2868| r2868_4(glval) = VariableAddress[x] : +# 2868| r2868_5(int) = Load[x] : &:r2868_4, ~m? +# 2868| r2868_6(int) = CopyValue : r2868_5 +# 2868| mu2868_7(int) = Store[y] : &:r2868_1, r2868_6 +# 2869| r2869_1(glval) = VariableAddress[z] : +# 2869| r2869_2(glval) = VariableAddress[b] : +# 2869| r2869_3(bool) = Load[b] : &:r2869_2, ~m? +# 2869| v2869_4(void) = ConditionalBranch : r2869_3 +#-----| False -> Block 5 +#-----| True -> Block 4 + +# 2867| Block 1 +# 2867| v2867_10(void) = AliasedUse : ~m? +# 2867| v2867_11(void) = ExitFunction : + +# 2867| Block 2 +# 2867| v2867_12(void) = Unwind : +#-----| Goto -> Block 1 + +# 2869| Block 3 +# 2869| r2869_5(glval) = VariableAddress[#temp2869:17] : +# 2869| r2869_6(int) = Load[#temp2869:17] : &:r2869_5, ~m? +# 2869| mu2869_7(int) = Store[z] : &:r2869_1, r2869_6 +# 2872| r2872_1(glval) = VariableAddress[#throw2872:13] : +# 2872| r2872_2(int) = Constant[41] : +# 2872| mu2872_3(int) = Store[#throw2872:13] : &:r2872_1, r2872_2 +# 2872| v2872_4(void) = ThrowValue : &:r2872_1, ~m? +#-----| C++ Exception -> Block 6 + +# 2869| Block 4 +# 2869| r2869_8(int) = Constant[0] : +# 2869| r2869_9(glval) = VariableAddress[#temp2869:17] : +# 2869| mu2869_10(int) = Store[#temp2869:17] : &:r2869_9, r2869_8 +#-----| Goto -> Block 3 + +# 2869| Block 5 +# 2869| r2869_11(int) = Constant[1] : +# 2869| r2869_12(glval) = VariableAddress[#temp2869:17] : +# 2869| mu2869_13(int) = Store[#temp2869:17] : &:r2869_12, r2869_11 +#-----| Goto -> Block 3 + +# 2873| Block 6 +# 2873| v2873_1(void) = CatchByType[int] : +#-----| C++ Exception -> Block 2 +#-----| Goto -> Block 7 + +# 2873| Block 7 +# 2873| r2873_2(glval) = VariableAddress[c] : +# 2873| mu2873_3(int) = InitializeParameter[c] : &:r2873_2 +# 2874| r2874_1(glval) = VariableAddress[c] : +# 2874| r2874_2(int) = Load[c] : &:r2874_1, ~m? +# 2874| r2874_3(int) = Constant[42] : +# 2874| r2874_4(bool) = CompareLT : r2874_2, r2874_3 +# 2874| v2874_5(void) = ConditionalBranch : r2874_4 +#-----| True -> Block 8 + +# 2875| Block 8 +# 2875| r2875_1(int) = Constant[0] : +# 2875| v2875_2(void) = Convert : r2875_1 +# 2878| r2878_1(int) = Constant[0] : +# 2878| v2878_2(void) = Convert : r2878_1 +# 2879| r2879_1(glval) = VariableAddress[shadowed] : +# 2879| mu2879_2(int) = Uninitialized[shadowed] : &:r2879_1 +# 2882| r2882_1(glval) = VariableAddress[#throw2882:13] : +# 2882| r2882_2(int) = Constant[41] : +# 2882| mu2882_3(int) = Store[#throw2882:13] : &:r2882_1, r2882_2 +# 2882| v2882_4(void) = ThrowValue : &:r2882_1, ~m? +#-----| C++ Exception -> Block 9 + +# 2883| Block 9 +# 2883| v2883_1(void) = CatchByType[int] : +#-----| C++ Exception -> Block 2 +#-----| Goto -> Block 10 + +# 2883| Block 10 +# 2883| r2883_2(glval) = VariableAddress[shadowed] : +# 2883| mu2883_3(int) = InitializeParameter[shadowed] : &:r2883_2 +# 2884| r2884_1(int) = Constant[0] : +# 2884| v2884_2(void) = Convert : r2884_1 +# 2886| v2886_1(void) = NoOp : +# 2867| v2867_13(void) = ReturnVoid : +#-----| Goto -> Block 1 + ir23.cpp: # 1| bool consteval_1() # 1| Block 0 diff --git a/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/lowerBound.expected b/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/lowerBound.expected index 0c520190c8b0..6bb1f192e1df 100644 --- a/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/lowerBound.expected +++ b/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/lowerBound.expected @@ -1025,6 +1025,7 @@ | test.c:970:12:970:12 | y | 256 | | test.c:971:9:971:9 | x | 2147483647 | | test.c:972:9:972:9 | y | 256 | +| test.c:985:7:985:7 | e | -2147483648 | | test.cpp:10:7:10:7 | b | -2147483648 | | test.cpp:11:5:11:5 | x | -2147483648 | | test.cpp:13:10:13:10 | x | -2147483648 | @@ -1093,3 +1094,64 @@ | test.cpp:122:4:122:4 | n | 0 | | test.cpp:122:8:122:8 | n | 0 | | test.cpp:122:12:122:12 | n | 1 | +| test_nr_of_bounds.cpp:40:5:40:20 | x | 0 | +| test_nr_of_bounds.cpp:40:5:40:20 | x | 0 | +| test_nr_of_bounds.cpp:41:5:41:20 | x | 0 | +| test_nr_of_bounds.cpp:41:5:41:20 | x | 0 | +| test_nr_of_bounds.cpp:42:5:42:20 | x | 0 | +| test_nr_of_bounds.cpp:42:5:42:20 | x | 0 | +| test_nr_of_bounds.cpp:43:5:43:20 | x | 0 | +| test_nr_of_bounds.cpp:43:5:43:20 | x | 0 | +| test_nr_of_bounds.cpp:44:5:44:20 | x | 0 | +| test_nr_of_bounds.cpp:44:5:44:20 | x | 0 | +| test_nr_of_bounds.cpp:45:5:45:20 | x | 0 | +| test_nr_of_bounds.cpp:45:5:45:20 | x | 0 | +| test_nr_of_bounds.cpp:46:5:46:20 | x | 0 | +| test_nr_of_bounds.cpp:46:5:46:20 | x | 0 | +| test_nr_of_bounds.cpp:47:5:47:20 | x | 0 | +| test_nr_of_bounds.cpp:47:5:47:20 | x | 0 | +| test_nr_of_bounds.cpp:48:5:48:20 | x | 0 | +| test_nr_of_bounds.cpp:48:5:48:20 | x | 0 | +| test_nr_of_bounds.cpp:49:5:49:20 | x | 0 | +| test_nr_of_bounds.cpp:49:5:49:20 | x | 0 | +| test_nr_of_bounds.cpp:50:5:50:20 | x | 0 | +| test_nr_of_bounds.cpp:50:5:50:20 | x | 0 | +| test_nr_of_bounds.cpp:51:5:51:20 | x | 0 | +| test_nr_of_bounds.cpp:51:5:51:20 | x | 0 | +| test_nr_of_bounds.cpp:52:5:52:20 | x | 0 | +| test_nr_of_bounds.cpp:52:5:52:20 | x | 0 | +| test_nr_of_bounds.cpp:53:5:53:20 | x | 0 | +| test_nr_of_bounds.cpp:53:5:53:20 | x | 0 | +| test_nr_of_bounds.cpp:54:5:54:20 | x | 0 | +| test_nr_of_bounds.cpp:54:5:54:20 | x | 0 | +| test_nr_of_bounds.cpp:55:5:55:20 | x | 0 | +| test_nr_of_bounds.cpp:55:5:55:20 | x | 0 | +| test_nr_of_bounds.cpp:56:5:56:20 | x | 0 | +| test_nr_of_bounds.cpp:56:5:56:20 | x | 0 | +| test_nr_of_bounds.cpp:57:5:57:20 | x | 0 | +| test_nr_of_bounds.cpp:57:5:57:20 | x | 0 | +| test_nr_of_bounds.cpp:58:5:58:20 | x | 0 | +| test_nr_of_bounds.cpp:58:5:58:20 | x | 0 | +| test_nr_of_bounds.cpp:59:5:59:20 | x | 0 | +| test_nr_of_bounds.cpp:59:5:59:20 | x | 0 | +| test_nr_of_bounds.cpp:60:5:60:20 | x | 0 | +| test_nr_of_bounds.cpp:60:5:60:20 | x | 0 | +| test_nr_of_bounds.cpp:61:5:61:20 | x | 0 | +| test_nr_of_bounds.cpp:61:5:61:20 | x | 0 | +| test_nr_of_bounds.cpp:62:5:62:20 | x | 0 | +| test_nr_of_bounds.cpp:62:5:62:20 | x | 0 | +| test_nr_of_bounds.cpp:63:5:63:20 | x | 0 | +| test_nr_of_bounds.cpp:63:5:63:20 | x | 0 | +| test_nr_of_bounds.cpp:64:5:64:20 | x | 0 | +| test_nr_of_bounds.cpp:64:5:64:20 | x | 0 | +| test_nr_of_bounds.cpp:65:5:65:21 | x | 0 | +| test_nr_of_bounds.cpp:65:5:65:21 | x | 0 | +| test_nr_of_bounds.cpp:66:5:66:21 | x | 0 | +| test_nr_of_bounds.cpp:66:5:66:21 | x | 0 | +| test_nr_of_bounds.cpp:67:5:67:21 | x | 0 | +| test_nr_of_bounds.cpp:67:5:67:21 | x | 0 | +| test_nr_of_bounds.cpp:68:5:68:21 | x | 0 | +| test_nr_of_bounds.cpp:68:5:68:21 | x | 0 | +| test_nr_of_bounds.cpp:69:5:69:21 | x | 0 | +| test_nr_of_bounds.cpp:69:5:69:21 | x | 0 | +| test_nr_of_bounds.cpp:72:12:72:12 | x | 0 | diff --git a/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/nrOfBounds.expected b/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/nrOfBounds.expected index 7d583e47f5bb..b46aebbbf646 100644 --- a/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/nrOfBounds.expected +++ b/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/nrOfBounds.expected @@ -4546,6 +4546,13 @@ estimateNrOfBounds | test.c:970:18:970:20 | 512 | 1.0 | | test.c:971:9:971:9 | x | 1.0 | | test.c:972:9:972:9 | y | 1.0 | +| test.c:977:9:977:11 | 1 | 1.0 | +| test.c:978:9:978:11 | 2 | 1.0 | +| test.c:979:9:979:11 | 4 | 1.0 | +| test.c:980:9:980:11 | 8 | 1.0 | +| test.c:981:9:981:12 | 16 | 1.0 | +| test.c:985:7:985:7 | (int)... | 1.0 | +| test.c:985:7:985:7 | e | 1.0 | | test.cpp:9:11:9:12 | - ... | 1.0 | | test.cpp:9:12:9:12 | 1 | 1.0 | | test.cpp:10:7:10:7 | (bool)... | 1.0 | @@ -4721,3 +4728,394 @@ estimateNrOfBounds | test.cpp:122:4:122:4 | n | 8.0 | | test.cpp:122:8:122:8 | n | 8.0 | | test.cpp:122:12:122:12 | n | 8.0 | +| test_nr_of_bounds.cpp:2:9:2:11 | 1 | 1.0 | +| test_nr_of_bounds.cpp:3:9:3:11 | 2 | 1.0 | +| test_nr_of_bounds.cpp:4:9:4:11 | 4 | 1.0 | +| test_nr_of_bounds.cpp:5:9:5:11 | 8 | 1.0 | +| test_nr_of_bounds.cpp:6:9:6:12 | 16 | 1.0 | +| test_nr_of_bounds.cpp:7:9:7:12 | 32 | 1.0 | +| test_nr_of_bounds.cpp:8:9:8:12 | 64 | 1.0 | +| test_nr_of_bounds.cpp:9:9:9:12 | 128 | 1.0 | +| test_nr_of_bounds.cpp:10:9:10:13 | 256 | 1.0 | +| test_nr_of_bounds.cpp:11:9:11:13 | 512 | 1.0 | +| test_nr_of_bounds.cpp:12:9:12:13 | 1024 | 1.0 | +| test_nr_of_bounds.cpp:13:9:13:13 | 2048 | 1.0 | +| test_nr_of_bounds.cpp:14:9:14:14 | 4096 | 1.0 | +| test_nr_of_bounds.cpp:15:9:15:14 | 8192 | 1.0 | +| test_nr_of_bounds.cpp:16:9:16:14 | 16384 | 1.0 | +| test_nr_of_bounds.cpp:17:9:17:14 | 32768 | 1.0 | +| test_nr_of_bounds.cpp:18:9:18:15 | 65536 | 1.0 | +| test_nr_of_bounds.cpp:19:9:19:15 | 131072 | 1.0 | +| test_nr_of_bounds.cpp:20:9:20:15 | 262144 | 1.0 | +| test_nr_of_bounds.cpp:21:9:21:15 | 524288 | 1.0 | +| test_nr_of_bounds.cpp:22:9:22:16 | 1048576 | 1.0 | +| test_nr_of_bounds.cpp:23:9:23:16 | 2097152 | 1.0 | +| test_nr_of_bounds.cpp:24:9:24:16 | 4194304 | 1.0 | +| test_nr_of_bounds.cpp:25:9:25:16 | 8388608 | 1.0 | +| test_nr_of_bounds.cpp:26:9:26:17 | 16777216 | 1.0 | +| test_nr_of_bounds.cpp:27:10:27:18 | 33554432 | 1.0 | +| test_nr_of_bounds.cpp:28:10:28:18 | 67108864 | 1.0 | +| test_nr_of_bounds.cpp:29:10:29:18 | 134217728 | 1.0 | +| test_nr_of_bounds.cpp:30:10:30:19 | 268435456 | 1.0 | +| test_nr_of_bounds.cpp:31:10:31:19 | 536870912 | 1.0 | +| test_nr_of_bounds.cpp:40:5:40:19 | ... & ... | 1.0 | +| test_nr_of_bounds.cpp:40:5:40:19 | ... -= ... | 1.0 | +| test_nr_of_bounds.cpp:40:5:40:19 | ... == ... | 1.0 | +| test_nr_of_bounds.cpp:40:5:40:20 | (...) | 1.0 | +| test_nr_of_bounds.cpp:40:5:40:20 | x | 1.0 | +| test_nr_of_bounds.cpp:40:5:40:20 | x | 1.0 | +| test_nr_of_bounds.cpp:40:19:40:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:40:19:40:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:40:19:40:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:40:19:40:19 | A | 1.0 | +| test_nr_of_bounds.cpp:40:19:40:19 | A | 1.0 | +| test_nr_of_bounds.cpp:40:19:40:19 | A | 1.0 | +| test_nr_of_bounds.cpp:41:5:41:19 | ... & ... | 2.0 | +| test_nr_of_bounds.cpp:41:5:41:19 | ... -= ... | 2.0 | +| test_nr_of_bounds.cpp:41:5:41:19 | ... == ... | 1.0 | +| test_nr_of_bounds.cpp:41:5:41:20 | (...) | 2.0 | +| test_nr_of_bounds.cpp:41:5:41:20 | x | 2.0 | +| test_nr_of_bounds.cpp:41:5:41:20 | x | 2.0 | +| test_nr_of_bounds.cpp:41:19:41:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:41:19:41:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:41:19:41:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:41:19:41:19 | B | 1.0 | +| test_nr_of_bounds.cpp:41:19:41:19 | B | 1.0 | +| test_nr_of_bounds.cpp:41:19:41:19 | B | 1.0 | +| test_nr_of_bounds.cpp:42:5:42:19 | ... & ... | 4.0 | +| test_nr_of_bounds.cpp:42:5:42:19 | ... -= ... | 4.0 | +| test_nr_of_bounds.cpp:42:5:42:19 | ... == ... | 1.0 | +| test_nr_of_bounds.cpp:42:5:42:20 | (...) | 4.0 | +| test_nr_of_bounds.cpp:42:5:42:20 | x | 4.0 | +| test_nr_of_bounds.cpp:42:5:42:20 | x | 4.0 | +| test_nr_of_bounds.cpp:42:19:42:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:42:19:42:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:42:19:42:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:42:19:42:19 | C | 1.0 | +| test_nr_of_bounds.cpp:42:19:42:19 | C | 1.0 | +| test_nr_of_bounds.cpp:42:19:42:19 | C | 1.0 | +| test_nr_of_bounds.cpp:43:5:43:19 | ... & ... | 8.0 | +| test_nr_of_bounds.cpp:43:5:43:19 | ... -= ... | 8.0 | +| test_nr_of_bounds.cpp:43:5:43:19 | ... == ... | 1.0 | +| test_nr_of_bounds.cpp:43:5:43:20 | (...) | 8.0 | +| test_nr_of_bounds.cpp:43:5:43:20 | x | 8.0 | +| test_nr_of_bounds.cpp:43:5:43:20 | x | 8.0 | +| test_nr_of_bounds.cpp:43:19:43:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:43:19:43:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:43:19:43:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:43:19:43:19 | D | 1.0 | +| test_nr_of_bounds.cpp:43:19:43:19 | D | 1.0 | +| test_nr_of_bounds.cpp:43:19:43:19 | D | 1.0 | +| test_nr_of_bounds.cpp:44:5:44:19 | ... & ... | 16.0 | +| test_nr_of_bounds.cpp:44:5:44:19 | ... -= ... | 16.0 | +| test_nr_of_bounds.cpp:44:5:44:19 | ... == ... | 1.0 | +| test_nr_of_bounds.cpp:44:5:44:20 | (...) | 16.0 | +| test_nr_of_bounds.cpp:44:5:44:20 | x | 16.0 | +| test_nr_of_bounds.cpp:44:5:44:20 | x | 16.0 | +| test_nr_of_bounds.cpp:44:19:44:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:44:19:44:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:44:19:44:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:44:19:44:19 | E | 1.0 | +| test_nr_of_bounds.cpp:44:19:44:19 | E | 1.0 | +| test_nr_of_bounds.cpp:44:19:44:19 | E | 1.0 | +| test_nr_of_bounds.cpp:45:5:45:19 | ... & ... | 32.0 | +| test_nr_of_bounds.cpp:45:5:45:19 | ... -= ... | 32.0 | +| test_nr_of_bounds.cpp:45:5:45:19 | ... == ... | 1.0 | +| test_nr_of_bounds.cpp:45:5:45:20 | (...) | 32.0 | +| test_nr_of_bounds.cpp:45:5:45:20 | x | 32.0 | +| test_nr_of_bounds.cpp:45:5:45:20 | x | 32.0 | +| test_nr_of_bounds.cpp:45:19:45:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:45:19:45:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:45:19:45:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:45:19:45:19 | F | 1.0 | +| test_nr_of_bounds.cpp:45:19:45:19 | F | 1.0 | +| test_nr_of_bounds.cpp:45:19:45:19 | F | 1.0 | +| test_nr_of_bounds.cpp:46:5:46:19 | ... & ... | 64.0 | +| test_nr_of_bounds.cpp:46:5:46:19 | ... -= ... | 64.0 | +| test_nr_of_bounds.cpp:46:5:46:19 | ... == ... | 1.0 | +| test_nr_of_bounds.cpp:46:5:46:20 | (...) | 64.0 | +| test_nr_of_bounds.cpp:46:5:46:20 | x | 64.0 | +| test_nr_of_bounds.cpp:46:5:46:20 | x | 64.0 | +| test_nr_of_bounds.cpp:46:19:46:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:46:19:46:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:46:19:46:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:46:19:46:19 | G | 1.0 | +| test_nr_of_bounds.cpp:46:19:46:19 | G | 1.0 | +| test_nr_of_bounds.cpp:46:19:46:19 | G | 1.0 | +| test_nr_of_bounds.cpp:47:5:47:19 | ... & ... | 128.0 | +| test_nr_of_bounds.cpp:47:5:47:19 | ... -= ... | 128.0 | +| test_nr_of_bounds.cpp:47:5:47:19 | ... == ... | 1.0 | +| test_nr_of_bounds.cpp:47:5:47:20 | (...) | 128.0 | +| test_nr_of_bounds.cpp:47:5:47:20 | x | 128.0 | +| test_nr_of_bounds.cpp:47:5:47:20 | x | 128.0 | +| test_nr_of_bounds.cpp:47:19:47:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:47:19:47:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:47:19:47:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:47:19:47:19 | H | 1.0 | +| test_nr_of_bounds.cpp:47:19:47:19 | H | 1.0 | +| test_nr_of_bounds.cpp:47:19:47:19 | H | 1.0 | +| test_nr_of_bounds.cpp:48:5:48:19 | ... & ... | 256.0 | +| test_nr_of_bounds.cpp:48:5:48:19 | ... -= ... | 256.0 | +| test_nr_of_bounds.cpp:48:5:48:19 | ... == ... | 1.0 | +| test_nr_of_bounds.cpp:48:5:48:20 | (...) | 256.0 | +| test_nr_of_bounds.cpp:48:5:48:20 | x | 256.0 | +| test_nr_of_bounds.cpp:48:5:48:20 | x | 256.0 | +| test_nr_of_bounds.cpp:48:19:48:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:48:19:48:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:48:19:48:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:48:19:48:19 | I | 1.0 | +| test_nr_of_bounds.cpp:48:19:48:19 | I | 1.0 | +| test_nr_of_bounds.cpp:48:19:48:19 | I | 1.0 | +| test_nr_of_bounds.cpp:49:5:49:19 | ... & ... | 512.0 | +| test_nr_of_bounds.cpp:49:5:49:19 | ... -= ... | 512.0 | +| test_nr_of_bounds.cpp:49:5:49:19 | ... == ... | 1.0 | +| test_nr_of_bounds.cpp:49:5:49:20 | (...) | 512.0 | +| test_nr_of_bounds.cpp:49:5:49:20 | x | 512.0 | +| test_nr_of_bounds.cpp:49:5:49:20 | x | 512.0 | +| test_nr_of_bounds.cpp:49:19:49:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:49:19:49:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:49:19:49:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:49:19:49:19 | J | 1.0 | +| test_nr_of_bounds.cpp:49:19:49:19 | J | 1.0 | +| test_nr_of_bounds.cpp:49:19:49:19 | J | 1.0 | +| test_nr_of_bounds.cpp:50:5:50:19 | ... & ... | 1024.0 | +| test_nr_of_bounds.cpp:50:5:50:19 | ... -= ... | 1024.0 | +| test_nr_of_bounds.cpp:50:5:50:19 | ... == ... | 1.0 | +| test_nr_of_bounds.cpp:50:5:50:20 | (...) | 1024.0 | +| test_nr_of_bounds.cpp:50:5:50:20 | x | 1024.0 | +| test_nr_of_bounds.cpp:50:5:50:20 | x | 1024.0 | +| test_nr_of_bounds.cpp:50:19:50:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:50:19:50:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:50:19:50:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:50:19:50:19 | L | 1.0 | +| test_nr_of_bounds.cpp:50:19:50:19 | L | 1.0 | +| test_nr_of_bounds.cpp:50:19:50:19 | L | 1.0 | +| test_nr_of_bounds.cpp:51:5:51:19 | ... & ... | 2048.0 | +| test_nr_of_bounds.cpp:51:5:51:19 | ... -= ... | 2048.0 | +| test_nr_of_bounds.cpp:51:5:51:19 | ... == ... | 1.0 | +| test_nr_of_bounds.cpp:51:5:51:20 | (...) | 2048.0 | +| test_nr_of_bounds.cpp:51:5:51:20 | x | 2048.0 | +| test_nr_of_bounds.cpp:51:5:51:20 | x | 2048.0 | +| test_nr_of_bounds.cpp:51:19:51:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:51:19:51:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:51:19:51:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:51:19:51:19 | M | 1.0 | +| test_nr_of_bounds.cpp:51:19:51:19 | M | 1.0 | +| test_nr_of_bounds.cpp:51:19:51:19 | M | 1.0 | +| test_nr_of_bounds.cpp:52:5:52:19 | ... & ... | 4096.0 | +| test_nr_of_bounds.cpp:52:5:52:19 | ... -= ... | 4096.0 | +| test_nr_of_bounds.cpp:52:5:52:19 | ... == ... | 1.0 | +| test_nr_of_bounds.cpp:52:5:52:20 | (...) | 4096.0 | +| test_nr_of_bounds.cpp:52:5:52:20 | x | 4096.0 | +| test_nr_of_bounds.cpp:52:5:52:20 | x | 4096.0 | +| test_nr_of_bounds.cpp:52:19:52:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:52:19:52:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:52:19:52:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:52:19:52:19 | N | 1.0 | +| test_nr_of_bounds.cpp:52:19:52:19 | N | 1.0 | +| test_nr_of_bounds.cpp:52:19:52:19 | N | 1.0 | +| test_nr_of_bounds.cpp:53:5:53:19 | ... & ... | 8192.0 | +| test_nr_of_bounds.cpp:53:5:53:19 | ... -= ... | 8192.0 | +| test_nr_of_bounds.cpp:53:5:53:19 | ... == ... | 1.0 | +| test_nr_of_bounds.cpp:53:5:53:20 | (...) | 8192.0 | +| test_nr_of_bounds.cpp:53:5:53:20 | x | 8192.0 | +| test_nr_of_bounds.cpp:53:5:53:20 | x | 8192.0 | +| test_nr_of_bounds.cpp:53:19:53:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:53:19:53:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:53:19:53:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:53:19:53:19 | O | 1.0 | +| test_nr_of_bounds.cpp:53:19:53:19 | O | 1.0 | +| test_nr_of_bounds.cpp:53:19:53:19 | O | 1.0 | +| test_nr_of_bounds.cpp:54:5:54:19 | ... & ... | 16384.0 | +| test_nr_of_bounds.cpp:54:5:54:19 | ... -= ... | 16384.0 | +| test_nr_of_bounds.cpp:54:5:54:19 | ... == ... | 1.0 | +| test_nr_of_bounds.cpp:54:5:54:20 | (...) | 16384.0 | +| test_nr_of_bounds.cpp:54:5:54:20 | x | 16384.0 | +| test_nr_of_bounds.cpp:54:5:54:20 | x | 16384.0 | +| test_nr_of_bounds.cpp:54:19:54:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:54:19:54:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:54:19:54:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:54:19:54:19 | P | 1.0 | +| test_nr_of_bounds.cpp:54:19:54:19 | P | 1.0 | +| test_nr_of_bounds.cpp:54:19:54:19 | P | 1.0 | +| test_nr_of_bounds.cpp:55:5:55:19 | ... & ... | 32768.0 | +| test_nr_of_bounds.cpp:55:5:55:19 | ... -= ... | 32768.0 | +| test_nr_of_bounds.cpp:55:5:55:19 | ... == ... | 1.0 | +| test_nr_of_bounds.cpp:55:5:55:20 | (...) | 32768.0 | +| test_nr_of_bounds.cpp:55:5:55:20 | x | 32768.0 | +| test_nr_of_bounds.cpp:55:5:55:20 | x | 32768.0 | +| test_nr_of_bounds.cpp:55:19:55:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:55:19:55:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:55:19:55:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:55:19:55:19 | Q | 1.0 | +| test_nr_of_bounds.cpp:55:19:55:19 | Q | 1.0 | +| test_nr_of_bounds.cpp:55:19:55:19 | Q | 1.0 | +| test_nr_of_bounds.cpp:56:5:56:19 | ... & ... | 65536.0 | +| test_nr_of_bounds.cpp:56:5:56:19 | ... -= ... | 65536.0 | +| test_nr_of_bounds.cpp:56:5:56:19 | ... == ... | 1.0 | +| test_nr_of_bounds.cpp:56:5:56:20 | (...) | 65536.0 | +| test_nr_of_bounds.cpp:56:5:56:20 | x | 65536.0 | +| test_nr_of_bounds.cpp:56:5:56:20 | x | 65536.0 | +| test_nr_of_bounds.cpp:56:19:56:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:56:19:56:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:56:19:56:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:56:19:56:19 | R | 1.0 | +| test_nr_of_bounds.cpp:56:19:56:19 | R | 1.0 | +| test_nr_of_bounds.cpp:56:19:56:19 | R | 1.0 | +| test_nr_of_bounds.cpp:57:5:57:19 | ... & ... | 131072.0 | +| test_nr_of_bounds.cpp:57:5:57:19 | ... -= ... | 131072.0 | +| test_nr_of_bounds.cpp:57:5:57:19 | ... == ... | 1.0 | +| test_nr_of_bounds.cpp:57:5:57:20 | (...) | 131072.0 | +| test_nr_of_bounds.cpp:57:5:57:20 | x | 131072.0 | +| test_nr_of_bounds.cpp:57:5:57:20 | x | 131072.0 | +| test_nr_of_bounds.cpp:57:19:57:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:57:19:57:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:57:19:57:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:57:19:57:19 | S | 1.0 | +| test_nr_of_bounds.cpp:57:19:57:19 | S | 1.0 | +| test_nr_of_bounds.cpp:57:19:57:19 | S | 1.0 | +| test_nr_of_bounds.cpp:58:5:58:19 | ... & ... | 262144.0 | +| test_nr_of_bounds.cpp:58:5:58:19 | ... -= ... | 262144.0 | +| test_nr_of_bounds.cpp:58:5:58:19 | ... == ... | 1.0 | +| test_nr_of_bounds.cpp:58:5:58:20 | (...) | 262144.0 | +| test_nr_of_bounds.cpp:58:5:58:20 | x | 262144.0 | +| test_nr_of_bounds.cpp:58:5:58:20 | x | 262144.0 | +| test_nr_of_bounds.cpp:58:19:58:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:58:19:58:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:58:19:58:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:58:19:58:19 | T | 1.0 | +| test_nr_of_bounds.cpp:58:19:58:19 | T | 1.0 | +| test_nr_of_bounds.cpp:58:19:58:19 | T | 1.0 | +| test_nr_of_bounds.cpp:59:5:59:19 | ... & ... | 524288.0 | +| test_nr_of_bounds.cpp:59:5:59:19 | ... -= ... | 524288.0 | +| test_nr_of_bounds.cpp:59:5:59:19 | ... == ... | 1.0 | +| test_nr_of_bounds.cpp:59:5:59:20 | (...) | 524288.0 | +| test_nr_of_bounds.cpp:59:5:59:20 | x | 524288.0 | +| test_nr_of_bounds.cpp:59:5:59:20 | x | 524288.0 | +| test_nr_of_bounds.cpp:59:19:59:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:59:19:59:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:59:19:59:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:59:19:59:19 | U | 1.0 | +| test_nr_of_bounds.cpp:59:19:59:19 | U | 1.0 | +| test_nr_of_bounds.cpp:59:19:59:19 | U | 1.0 | +| test_nr_of_bounds.cpp:60:5:60:19 | ... & ... | 1048576.0 | +| test_nr_of_bounds.cpp:60:5:60:19 | ... -= ... | 1048576.0 | +| test_nr_of_bounds.cpp:60:5:60:19 | ... == ... | 1.0 | +| test_nr_of_bounds.cpp:60:5:60:20 | (...) | 1048576.0 | +| test_nr_of_bounds.cpp:60:5:60:20 | x | 1048576.0 | +| test_nr_of_bounds.cpp:60:5:60:20 | x | 1048576.0 | +| test_nr_of_bounds.cpp:60:19:60:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:60:19:60:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:60:19:60:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:60:19:60:19 | V | 1.0 | +| test_nr_of_bounds.cpp:60:19:60:19 | V | 1.0 | +| test_nr_of_bounds.cpp:60:19:60:19 | V | 1.0 | +| test_nr_of_bounds.cpp:61:5:61:19 | ... & ... | 2097152.0 | +| test_nr_of_bounds.cpp:61:5:61:19 | ... -= ... | 2097152.0 | +| test_nr_of_bounds.cpp:61:5:61:19 | ... == ... | 1.0 | +| test_nr_of_bounds.cpp:61:5:61:20 | (...) | 2097152.0 | +| test_nr_of_bounds.cpp:61:5:61:20 | x | 2097152.0 | +| test_nr_of_bounds.cpp:61:5:61:20 | x | 2097152.0 | +| test_nr_of_bounds.cpp:61:19:61:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:61:19:61:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:61:19:61:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:61:19:61:19 | W | 1.0 | +| test_nr_of_bounds.cpp:61:19:61:19 | W | 1.0 | +| test_nr_of_bounds.cpp:61:19:61:19 | W | 1.0 | +| test_nr_of_bounds.cpp:62:5:62:19 | ... & ... | 4194304.0 | +| test_nr_of_bounds.cpp:62:5:62:19 | ... -= ... | 4194304.0 | +| test_nr_of_bounds.cpp:62:5:62:19 | ... == ... | 1.0 | +| test_nr_of_bounds.cpp:62:5:62:20 | (...) | 4194304.0 | +| test_nr_of_bounds.cpp:62:5:62:20 | x | 4194304.0 | +| test_nr_of_bounds.cpp:62:5:62:20 | x | 4194304.0 | +| test_nr_of_bounds.cpp:62:19:62:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:62:19:62:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:62:19:62:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:62:19:62:19 | X | 1.0 | +| test_nr_of_bounds.cpp:62:19:62:19 | X | 1.0 | +| test_nr_of_bounds.cpp:62:19:62:19 | X | 1.0 | +| test_nr_of_bounds.cpp:63:5:63:19 | ... & ... | 8388608.0 | +| test_nr_of_bounds.cpp:63:5:63:19 | ... -= ... | 8388608.0 | +| test_nr_of_bounds.cpp:63:5:63:19 | ... == ... | 1.0 | +| test_nr_of_bounds.cpp:63:5:63:20 | (...) | 8388608.0 | +| test_nr_of_bounds.cpp:63:5:63:20 | x | 8388608.0 | +| test_nr_of_bounds.cpp:63:5:63:20 | x | 8388608.0 | +| test_nr_of_bounds.cpp:63:19:63:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:63:19:63:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:63:19:63:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:63:19:63:19 | Y | 1.0 | +| test_nr_of_bounds.cpp:63:19:63:19 | Y | 1.0 | +| test_nr_of_bounds.cpp:63:19:63:19 | Y | 1.0 | +| test_nr_of_bounds.cpp:64:5:64:19 | ... & ... | 1.6777216E7 | +| test_nr_of_bounds.cpp:64:5:64:19 | ... -= ... | 1.6777216E7 | +| test_nr_of_bounds.cpp:64:5:64:19 | ... == ... | 1.0 | +| test_nr_of_bounds.cpp:64:5:64:20 | (...) | 1.6777216E7 | +| test_nr_of_bounds.cpp:64:5:64:20 | x | 1.6777216E7 | +| test_nr_of_bounds.cpp:64:5:64:20 | x | 1.6777216E7 | +| test_nr_of_bounds.cpp:64:19:64:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:64:19:64:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:64:19:64:19 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:64:19:64:19 | Z | 1.0 | +| test_nr_of_bounds.cpp:64:19:64:19 | Z | 1.0 | +| test_nr_of_bounds.cpp:64:19:64:19 | Z | 1.0 | +| test_nr_of_bounds.cpp:65:5:65:20 | ... & ... | 3.3554432E7 | +| test_nr_of_bounds.cpp:65:5:65:20 | ... -= ... | 3.3554432E7 | +| test_nr_of_bounds.cpp:65:5:65:20 | ... == ... | 1.0 | +| test_nr_of_bounds.cpp:65:5:65:21 | (...) | 3.3554432E7 | +| test_nr_of_bounds.cpp:65:5:65:21 | x | 3.3554432E7 | +| test_nr_of_bounds.cpp:65:5:65:21 | x | 3.3554432E7 | +| test_nr_of_bounds.cpp:65:19:65:20 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:65:19:65:20 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:65:19:65:20 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:65:19:65:20 | AA | 1.0 | +| test_nr_of_bounds.cpp:65:19:65:20 | AA | 1.0 | +| test_nr_of_bounds.cpp:65:19:65:20 | AA | 1.0 | +| test_nr_of_bounds.cpp:66:5:66:20 | ... & ... | 6.7108864E7 | +| test_nr_of_bounds.cpp:66:5:66:20 | ... -= ... | 6.7108864E7 | +| test_nr_of_bounds.cpp:66:5:66:20 | ... == ... | 1.0 | +| test_nr_of_bounds.cpp:66:5:66:21 | (...) | 6.7108864E7 | +| test_nr_of_bounds.cpp:66:5:66:21 | x | 6.7108864E7 | +| test_nr_of_bounds.cpp:66:5:66:21 | x | 6.7108864E7 | +| test_nr_of_bounds.cpp:66:19:66:20 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:66:19:66:20 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:66:19:66:20 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:66:19:66:20 | AB | 1.0 | +| test_nr_of_bounds.cpp:66:19:66:20 | AB | 1.0 | +| test_nr_of_bounds.cpp:66:19:66:20 | AB | 1.0 | +| test_nr_of_bounds.cpp:67:5:67:20 | ... & ... | 1.34217728E8 | +| test_nr_of_bounds.cpp:67:5:67:20 | ... -= ... | 1.34217728E8 | +| test_nr_of_bounds.cpp:67:5:67:20 | ... == ... | 1.0 | +| test_nr_of_bounds.cpp:67:5:67:21 | (...) | 1.34217728E8 | +| test_nr_of_bounds.cpp:67:5:67:21 | x | 1.34217728E8 | +| test_nr_of_bounds.cpp:67:5:67:21 | x | 1.34217728E8 | +| test_nr_of_bounds.cpp:67:19:67:20 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:67:19:67:20 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:67:19:67:20 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:67:19:67:20 | AC | 1.0 | +| test_nr_of_bounds.cpp:67:19:67:20 | AC | 1.0 | +| test_nr_of_bounds.cpp:67:19:67:20 | AC | 1.0 | +| test_nr_of_bounds.cpp:68:5:68:20 | ... & ... | 2.68435456E8 | +| test_nr_of_bounds.cpp:68:5:68:20 | ... -= ... | 2.68435456E8 | +| test_nr_of_bounds.cpp:68:5:68:20 | ... == ... | 1.0 | +| test_nr_of_bounds.cpp:68:5:68:21 | (...) | 2.68435456E8 | +| test_nr_of_bounds.cpp:68:5:68:21 | x | 2.68435456E8 | +| test_nr_of_bounds.cpp:68:5:68:21 | x | 2.68435456E8 | +| test_nr_of_bounds.cpp:68:19:68:20 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:68:19:68:20 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:68:19:68:20 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:68:19:68:20 | AD | 1.0 | +| test_nr_of_bounds.cpp:68:19:68:20 | AD | 1.0 | +| test_nr_of_bounds.cpp:68:19:68:20 | AD | 1.0 | +| test_nr_of_bounds.cpp:69:5:69:20 | ... & ... | 5.36870912E8 | +| test_nr_of_bounds.cpp:69:5:69:20 | ... -= ... | 5.36870912E8 | +| test_nr_of_bounds.cpp:69:5:69:20 | ... == ... | 1.0 | +| test_nr_of_bounds.cpp:69:5:69:21 | (...) | 5.36870912E8 | +| test_nr_of_bounds.cpp:69:5:69:21 | x | 5.36870912E8 | +| test_nr_of_bounds.cpp:69:5:69:21 | x | 5.36870912E8 | +| test_nr_of_bounds.cpp:69:19:69:20 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:69:19:69:20 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:69:19:69:20 | (unsigned int)... | 1.0 | +| test_nr_of_bounds.cpp:69:19:69:20 | AE | 1.0 | +| test_nr_of_bounds.cpp:69:19:69:20 | AE | 1.0 | +| test_nr_of_bounds.cpp:69:19:69:20 | AE | 1.0 | +| test_nr_of_bounds.cpp:72:12:72:12 | x | 1.073741824E9 | diff --git a/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/nrOfBounds.ql b/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/nrOfBounds.ql index efafcf6e684b..5539dc0720ba 100644 --- a/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/nrOfBounds.ql +++ b/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/nrOfBounds.ql @@ -14,8 +14,14 @@ private predicate nonFunctionalNrOfBounds(Expr e) { strictcount(SimpleRangeAnalysisInternal::estimateNrOfBounds(e)) > 1 } +private predicate nrOfBoundsNotEq1(Expr e, int n) { + e.getFile().getBaseName() = "test_nr_of_bounds.cpp" and + n = count(SimpleRangeAnalysisInternal::estimateNrOfBounds(e)) and + n != 1 +} + module FunctionalityTest implements TestSig { - string getARelevantTag() { result = "nonFunctionalNrOfBounds" } + string getARelevantTag() { result = ["nonFunctionalNrOfBounds", "bounds"] } predicate hasActualResult(Location location, string element, string tag, string value) { exists(Expr e | @@ -25,6 +31,14 @@ module FunctionalityTest implements TestSig { tag = "nonFunctionalNrOfBounds" and value = "" ) + or + exists(Expr e, int n | + nrOfBoundsNotEq1(e, n) and + location = e.getLocation() and + element = e.toString() and + tag = "bounds" and + value = n.toString() + ) } } diff --git a/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/test.c b/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/test.c index d394eb637ab1..71f28e8f605c 100644 --- a/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/test.c +++ b/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/test.c @@ -972,3 +972,15 @@ void test_overflow() { out(y); } } + +enum MY_ENUM_2 { + A = 0x1, + B = 0x2, + C = 0x4, + D = 0x8, + E = 0x10 +}; + +void test_enum(enum MY_ENUM_2 e) { + out(e); +} \ No newline at end of file diff --git a/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/test_nr_of_bounds.cpp b/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/test_nr_of_bounds.cpp new file mode 100644 index 000000000000..4c78d719053f --- /dev/null +++ b/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/test_nr_of_bounds.cpp @@ -0,0 +1,73 @@ +enum MY_ENUM { + A = 0x1, + B = 0x2, + C = 0x4, + D = 0x8, + E = 0x10, + F = 0x20, + G = 0x40, + H = 0x80, + I = 0x100, + J = 0x200, + L = 0x400, + M = 0x800, + N = 0x1000, + O = 0x2000, + P = 0x4000, + Q = 0x8000, + R = 0x10000, + S = 0x20000, + T = 0x40000, + U = 0x80000, + V = 0x100000, + W = 0x200000, + X = 0x400000, + Y = 0x800000, + Z = 0x1000000, + AA = 0x2000000, + AB = 0x4000000, + AC = 0x8000000, + AD = 0x10000000, + AE = 0x20000000 +}; + +typedef unsigned int MY_ENUM_FLAGS; + +MY_ENUM_FLAGS check_and_subs(MY_ENUM_FLAGS x) +{ + + #define CHECK_AND_SUB(flag) if ((x & flag) == flag) { x -= flag; } + CHECK_AND_SUB(A); + CHECK_AND_SUB(B); + CHECK_AND_SUB(C); + CHECK_AND_SUB(D); + CHECK_AND_SUB(E); + CHECK_AND_SUB(F); + CHECK_AND_SUB(G); + CHECK_AND_SUB(H); + CHECK_AND_SUB(I); + CHECK_AND_SUB(J); + CHECK_AND_SUB(L); + CHECK_AND_SUB(M); + CHECK_AND_SUB(N); + CHECK_AND_SUB(O); + CHECK_AND_SUB(P); + CHECK_AND_SUB(Q); + CHECK_AND_SUB(R); + CHECK_AND_SUB(S); + CHECK_AND_SUB(T); + CHECK_AND_SUB(U); + CHECK_AND_SUB(V); + CHECK_AND_SUB(W); + CHECK_AND_SUB(X); + CHECK_AND_SUB(Y); + CHECK_AND_SUB(Z); + CHECK_AND_SUB(AA); + CHECK_AND_SUB(AB); + CHECK_AND_SUB(AC); + CHECK_AND_SUB(AD); + CHECK_AND_SUB(AE); + #undef CHECK_AND_SUB + + return x; +} \ No newline at end of file diff --git a/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/upperBound.expected b/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/upperBound.expected index dd7fc398f0ca..a4aee501a940 100644 --- a/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/upperBound.expected +++ b/cpp/ql/test/library-tests/rangeanalysis/SimpleRangeAnalysis/upperBound.expected @@ -1025,6 +1025,7 @@ | test.c:970:12:970:12 | y | 256 | | test.c:971:9:971:9 | x | 2147483647 | | test.c:972:9:972:9 | y | 256 | +| test.c:985:7:985:7 | e | 2147483647 | | test.cpp:10:7:10:7 | b | 2147483647 | | test.cpp:11:5:11:5 | x | 2147483647 | | test.cpp:13:10:13:10 | x | 2147483647 | @@ -1093,3 +1094,64 @@ | test.cpp:122:4:122:4 | n | 32767 | | test.cpp:122:8:122:8 | n | 0 | | test.cpp:122:12:122:12 | n | 32767 | +| test_nr_of_bounds.cpp:40:5:40:20 | x | 4294967295 | +| test_nr_of_bounds.cpp:40:5:40:20 | x | 4294967295 | +| test_nr_of_bounds.cpp:41:5:41:20 | x | 4294967295 | +| test_nr_of_bounds.cpp:41:5:41:20 | x | 4294967295 | +| test_nr_of_bounds.cpp:42:5:42:20 | x | 4294967295 | +| test_nr_of_bounds.cpp:42:5:42:20 | x | 4294967295 | +| test_nr_of_bounds.cpp:43:5:43:20 | x | 4294967295 | +| test_nr_of_bounds.cpp:43:5:43:20 | x | 4294967295 | +| test_nr_of_bounds.cpp:44:5:44:20 | x | 4294967295 | +| test_nr_of_bounds.cpp:44:5:44:20 | x | 4294967295 | +| test_nr_of_bounds.cpp:45:5:45:20 | x | 4294967295 | +| test_nr_of_bounds.cpp:45:5:45:20 | x | 4294967295 | +| test_nr_of_bounds.cpp:46:5:46:20 | x | 4294967295 | +| test_nr_of_bounds.cpp:46:5:46:20 | x | 4294967295 | +| test_nr_of_bounds.cpp:47:5:47:20 | x | 4294967295 | +| test_nr_of_bounds.cpp:47:5:47:20 | x | 4294967295 | +| test_nr_of_bounds.cpp:48:5:48:20 | x | 4294967295 | +| test_nr_of_bounds.cpp:48:5:48:20 | x | 4294967295 | +| test_nr_of_bounds.cpp:49:5:49:20 | x | 4294967295 | +| test_nr_of_bounds.cpp:49:5:49:20 | x | 4294967295 | +| test_nr_of_bounds.cpp:50:5:50:20 | x | 4294967295 | +| test_nr_of_bounds.cpp:50:5:50:20 | x | 4294967295 | +| test_nr_of_bounds.cpp:51:5:51:20 | x | 4294967295 | +| test_nr_of_bounds.cpp:51:5:51:20 | x | 4294967295 | +| test_nr_of_bounds.cpp:52:5:52:20 | x | 4294967295 | +| test_nr_of_bounds.cpp:52:5:52:20 | x | 4294967295 | +| test_nr_of_bounds.cpp:53:5:53:20 | x | 4294967295 | +| test_nr_of_bounds.cpp:53:5:53:20 | x | 4294967295 | +| test_nr_of_bounds.cpp:54:5:54:20 | x | 4294967295 | +| test_nr_of_bounds.cpp:54:5:54:20 | x | 4294967295 | +| test_nr_of_bounds.cpp:55:5:55:20 | x | 4294967295 | +| test_nr_of_bounds.cpp:55:5:55:20 | x | 4294967295 | +| test_nr_of_bounds.cpp:56:5:56:20 | x | 4294967295 | +| test_nr_of_bounds.cpp:56:5:56:20 | x | 4294967295 | +| test_nr_of_bounds.cpp:57:5:57:20 | x | 4294967295 | +| test_nr_of_bounds.cpp:57:5:57:20 | x | 4294967295 | +| test_nr_of_bounds.cpp:58:5:58:20 | x | 4294967295 | +| test_nr_of_bounds.cpp:58:5:58:20 | x | 4294967295 | +| test_nr_of_bounds.cpp:59:5:59:20 | x | 4294967295 | +| test_nr_of_bounds.cpp:59:5:59:20 | x | 4294967295 | +| test_nr_of_bounds.cpp:60:5:60:20 | x | 4294967295 | +| test_nr_of_bounds.cpp:60:5:60:20 | x | 4294967295 | +| test_nr_of_bounds.cpp:61:5:61:20 | x | 4294967295 | +| test_nr_of_bounds.cpp:61:5:61:20 | x | 4294967295 | +| test_nr_of_bounds.cpp:62:5:62:20 | x | 4294967295 | +| test_nr_of_bounds.cpp:62:5:62:20 | x | 4294967295 | +| test_nr_of_bounds.cpp:63:5:63:20 | x | 4294967295 | +| test_nr_of_bounds.cpp:63:5:63:20 | x | 4294967295 | +| test_nr_of_bounds.cpp:64:5:64:20 | x | 4294967295 | +| test_nr_of_bounds.cpp:64:5:64:20 | x | 4294967295 | +| test_nr_of_bounds.cpp:65:5:65:21 | x | 4294967295 | +| test_nr_of_bounds.cpp:65:5:65:21 | x | 4294967295 | +| test_nr_of_bounds.cpp:66:5:66:21 | x | 4294967295 | +| test_nr_of_bounds.cpp:66:5:66:21 | x | 4294967295 | +| test_nr_of_bounds.cpp:67:5:67:21 | x | 4294967295 | +| test_nr_of_bounds.cpp:67:5:67:21 | x | 4294967295 | +| test_nr_of_bounds.cpp:68:5:68:21 | x | 4294967295 | +| test_nr_of_bounds.cpp:68:5:68:21 | x | 4294967295 | +| test_nr_of_bounds.cpp:69:5:69:21 | x | 4294967295 | +| test_nr_of_bounds.cpp:69:5:69:21 | x | 4294967295 | +| test_nr_of_bounds.cpp:72:12:72:12 | x | 4294967295 | diff --git a/csharp/autobuilder/Semmle.Autobuild.CSharp.Tests/BuildScripts.cs b/csharp/autobuilder/Semmle.Autobuild.CSharp.Tests/BuildScripts.cs index 7eb0d539812c..a8ce96539169 100644 --- a/csharp/autobuilder/Semmle.Autobuild.CSharp.Tests/BuildScripts.cs +++ b/csharp/autobuilder/Semmle.Autobuild.CSharp.Tests/BuildScripts.cs @@ -158,6 +158,10 @@ IEnumerable IBuildActions.EnumerateDirectories(string dir) bool IBuildActions.IsMacOs() => IsMacOs; + public bool IsLinux { get; set; } + + bool IBuildActions.IsLinux() => IsLinux; + public bool IsRunningOnAppleSilicon { get; set; } bool IBuildActions.IsRunningOnAppleSilicon() => IsRunningOnAppleSilicon; diff --git a/csharp/autobuilder/Semmle.Autobuild.Cpp.Tests/BuildScripts.cs b/csharp/autobuilder/Semmle.Autobuild.Cpp.Tests/BuildScripts.cs index afa4ea4b41c3..fd5e4073d6d9 100644 --- a/csharp/autobuilder/Semmle.Autobuild.Cpp.Tests/BuildScripts.cs +++ b/csharp/autobuilder/Semmle.Autobuild.Cpp.Tests/BuildScripts.cs @@ -146,6 +146,10 @@ IEnumerable IBuildActions.EnumerateDirectories(string dir) bool IBuildActions.IsMacOs() => IsMacOs; + public bool IsLinux { get; set; } + + bool IBuildActions.IsLinux() => IsLinux; + public bool IsRunningOnAppleSilicon { get; set; } bool IBuildActions.IsRunningOnAppleSilicon() => IsRunningOnAppleSilicon; diff --git a/csharp/documentation/library-coverage/coverage.csv b/csharp/documentation/library-coverage/coverage.csv index c75661cc3dda..5dbefc4c8167 100644 --- a/csharp/documentation/library-coverage/coverage.csv +++ b/csharp/documentation/library-coverage/coverage.csv @@ -44,5 +44,5 @@ NHibernate,3,,,,,,,,,,,,3,,,,,,,,,, Newtonsoft.Json,,,91,,,,,,,,,,,,,,,,,,,73,18 ServiceStack,194,,7,27,,,,,75,,,,92,,,,,,,,,7, SourceGenerators,,,5,,,,,,,,,,,,,,,,,,,,5 -System,59,47,12491,,6,5,12,,,4,1,,31,2,,6,15,17,4,3,,6378,6113 +System,59,47,12495,,6,5,12,,,4,1,,31,2,,6,15,17,4,3,,6382,6113 Windows.Security.Cryptography.Core,1,,,,,,,1,,,,,,,,,,,,,,, diff --git a/csharp/documentation/library-coverage/coverage.rst b/csharp/documentation/library-coverage/coverage.rst index 3f67bec413dc..4061f675b859 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,12491,59,5 + System,"``System.*``, ``System``",47,12495,59,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``, ``NHibernate``, ``Newtonsoft.Json``, ``SourceGenerators``, ``Windows.Security.Cryptography.Core``",60,2406,162,4 - Totals,,107,14904,415,9 + Totals,,107,14908,415,9 diff --git a/csharp/downgrades/178a7e6cf335486d33d4e49543148e3f57f04a9a/old.dbscheme b/csharp/downgrades/178a7e6cf335486d33d4e49543148e3f57f04a9a/old.dbscheme new file mode 100644 index 000000000000..178a7e6cf335 --- /dev/null +++ b/csharp/downgrades/178a7e6cf335486d33d4e49543148e3f57f04a9a/old.dbscheme @@ -0,0 +1,1489 @@ +/* This is a dummy line to alter the dbscheme, so we can make a database upgrade + * without actually changing any of the dbscheme predicates. It contains a date + * to allow for such updates in the future as well. + * + * 2021-07-14 + * + * DO NOT remove this comment carelessly, since it can revert the dbscheme back to a + * previously seen state (matching a previously seen SHA), which would make the upgrade + * mechanism not work properly. + */ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * csc f1.cs f2.cs f3.cs + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + unique int id : @compilation, + string cwd : string 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 + * + * csc f1.cs f2.cs f3.cs + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | --compiler + * 1 | *path to compiler* + * 2 | f1.cs + * 3 | f2.cs + * 4 | f3.cs + */ +#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.rsp` 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 + * + * csc f1.cs f2.cs f3.cs + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.cs + * 1 | f2.cs + * 2 | f3.cs + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The references used by a compiler invocation. + * If `id` is for the compiler invocation + * + * csc f1.cs f2.cs f3.cs /r:ref1.dll /r:ref2.dll /r:ref3.dll + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | ref1.dll + * 1 | ref2.dll + * 2 | ref3.dll + */ +#keyset[id, num] +compilation_referencing_files( + int id : @compilation ref, + int num : int ref, + int file : @file 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 +); + +/** + * 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 +); + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location ref +); + +extractor_messages( + unique int id: @extractor_message, + int severity: int ref, + string origin : string ref, + string text : string ref, + string entity : string ref, + int location: @location ref, + string stack_trace : string 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`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +compilation_assembly( + unique int id : @compilation ref, + int assembly: @assembly ref +) + +// Populated by the CSV extractor +externalData( + int id: @externalDataElement, + string path: string ref, + int column: int ref, + string value: string ref); + +sourceLocationPrefix( + string prefix: string ref); + +/* + * Overlay support + */ + +/** + * The CLI will automatically emit the tuple `databaseMetadata("isOverlay", "true")`, + * along with an `overlayChangedFiles` tuple for each new/modified/deleted file, + * when building an overlay database, and these can be used by the discard predicates. + */ +databaseMetadata( + string metadataKey : string ref, + string value : string ref +); + +overlayChangedFiles( + string path : string ref +); + +/* + * C# dbscheme + */ + +/** ELEMENTS **/ + +@element = @declaration | @stmt | @expr | @modifier | @attribute | @namespace_declaration + | @using_directive | @type_parameter_constraints | @externalDataElement + | @xmllocatable | @asp_element | @namespace | @preprocessor_directive; + +@declaration = @callable | @generic | @assignable | @namespace; + +@named_element = @namespace | @declaration; + +@declaration_with_accessors = @property | @indexer | @event; + +@assignable = @variable | @assignable_with_accessors | @event; + +@assignable_with_accessors = @property | @indexer; + +@attributable = @assembly | @field | @parameter | @operator | @method | @constructor + | @destructor | @callable_accessor | @value_or_ref_type | @declaration_with_accessors + | @local_function | @lambda_expr; + +/** LOCATIONS, ASEMMBLIES, MODULES, FILES and FOLDERS **/ + +@location = @location_default | @assembly; + +@locatable = @declaration_with_accessors | @callable_accessor | @declaration_or_directive + | @diagnostic | @extractor_message | @preprocessor_directive | @attribute | @type_mention | @type_parameter_constraints + | @declaration_with_accessors | @callable_accessor | @operator | @method + | @constructor | @destructor | @field | @local_variable | @parameter | @stmt | @expr + | @xmllocatable | @commentline | @commentblock | @asp_element + +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); + +locations_mapped( + unique int id: @location_default ref, + int mapped_to: @location_default ref); + +@sourceline = @file | @callable | @xmllocatable; + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref); + +assemblies( + unique int id: @assembly, + int file: @file ref, + string fullname: string ref, + string name: string ref, + string version: string 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); + +file_extraction_mode( + unique int file: @file ref, + int mode: int ref + /* 0 = normal, 1 = standalone extractor */ + ); + +/** NAMESPACES **/ + +@type_container = @namespace | @type; + +namespaces( + unique int id: @namespace, + string name: string ref); + +namespace_declarations( + unique int id: @namespace_declaration, + int namespace_id: @namespace ref); + +namespace_declaration_location( + unique int id: @namespace_declaration ref, + int loc: @location ref); + +parent_namespace( + unique int child_id: @type_container ref, + int namespace_id: @namespace ref); + +@declaration_or_directive = @namespace_declaration | @type | @using_directive; + +parent_namespace_declaration( + int child_id: @declaration_or_directive ref, // cannot be unique because of partial classes + int namespace_id: @namespace_declaration ref); + +@using_directive = @using_namespace_directive | @using_static_directive; + +using_global( + unique int id: @using_directive ref +); + +using_namespace_directives( + unique int id: @using_namespace_directive, + int namespace_id: @namespace ref); + +using_static_directives( + unique int id: @using_static_directive, + int type_id: @type_or_ref ref); + +using_directive_location( + unique int id: @using_directive ref, + int loc: @location ref); + +@preprocessor_directive = @pragma_warning | @pragma_checksum | @directive_define | @directive_undefine | @directive_warning + | @directive_error | @directive_nullable | @directive_line | @directive_region | @directive_endregion | @directive_if + | @directive_elif | @directive_else | @directive_endif; + +@conditional_directive = @directive_if | @directive_elif; +@branch_directive = @directive_if | @directive_elif | @directive_else; + +directive_ifs( + unique int id: @directive_if, + int branchTaken: int ref, /* 0: false, 1: true */ + int conditionValue: int ref); /* 0: false, 1: true */ + +directive_elifs( + unique int id: @directive_elif, + int branchTaken: int ref, /* 0: false, 1: true */ + int conditionValue: int ref, /* 0: false, 1: true */ + int parent: @directive_if ref, + int index: int ref); + +directive_elses( + unique int id: @directive_else, + int branchTaken: int ref, /* 0: false, 1: true */ + int parent: @directive_if ref, + int index: int ref); + +#keyset[id, start] +directive_endifs( + unique int id: @directive_endif, + unique int start: @directive_if ref); + +directive_define_symbols( + unique int id: @define_symbol_expr ref, + string name: string ref); + +directive_regions( + unique int id: @directive_region, + string name: string ref); + +#keyset[id, start] +directive_endregions( + unique int id: @directive_endregion, + unique int start: @directive_region ref); + +directive_lines( + unique int id: @directive_line, + int kind: int ref); /* 0: default, 1: hidden, 2: numeric, 3: span */ + +directive_line_value( + unique int id: @directive_line ref, + int line: int ref); + +directive_line_file( + unique int id: @directive_line ref, + int file: @file ref); + +directive_line_offset( + unique int id: @directive_line ref, + int offset: int ref); + +directive_line_span( + unique int id: @directive_line ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref); + +directive_nullables( + unique int id: @directive_nullable, + int setting: int ref, /* 0: disable, 1: enable, 2: restore */ + int target: int ref); /* 0: none, 1: annotations, 2: warnings */ + +directive_warnings( + unique int id: @directive_warning, + string message: string ref); + +directive_errors( + unique int id: @directive_error, + string message: string ref); + +directive_undefines( + unique int id: @directive_undefine, + string name: string ref); + +directive_defines( + unique int id: @directive_define, + string name: string ref); + +pragma_checksums( + unique int id: @pragma_checksum, + int file: @file ref, + string guid: string ref, + string bytes: string ref); + +pragma_warnings( + unique int id: @pragma_warning, + int kind: int ref /* 0 = disable, 1 = restore */); + +#keyset[id, index] +pragma_warning_error_codes( + int id: @pragma_warning ref, + string errorCode: string ref, + int index: int ref); + +preprocessor_directive_location( + unique int id: @preprocessor_directive ref, + int loc: @location ref); + +preprocessor_directive_compilation( + int id: @preprocessor_directive ref, + int compilation: @compilation ref); + +preprocessor_directive_active( + unique int id: @preprocessor_directive ref, + int active: int ref); /* 0: false, 1: true */ + +/** TYPES **/ + +types( + unique int id: @type, + int kind: int ref, + string name: string ref); + +case @type.kind of + 1 = @bool_type +| 2 = @char_type +| 3 = @decimal_type +| 4 = @sbyte_type +| 5 = @short_type +| 6 = @int_type +| 7 = @long_type +| 8 = @byte_type +| 9 = @ushort_type +| 10 = @uint_type +| 11 = @ulong_type +| 12 = @float_type +| 13 = @double_type +| 14 = @enum_type +| 15 = @struct_type +| 17 = @class_type +| 19 = @interface_type +| 20 = @delegate_type +| 21 = @null_type +| 22 = @type_parameter +| 23 = @pointer_type +| 24 = @nullable_type +| 25 = @array_type +| 26 = @void_type +| 27 = @int_ptr_type +| 28 = @uint_ptr_type +| 29 = @dynamic_type +| 30 = @arglist_type +| 31 = @unknown_type +| 32 = @tuple_type +| 33 = @function_pointer_type +| 34 = @inline_array_type +| 35 = @extension_type + ; + +@simple_type = @bool_type | @char_type | @integral_type | @floating_point_type | @decimal_type; +@integral_type = @signed_integral_type | @unsigned_integral_type; +@signed_integral_type = @sbyte_type | @short_type | @int_type | @long_type; +@unsigned_integral_type = @byte_type | @ushort_type | @uint_type | @ulong_type; +@floating_point_type = @float_type | @double_type; +@value_type = @simple_type | @enum_type | @struct_type | @nullable_type | @int_ptr_type + | @uint_ptr_type | @tuple_type | @void_type | @inline_array_type; +@ref_type = @class_type | @interface_type | @array_type | @delegate_type | @null_type + | @dynamic_type | @extension_type; +@value_or_ref_type = @value_type | @ref_type; + +typerefs( + unique int id: @typeref, + string name: string ref); + +typeref_type( + int id: @typeref ref, + unique int typeId: @type ref); + +@type_or_ref = @type | @typeref; + +array_element_type( + unique int array: @array_type ref, + int dimension: int ref, + int rank: int ref, + int element: @type_or_ref ref); + +nullable_underlying_type( + unique int nullable: @nullable_type ref, + int underlying: @type_or_ref ref); + +pointer_referent_type( + unique int pointer: @pointer_type ref, + int referent: @type_or_ref ref); + +enum_underlying_type( + unique int enum_id: @enum_type ref, + int underlying_type_id: @type_or_ref ref); + +delegate_return_type( + unique int delegate_id: @delegate_type ref, + int return_type_id: @type_or_ref ref); + +function_pointer_return_type( + unique int function_pointer_id: @function_pointer_type ref, + int return_type_id: @type_or_ref ref); + +extension_receiver_type( + unique int extension: @extension_type ref, + int receiver_type_id: @type_or_ref ref); + +extend( + int sub: @type ref, + int super: @type_or_ref ref); + +anonymous_types( + unique int id: @type ref); + +@interface_or_ref = @interface_type | @typeref; + +implement( + int sub: @type ref, + int super: @type_or_ref ref); + +type_location( + int id: @type ref, + int loc: @location ref); + +tuple_underlying_type( + unique int tuple: @tuple_type ref, + int struct: @type_or_ref ref); + +#keyset[tuple, index] +tuple_element( + int tuple: @tuple_type ref, + int index: int ref, + unique int field: @field ref); + +attributes( + unique int id: @attribute, + int kind: int ref, + int type_id: @type_or_ref ref, + int target: @attributable ref); + +case @attribute.kind of + 0 = @attribute_default +| 1 = @attribute_return +| 2 = @attribute_assembly +| 3 = @attribute_module +; + +attribute_location( + int id: @attribute ref, + int loc: @location ref); + +@type_mention_parent = @element | @type_mention; + +type_mention( + unique int id: @type_mention, + int type_id: @type_or_ref ref, + int parent: @type_mention_parent ref); + +type_mention_location( + unique int id: @type_mention ref, + int loc: @location ref); + +@has_type_annotation = @assignable | @type_parameter | @callable | @expr | @delegate_type | @generic | @function_pointer_type; + +/** + * A direct annotation on an entity, for example `string? x;`. + * + * Annotations: + * 2 = reftype is not annotated "!" + * 3 = reftype is annotated "?" + * 4 = readonly ref type / in parameter + * 5 = ref type parameter, return or local variable + * 6 = out parameter + * + * Note that the annotation depends on the element it annotates. + * @assignable: The annotation is on the type of the assignable, for example the variable type. + * @type_parameter: The annotation is on the reftype constraint + * @callable: The annotation is on the return type + * @array_type: The annotation is on the element type + */ +type_annotation(int id: @has_type_annotation ref, int annotation: int ref); + +nullability(unique int nullability: @nullability, int kind: int ref); + +case @nullability.kind of + 0 = @oblivious +| 1 = @not_annotated +| 2 = @annotated +; + +#keyset[parent, index] +nullability_parent(int nullability: @nullability ref, int index: int ref, int parent: @nullability ref) + +type_nullability(int id: @has_type_annotation ref, int nullability: @nullability ref); + +/** + * The nullable flow state of an expression, as determined by Roslyn. + * 0 = none (default, not populated) + * 1 = not null + * 2 = maybe null + */ +expr_flowstate(unique int id: @expr ref, int state: int ref); + +/** GENERICS **/ + +@generic = @type | @method | @local_function; + +type_parameters( + unique int id: @type_parameter ref, + int index: int ref, + int generic_id: @generic ref, + int variance: int ref /* none = 0, out = 1, in = 2 */); + +#keyset[constructed_id, index] +type_arguments( + int id: @type_or_ref ref, + int index: int ref, + int constructed_id: @generic_or_ref ref); + +@generic_or_ref = @generic | @typeref; + +constructed_generic( + unique int constructed: @generic ref, + int generic: @generic_or_ref ref); + +type_parameter_constraints( + unique int id: @type_parameter_constraints, + int param_id: @type_parameter ref); + +type_parameter_constraints_location( + int id: @type_parameter_constraints ref, + int loc: @location ref); + +general_type_parameter_constraints( + int id: @type_parameter_constraints ref, + int kind: int ref /* class = 1, struct = 2, new = 3 */); + +specific_type_parameter_constraints( + int id: @type_parameter_constraints ref, + int base_id: @type_or_ref ref); + +specific_type_parameter_nullability( + int id: @type_parameter_constraints ref, + int base_id: @type_or_ref ref, + int nullability: @nullability ref); + +/** FUNCTION POINTERS */ + +function_pointer_calling_conventions( + int id: @function_pointer_type ref, + int kind: int ref); + +#keyset[id, index] +has_unmanaged_calling_conventions( + int id: @function_pointer_type ref, + int index: int ref, + int conv_id: @type_or_ref ref); + +/** MODIFIERS */ + +@modifiable = @modifiable_direct | @event_accessor; + +@modifiable_direct = @member | @accessor | @local_function | @anonymous_function_expr; + +modifiers( + unique int id: @modifier, + string name: string ref); + +has_modifiers( + int id: @modifiable_direct ref, + int mod_id: @modifier ref); + +/** MEMBERS **/ + +@member = @method | @constructor | @destructor | @field | @property | @event | @operator | @indexer | @type; + +@named_exprorstmt = @goto_stmt | @labeled_stmt | @expr; + +@virtualizable = @method | @property | @indexer | @event | @operator; + +exprorstmt_name( + unique int parent_id: @named_exprorstmt ref, + string name: string ref); + +nested_types( + unique int id: @type ref, + int declaring_type_id: @type ref, + int unbound_id: @type ref); + +properties( + unique int id: @property, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @property ref); + +property_location( + int id: @property ref, + int loc: @location ref); + +indexers( + unique int id: @indexer, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @indexer ref); + +indexer_location( + int id: @indexer ref, + int loc: @location ref); + +accessors( + unique int id: @accessor, + int kind: int ref, + string name: string ref, + int declaring_member_id: @member ref, + int unbound_id: @accessor ref); + +case @accessor.kind of + 1 = @getter +| 2 = @setter + ; + +init_only_accessors( + unique int id: @accessor ref); + +accessor_location( + int id: @accessor ref, + int loc: @location ref); + +events( + unique int id: @event, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @event ref); + +event_location( + int id: @event ref, + int loc: @location ref); + +event_accessors( + unique int id: @event_accessor, + int kind: int ref, + string name: string ref, + int declaring_event_id: @event ref, + int unbound_id: @event_accessor ref); + +case @event_accessor.kind of + 1 = @add_event_accessor +| 2 = @remove_event_accessor + ; + +event_accessor_location( + int id: @event_accessor ref, + int loc: @location ref); + +operators( + unique int id: @operator, + string name: string ref, + string symbol: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @operator ref); + +operator_location( + int id: @operator ref, + int loc: @location ref); + +constant_value( + int id: @variable ref, + string value: string ref); + +/** CALLABLES **/ + +@callable = @method | @constructor | @destructor | @operator | @callable_accessor | @anonymous_function_expr | @local_function; + +@callable_accessor = @accessor | @event_accessor; + +methods( + unique int id: @method, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @method ref); + +method_location( + int id: @method ref, + int loc: @location ref); + +constructors( + unique int id: @constructor, + string name: string ref, + int declaring_type_id: @type ref, + int unbound_id: @constructor ref); + +constructor_location( + int id: @constructor ref, + int loc: @location ref); + +destructors( + unique int id: @destructor, + string name: string ref, + int declaring_type_id: @type ref, + int unbound_id: @destructor ref); + +destructor_location( + int id: @destructor ref, + int loc: @location ref); + +overrides( + int id: @callable ref, + int base_id: @callable ref); + +explicitly_implements( + int id: @member ref, + int interface_id: @interface_or_ref ref); + +local_functions( + unique int id: @local_function, + string name: string ref, + int return_type: @type ref, + int unbound_id: @local_function ref); + +local_function_stmts( + unique int fn: @local_function_stmt ref, + int stmt: @local_function ref); + +/** VARIABLES **/ + +@variable = @local_scope_variable | @field; + +@local_scope_variable = @local_variable | @parameter; + +fields( + unique int id: @field, + int kind: int ref, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @field ref); + +case @field.kind of + 1 = @addressable_field +| 2 = @constant + ; + +field_location( + int id: @field ref, + int loc: @location ref); + +localvars( + unique int id: @local_variable, + int kind: int ref, + string name: string ref, + int implicitly_typed: int ref /* 0 = no, 1 = yes */, + int type_id: @type_or_ref ref, + int parent_id: @local_var_decl_expr ref); + +case @local_variable.kind of + 1 = @addressable_local_variable +| 2 = @local_constant +| 3 = @local_variable_ref + ; + +localvar_location( + unique int id: @local_variable ref, + int loc: @location ref); + +@parameterizable = @callable | @delegate_type | @indexer | @function_pointer_type | @extension_type; + +#keyset[name, parent_id] +#keyset[index, parent_id] +params( + unique int id: @parameter, + string name: string ref, + int type_id: @type_or_ref ref, + int index: int ref, + int mode: int ref, /* value = 0, ref = 1, out = 2, params/array = 3, this = 4, in = 5, ref readonly = 6 */ + int parent_id: @parameterizable ref, + int unbound_id: @parameter ref); + +param_location( + int id: @parameter ref, + int loc: @location ref); + +@has_scoped_annotation = @local_scope_variable + +scoped_annotation( + int id: @has_scoped_annotation ref, + int kind: int ref // scoped ref = 1, scoped value = 2 + ); + +/** STATEMENTS **/ + +@exprorstmt_parent = @control_flow_element | @top_level_exprorstmt_parent; + +statements( + unique int id: @stmt, + int kind: int ref); + +#keyset[index, parent] +stmt_parent( + unique int stmt: @stmt ref, + int index: int ref, + int parent: @control_flow_element ref); + +@top_level_stmt_parent = @callable; + +// [index, parent] is not a keyset because the same parent may be compiled multiple times +stmt_parent_top_level( + unique int stmt: @stmt ref, + int index: int ref, + int parent: @top_level_stmt_parent ref); + +case @stmt.kind of + 1 = @block_stmt +| 2 = @expr_stmt +| 3 = @if_stmt +| 4 = @switch_stmt +| 5 = @while_stmt +| 6 = @do_stmt +| 7 = @for_stmt +| 8 = @foreach_stmt +| 9 = @break_stmt +| 10 = @continue_stmt +| 11 = @goto_stmt +| 12 = @goto_case_stmt +| 13 = @goto_default_stmt +| 14 = @throw_stmt +| 15 = @return_stmt +| 16 = @yield_stmt +| 17 = @try_stmt +| 18 = @checked_stmt +| 19 = @unchecked_stmt +| 20 = @lock_stmt +| 21 = @using_block_stmt +| 22 = @var_decl_stmt +| 23 = @const_decl_stmt +| 24 = @empty_stmt +| 25 = @unsafe_stmt +| 26 = @fixed_stmt +| 27 = @label_stmt +| 28 = @catch +| 29 = @case_stmt +| 30 = @local_function_stmt +| 31 = @using_decl_stmt + ; + +@using_stmt = @using_block_stmt | @using_decl_stmt; + +@labeled_stmt = @label_stmt | @case; + +@decl_stmt = @var_decl_stmt | @const_decl_stmt | @using_decl_stmt; + +@cond_stmt = @if_stmt | @switch_stmt; + +@loop_stmt = @while_stmt | @do_stmt | @for_stmt | @foreach_stmt; + +@jump_stmt = @break_stmt | @goto_any_stmt | @continue_stmt | @throw_stmt | @return_stmt + | @yield_stmt; + +@goto_any_stmt = @goto_default_stmt | @goto_case_stmt | @goto_stmt; + + +stmt_location( + unique int id: @stmt ref, + int loc: @location ref); + +catch_type( + unique int catch_id: @catch ref, + int type_id: @type_or_ref ref, + int kind: int ref /* explicit = 1, implicit = 2 */); + +foreach_stmt_info( + unique int id: @foreach_stmt ref, + int kind: int ref /* non-async = 1, async = 2 */); + +@foreach_symbol = @method | @property | @type_or_ref; + +#keyset[id, kind] +foreach_stmt_desugar( + int id: @foreach_stmt ref, + int symbol: @foreach_symbol ref, + int kind: int ref /* GetEnumeratorMethod = 1, CurrentProperty = 2, MoveNextMethod = 3, DisposeMethod = 4, ElementType = 5 */); + +/** EXPRESSIONS **/ + +expressions( + unique int id: @expr, + int kind: int ref, + int type_id: @type_or_ref ref); + +#keyset[index, parent] +expr_parent( + unique int expr: @expr ref, + int index: int ref, + int parent: @control_flow_element ref); + +@top_level_expr_parent = @attribute | @field | @property | @indexer | @parameter | @directive_if | @directive_elif; + +@top_level_exprorstmt_parent = @top_level_expr_parent | @top_level_stmt_parent; + +// [index, parent] is not a keyset because the same parent may be compiled multiple times +expr_parent_top_level( + unique int expr: @expr ref, + int index: int ref, + int parent: @top_level_exprorstmt_parent ref); + +case @expr.kind of +/* literal */ + 1 = @bool_literal_expr +| 2 = @char_literal_expr +| 3 = @decimal_literal_expr +| 4 = @int_literal_expr +| 5 = @long_literal_expr +| 6 = @uint_literal_expr +| 7 = @ulong_literal_expr +| 8 = @float_literal_expr +| 9 = @double_literal_expr +| 10 = @utf16_string_literal_expr +| 11 = @null_literal_expr +/* primary & unary */ +| 12 = @this_access_expr +| 13 = @base_access_expr +| 14 = @local_variable_access_expr +| 15 = @parameter_access_expr +| 16 = @field_access_expr +| 17 = @property_access_expr +| 18 = @method_access_expr +| 19 = @event_access_expr +| 20 = @indexer_access_expr +| 21 = @array_access_expr +| 22 = @type_access_expr +| 23 = @typeof_expr +| 24 = @method_invocation_expr +| 25 = @delegate_invocation_expr +| 26 = @operator_invocation_expr +| 27 = @cast_expr +| 28 = @object_creation_expr +| 29 = @explicit_delegate_creation_expr +| 30 = @implicit_delegate_creation_expr +| 31 = @array_creation_expr +| 32 = @default_expr +| 33 = @plus_expr +| 34 = @minus_expr +| 35 = @bit_not_expr +| 36 = @log_not_expr +| 37 = @post_incr_expr +| 38 = @post_decr_expr +| 39 = @pre_incr_expr +| 40 = @pre_decr_expr +/* multiplicative */ +| 41 = @mul_expr +| 42 = @div_expr +| 43 = @rem_expr +/* additive */ +| 44 = @add_expr +| 45 = @sub_expr +/* shift */ +| 46 = @lshift_expr +| 47 = @rshift_expr +/* relational */ +| 48 = @lt_expr +| 49 = @gt_expr +| 50 = @le_expr +| 51 = @ge_expr +/* equality */ +| 52 = @eq_expr +| 53 = @ne_expr +/* logical */ +| 54 = @bit_and_expr +| 55 = @bit_xor_expr +| 56 = @bit_or_expr +| 57 = @log_and_expr +| 58 = @log_or_expr +/* type testing */ +| 59 = @is_expr +| 60 = @as_expr +/* null coalescing */ +| 61 = @null_coalescing_expr +/* conditional */ +| 62 = @conditional_expr +/* assignment */ +| 63 = @simple_assign_expr +| 64 = @assign_add_expr +| 65 = @assign_sub_expr +| 66 = @assign_mul_expr +| 67 = @assign_div_expr +| 68 = @assign_rem_expr +| 69 = @assign_and_expr +| 70 = @assign_xor_expr +| 71 = @assign_or_expr +| 72 = @assign_lshift_expr +| 73 = @assign_rshift_expr +/* more */ +| 74 = @object_init_expr +| 75 = @collection_init_expr +| 76 = @array_init_expr +| 77 = @checked_expr +| 78 = @unchecked_expr +| 79 = @constructor_init_expr +| 80 = @add_event_expr +| 81 = @remove_event_expr +| 82 = @par_expr +| 83 = @local_var_decl_expr +| 84 = @lambda_expr +| 85 = @anonymous_method_expr +| 86 = @namespace_expr +/* dynamic */ +| 92 = @dynamic_element_access_expr +| 93 = @dynamic_member_access_expr +/* unsafe */ +| 100 = @pointer_indirection_expr +| 101 = @address_of_expr +| 102 = @sizeof_expr +/* async */ +| 103 = @await_expr +/* C# 6.0 */ +| 104 = @nameof_expr +| 105 = @interpolated_string_expr +| 106 = @unknown_expr +/* C# 7.0 */ +| 107 = @throw_expr +| 108 = @tuple_expr +| 109 = @local_function_invocation_expr +| 110 = @ref_expr +| 111 = @discard_expr +/* C# 8.0 */ +| 112 = @range_expr +| 113 = @index_expr +| 114 = @switch_expr +| 115 = @recursive_pattern_expr +| 116 = @property_pattern_expr +| 117 = @positional_pattern_expr +| 118 = @switch_case_expr +| 119 = @assign_coalesce_expr +| 120 = @suppress_nullable_warning_expr +| 121 = @namespace_access_expr +/* C# 9.0 */ +| 122 = @lt_pattern_expr +| 123 = @gt_pattern_expr +| 124 = @le_pattern_expr +| 125 = @ge_pattern_expr +| 126 = @not_pattern_expr +| 127 = @and_pattern_expr +| 128 = @or_pattern_expr +| 129 = @function_pointer_invocation_expr +| 130 = @with_expr +/* C# 11.0 */ +| 131 = @list_pattern_expr +| 132 = @slice_pattern_expr +| 133 = @urshift_expr +| 134 = @assign_urshift_expr +| 135 = @utf8_string_literal_expr +/* C# 12.0 */ +| 136 = @collection_expr +| 137 = @spread_element_expr +| 138 = @interpolated_string_insert_expr +/* Preprocessor */ +| 999 = @define_symbol_expr +; + +@switch = @switch_stmt | @switch_expr; +@case = @case_stmt | @switch_case_expr; +@pattern_match = @case | @is_expr; +@unary_pattern_expr = @not_pattern_expr; +@relational_pattern_expr = @gt_pattern_expr | @lt_pattern_expr | @ge_pattern_expr | @le_pattern_expr; +@binary_pattern_expr = @and_pattern_expr | @or_pattern_expr; + +@integer_literal_expr = @int_literal_expr | @long_literal_expr | @uint_literal_expr | @ulong_literal_expr; +@real_literal_expr = @float_literal_expr | @double_literal_expr | @decimal_literal_expr; +@string_literal_expr = @utf16_string_literal_expr | @utf8_string_literal_expr; +@literal_expr = @bool_literal_expr | @char_literal_expr | @integer_literal_expr | @real_literal_expr + | @string_literal_expr | @null_literal_expr; + +@assign_expr = @simple_assign_expr | @assign_op_expr | @local_var_decl_expr; +@assign_op_expr = @assign_arith_expr | @assign_bitwise_expr | @assign_event_expr | @assign_coalesce_expr; +@assign_event_expr = @add_event_expr | @remove_event_expr; + +@assign_arith_expr = @assign_add_expr | @assign_sub_expr | @assign_mul_expr | @assign_div_expr + | @assign_rem_expr +@assign_bitwise_expr = @assign_and_expr | @assign_or_expr | @assign_xor_expr + | @assign_lshift_expr | @assign_rshift_expr | @assign_urshift_expr; + +@member_access_expr = @field_access_expr | @property_access_expr | @indexer_access_expr | @event_access_expr + | @method_access_expr | @type_access_expr | @dynamic_member_access_expr; +@access_expr = @member_access_expr | @this_access_expr | @base_access_expr | @assignable_access_expr | @namespace_access_expr; +@element_access_expr = @indexer_access_expr | @array_access_expr | @dynamic_element_access_expr; + +@local_variable_access = @local_variable_access_expr | @local_var_decl_expr; +@local_scope_variable_access_expr = @parameter_access_expr | @local_variable_access; +@variable_access_expr = @local_scope_variable_access_expr | @field_access_expr; + +@assignable_access_expr = @variable_access_expr | @property_access_expr | @element_access_expr + | @event_access_expr | @dynamic_member_access_expr; + +@objectorcollection_init_expr = @object_init_expr | @collection_init_expr; + +@delegate_creation_expr = @explicit_delegate_creation_expr | @implicit_delegate_creation_expr; + +@bin_arith_op_expr = @mul_expr | @div_expr | @rem_expr | @add_expr | @sub_expr; +@incr_op_expr = @pre_incr_expr | @post_incr_expr; +@decr_op_expr = @pre_decr_expr | @post_decr_expr; +@mut_op_expr = @incr_op_expr | @decr_op_expr; +@un_arith_op_expr = @plus_expr | @minus_expr | @mut_op_expr; +@arith_op_expr = @bin_arith_op_expr | @un_arith_op_expr; + +@ternary_log_op_expr = @conditional_expr; +@bin_log_op_expr = @log_and_expr | @log_or_expr | @null_coalescing_expr; +@un_log_op_expr = @log_not_expr; +@log_expr = @un_log_op_expr | @bin_log_op_expr | @ternary_log_op_expr; + +@bin_bit_op_expr = @bit_and_expr | @bit_or_expr | @bit_xor_expr | @lshift_expr + | @rshift_expr | @urshift_expr; +@un_bit_op_expr = @bit_not_expr; +@bit_expr = @un_bit_op_expr | @bin_bit_op_expr; + +@equality_op_expr = @eq_expr | @ne_expr; +@rel_op_expr = @gt_expr | @lt_expr| @ge_expr | @le_expr; +@comp_expr = @equality_op_expr | @rel_op_expr; + +@op_expr = @assign_expr | @un_op | @bin_op | @ternary_op; + +@ternary_op = @ternary_log_op_expr; +@bin_op = @bin_arith_op_expr | @bin_log_op_expr | @bin_bit_op_expr | @comp_expr; +@un_op = @un_arith_op_expr | @un_log_op_expr | @un_bit_op_expr | @sizeof_expr + | @pointer_indirection_expr | @address_of_expr; + +@anonymous_function_expr = @lambda_expr | @anonymous_method_expr; + +@call = @method_invocation_expr | @constructor_init_expr | @operator_invocation_expr + | @delegate_invocation_expr | @object_creation_expr | @call_access_expr + | @local_function_invocation_expr | @function_pointer_invocation_expr; + +@call_access_expr = @property_access_expr | @event_access_expr | @indexer_access_expr; + +@late_bindable_expr = @dynamic_element_access_expr | @dynamic_member_access_expr + | @object_creation_expr | @method_invocation_expr | @operator_invocation_expr; + +@throw_element = @throw_expr | @throw_stmt; + +@implicitly_typeable_object_creation_expr = @object_creation_expr | @explicit_delegate_creation_expr; + +implicitly_typed_array_creation( + unique int id: @array_creation_expr ref); + +explicitly_sized_array_creation( + unique int id: @array_creation_expr ref); + +stackalloc_array_creation( + unique int id: @array_creation_expr ref); + +implicitly_typed_object_creation( + unique int id: @implicitly_typeable_object_creation_expr ref); + +mutator_invocation_mode( + unique int id: @operator_invocation_expr ref, + int mode: int ref /* prefix = 1, postfix = 2*/); + +expr_value( + unique int id: @expr ref, + string value: string ref); + +expr_call( + unique int caller_id: @expr ref, + int target_id: @callable ref); + +expr_access( + unique int accesser_id: @access_expr ref, + int target_id: @accessible ref); + +@accessible = @method | @assignable | @local_function | @namespace; + +expr_location( + unique int id: @expr ref, + int loc: @location ref); + +dynamic_member_name( + unique int id: @late_bindable_expr ref, + string name: string ref); + +@qualifiable_expr = @member_access_expr + | @method_invocation_expr + | @element_access_expr; + +conditional_access( + unique int id: @qualifiable_expr ref); + +expr_argument( + unique int id: @expr ref, + int mode: int ref); + /* mode is the same as params: value = 0, ref = 1, out = 2 */ + +expr_argument_name( + unique int id: @expr ref, + string name: string ref); + +lambda_expr_return_type( + unique int id: @lambda_expr ref, + int type_id: @type_or_ref ref); + +/* Compiler generated */ + +compiler_generated(unique int id: @element ref); + +/** CONTROL/DATA FLOW **/ + +@control_flow_element = @stmt | @expr; + +/* 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; + +/* Comments */ + +commentline( + unique int id: @commentline, + int kind: int ref, + string text: string ref, + string rawtext: string ref); + +case @commentline.kind of + 0 = @singlelinecomment +| 1 = @xmldoccomment +| 2 = @multilinecomment; + +commentline_location( + unique int id: @commentline ref, + int loc: @location ref); + +commentblock( + unique int id : @commentblock); + +commentblock_location( + unique int id: @commentblock ref, + int loc: @location ref); + +commentblock_binding( + int id: @commentblock ref, + int entity: @element ref, + int bindtype: int ref); /* 0: Parent, 1: Best, 2: Before, 3: After */ + +commentblock_child( + int id: @commentblock ref, + int commentline: @commentline ref, + int index: int ref); + +/* ASP.NET */ + +case @asp_element.kind of + 0=@asp_close_tag +| 1=@asp_code +| 2=@asp_comment +| 3=@asp_data_binding +| 4=@asp_directive +| 5=@asp_open_tag +| 6=@asp_quoted_string +| 7=@asp_text +| 8=@asp_xml_directive; + +@asp_attribute = @asp_code | @asp_data_binding | @asp_quoted_string; + +asp_elements( + unique int id: @asp_element, + int kind: int ref, + int loc: @location ref); + +asp_comment_server(unique int comment: @asp_comment ref); +asp_code_inline(unique int code: @asp_code ref); +asp_directive_attribute( + int directive: @asp_directive ref, + int index: int ref, + string name: string ref, + int value: @asp_quoted_string ref); +asp_directive_name( + unique int directive: @asp_directive ref, + string name: string ref); +asp_element_body( + unique int element: @asp_element ref, + string body: string ref); +asp_tag_attribute( + int tag: @asp_open_tag ref, + int index: int ref, + string name: string ref, + int attribute: @asp_attribute ref); +asp_tag_name( + unique int tag: @asp_open_tag ref, + string name: string ref); +asp_tag_isempty(int tag: @asp_open_tag ref); diff --git a/csharp/downgrades/178a7e6cf335486d33d4e49543148e3f57f04a9a/semmlecode.csharp.dbscheme b/csharp/downgrades/178a7e6cf335486d33d4e49543148e3f57f04a9a/semmlecode.csharp.dbscheme new file mode 100644 index 000000000000..68b5aec54e50 --- /dev/null +++ b/csharp/downgrades/178a7e6cf335486d33d4e49543148e3f57f04a9a/semmlecode.csharp.dbscheme @@ -0,0 +1,1484 @@ +/* This is a dummy line to alter the dbscheme, so we can make a database upgrade + * without actually changing any of the dbscheme predicates. It contains a date + * to allow for such updates in the future as well. + * + * 2021-07-14 + * + * DO NOT remove this comment carelessly, since it can revert the dbscheme back to a + * previously seen state (matching a previously seen SHA), which would make the upgrade + * mechanism not work properly. + */ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * csc f1.cs f2.cs f3.cs + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + unique int id : @compilation, + string cwd : string 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 + * + * csc f1.cs f2.cs f3.cs + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | --compiler + * 1 | *path to compiler* + * 2 | f1.cs + * 3 | f2.cs + * 4 | f3.cs + */ +#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.rsp` 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 + * + * csc f1.cs f2.cs f3.cs + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.cs + * 1 | f2.cs + * 2 | f3.cs + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The references used by a compiler invocation. + * If `id` is for the compiler invocation + * + * csc f1.cs f2.cs f3.cs /r:ref1.dll /r:ref2.dll /r:ref3.dll + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | ref1.dll + * 1 | ref2.dll + * 2 | ref3.dll + */ +#keyset[id, num] +compilation_referencing_files( + int id : @compilation ref, + int num : int ref, + int file : @file 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 +); + +/** + * 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 +); + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location ref +); + +extractor_messages( + unique int id: @extractor_message, + int severity: int ref, + string origin : string ref, + string text : string ref, + string entity : string ref, + int location: @location ref, + string stack_trace : string 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`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +compilation_assembly( + unique int id : @compilation ref, + int assembly: @assembly ref +) + +// Populated by the CSV extractor +externalData( + int id: @externalDataElement, + string path: string ref, + int column: int ref, + string value: string ref); + +sourceLocationPrefix( + string prefix: string ref); + +/* + * Overlay support + */ + +/** + * The CLI will automatically emit the tuple `databaseMetadata("isOverlay", "true")`, + * along with an `overlayChangedFiles` tuple for each new/modified/deleted file, + * when building an overlay database, and these can be used by the discard predicates. + */ +databaseMetadata( + string metadataKey : string ref, + string value : string ref +); + +overlayChangedFiles( + string path : string ref +); + +/* + * C# dbscheme + */ + +/** ELEMENTS **/ + +@element = @declaration | @stmt | @expr | @modifier | @attribute | @namespace_declaration + | @using_directive | @type_parameter_constraints | @externalDataElement + | @xmllocatable | @asp_element | @namespace | @preprocessor_directive; + +@declaration = @callable | @generic | @assignable | @namespace; + +@named_element = @namespace | @declaration; + +@declaration_with_accessors = @property | @indexer | @event; + +@assignable = @variable | @assignable_with_accessors | @event; + +@assignable_with_accessors = @property | @indexer; + +@attributable = @assembly | @field | @parameter | @operator | @method | @constructor + | @destructor | @callable_accessor | @value_or_ref_type | @declaration_with_accessors + | @local_function | @lambda_expr; + +/** LOCATIONS, ASEMMBLIES, MODULES, FILES and FOLDERS **/ + +@location = @location_default | @assembly; + +@locatable = @declaration_with_accessors | @callable_accessor | @declaration_or_directive + | @diagnostic | @extractor_message | @preprocessor_directive | @attribute | @type_mention | @type_parameter_constraints + | @declaration_with_accessors | @callable_accessor | @operator | @method + | @constructor | @destructor | @field | @local_variable | @parameter | @stmt | @expr + | @xmllocatable | @commentline | @commentblock | @asp_element + +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); + +locations_mapped( + unique int id: @location_default ref, + int mapped_to: @location_default ref); + +@sourceline = @file | @callable | @xmllocatable; + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref); + +assemblies( + unique int id: @assembly, + int file: @file ref, + string fullname: string ref, + string name: string ref, + string version: string 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); + +file_extraction_mode( + unique int file: @file ref, + int mode: int ref + /* 0 = normal, 1 = standalone extractor */ + ); + +/** NAMESPACES **/ + +@type_container = @namespace | @type; + +namespaces( + unique int id: @namespace, + string name: string ref); + +namespace_declarations( + unique int id: @namespace_declaration, + int namespace_id: @namespace ref); + +namespace_declaration_location( + unique int id: @namespace_declaration ref, + int loc: @location ref); + +parent_namespace( + unique int child_id: @type_container ref, + int namespace_id: @namespace ref); + +@declaration_or_directive = @namespace_declaration | @type | @using_directive; + +parent_namespace_declaration( + int child_id: @declaration_or_directive ref, // cannot be unique because of partial classes + int namespace_id: @namespace_declaration ref); + +@using_directive = @using_namespace_directive | @using_static_directive; + +using_global( + unique int id: @using_directive ref +); + +using_namespace_directives( + unique int id: @using_namespace_directive, + int namespace_id: @namespace ref); + +using_static_directives( + unique int id: @using_static_directive, + int type_id: @type_or_ref ref); + +using_directive_location( + unique int id: @using_directive ref, + int loc: @location ref); + +@preprocessor_directive = @pragma_warning | @pragma_checksum | @directive_define | @directive_undefine | @directive_warning + | @directive_error | @directive_nullable | @directive_line | @directive_region | @directive_endregion | @directive_if + | @directive_elif | @directive_else | @directive_endif; + +@conditional_directive = @directive_if | @directive_elif; +@branch_directive = @directive_if | @directive_elif | @directive_else; + +directive_ifs( + unique int id: @directive_if, + int branchTaken: int ref, /* 0: false, 1: true */ + int conditionValue: int ref); /* 0: false, 1: true */ + +directive_elifs( + unique int id: @directive_elif, + int branchTaken: int ref, /* 0: false, 1: true */ + int conditionValue: int ref, /* 0: false, 1: true */ + int parent: @directive_if ref, + int index: int ref); + +directive_elses( + unique int id: @directive_else, + int branchTaken: int ref, /* 0: false, 1: true */ + int parent: @directive_if ref, + int index: int ref); + +#keyset[id, start] +directive_endifs( + unique int id: @directive_endif, + unique int start: @directive_if ref); + +directive_define_symbols( + unique int id: @define_symbol_expr ref, + string name: string ref); + +directive_regions( + unique int id: @directive_region, + string name: string ref); + +#keyset[id, start] +directive_endregions( + unique int id: @directive_endregion, + unique int start: @directive_region ref); + +directive_lines( + unique int id: @directive_line, + int kind: int ref); /* 0: default, 1: hidden, 2: numeric, 3: span */ + +directive_line_value( + unique int id: @directive_line ref, + int line: int ref); + +directive_line_file( + unique int id: @directive_line ref, + int file: @file ref); + +directive_line_offset( + unique int id: @directive_line ref, + int offset: int ref); + +directive_line_span( + unique int id: @directive_line ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref); + +directive_nullables( + unique int id: @directive_nullable, + int setting: int ref, /* 0: disable, 1: enable, 2: restore */ + int target: int ref); /* 0: none, 1: annotations, 2: warnings */ + +directive_warnings( + unique int id: @directive_warning, + string message: string ref); + +directive_errors( + unique int id: @directive_error, + string message: string ref); + +directive_undefines( + unique int id: @directive_undefine, + string name: string ref); + +directive_defines( + unique int id: @directive_define, + string name: string ref); + +pragma_checksums( + unique int id: @pragma_checksum, + int file: @file ref, + string guid: string ref, + string bytes: string ref); + +pragma_warnings( + unique int id: @pragma_warning, + int kind: int ref /* 0 = disable, 1 = restore */); + +#keyset[id, index] +pragma_warning_error_codes( + int id: @pragma_warning ref, + string errorCode: string ref, + int index: int ref); + +preprocessor_directive_location( + unique int id: @preprocessor_directive ref, + int loc: @location ref); + +preprocessor_directive_compilation( + int id: @preprocessor_directive ref, + int compilation: @compilation ref); + +preprocessor_directive_active( + unique int id: @preprocessor_directive ref, + int active: int ref); /* 0: false, 1: true */ + +/** TYPES **/ + +types( + unique int id: @type, + int kind: int ref, + string name: string ref); + +case @type.kind of + 1 = @bool_type +| 2 = @char_type +| 3 = @decimal_type +| 4 = @sbyte_type +| 5 = @short_type +| 6 = @int_type +| 7 = @long_type +| 8 = @byte_type +| 9 = @ushort_type +| 10 = @uint_type +| 11 = @ulong_type +| 12 = @float_type +| 13 = @double_type +| 14 = @enum_type +| 15 = @struct_type +| 17 = @class_type +| 19 = @interface_type +| 20 = @delegate_type +| 21 = @null_type +| 22 = @type_parameter +| 23 = @pointer_type +| 24 = @nullable_type +| 25 = @array_type +| 26 = @void_type +| 27 = @int_ptr_type +| 28 = @uint_ptr_type +| 29 = @dynamic_type +| 30 = @arglist_type +| 31 = @unknown_type +| 32 = @tuple_type +| 33 = @function_pointer_type +| 34 = @inline_array_type + ; + +@simple_type = @bool_type | @char_type | @integral_type | @floating_point_type | @decimal_type; +@integral_type = @signed_integral_type | @unsigned_integral_type; +@signed_integral_type = @sbyte_type | @short_type | @int_type | @long_type; +@unsigned_integral_type = @byte_type | @ushort_type | @uint_type | @ulong_type; +@floating_point_type = @float_type | @double_type; +@value_type = @simple_type | @enum_type | @struct_type | @nullable_type | @int_ptr_type + | @uint_ptr_type | @tuple_type | @void_type | @inline_array_type; +@ref_type = @class_type | @interface_type | @array_type | @delegate_type | @null_type + | @dynamic_type; +@value_or_ref_type = @value_type | @ref_type; + +typerefs( + unique int id: @typeref, + string name: string ref); + +typeref_type( + int id: @typeref ref, + unique int typeId: @type ref); + +@type_or_ref = @type | @typeref; + +array_element_type( + unique int array: @array_type ref, + int dimension: int ref, + int rank: int ref, + int element: @type_or_ref ref); + +nullable_underlying_type( + unique int nullable: @nullable_type ref, + int underlying: @type_or_ref ref); + +pointer_referent_type( + unique int pointer: @pointer_type ref, + int referent: @type_or_ref ref); + +enum_underlying_type( + unique int enum_id: @enum_type ref, + int underlying_type_id: @type_or_ref ref); + +delegate_return_type( + unique int delegate_id: @delegate_type ref, + int return_type_id: @type_or_ref ref); + +function_pointer_return_type( + unique int function_pointer_id: @function_pointer_type ref, + int return_type_id: @type_or_ref ref); + +extend( + int sub: @type ref, + int super: @type_or_ref ref); + +anonymous_types( + unique int id: @type ref); + +@interface_or_ref = @interface_type | @typeref; + +implement( + int sub: @type ref, + int super: @type_or_ref ref); + +type_location( + int id: @type ref, + int loc: @location ref); + +tuple_underlying_type( + unique int tuple: @tuple_type ref, + int struct: @type_or_ref ref); + +#keyset[tuple, index] +tuple_element( + int tuple: @tuple_type ref, + int index: int ref, + unique int field: @field ref); + +attributes( + unique int id: @attribute, + int kind: int ref, + int type_id: @type_or_ref ref, + int target: @attributable ref); + +case @attribute.kind of + 0 = @attribute_default +| 1 = @attribute_return +| 2 = @attribute_assembly +| 3 = @attribute_module +; + +attribute_location( + int id: @attribute ref, + int loc: @location ref); + +@type_mention_parent = @element | @type_mention; + +type_mention( + unique int id: @type_mention, + int type_id: @type_or_ref ref, + int parent: @type_mention_parent ref); + +type_mention_location( + unique int id: @type_mention ref, + int loc: @location ref); + +@has_type_annotation = @assignable | @type_parameter | @callable | @expr | @delegate_type | @generic | @function_pointer_type; + +/** + * A direct annotation on an entity, for example `string? x;`. + * + * Annotations: + * 2 = reftype is not annotated "!" + * 3 = reftype is annotated "?" + * 4 = readonly ref type / in parameter + * 5 = ref type parameter, return or local variable + * 6 = out parameter + * + * Note that the annotation depends on the element it annotates. + * @assignable: The annotation is on the type of the assignable, for example the variable type. + * @type_parameter: The annotation is on the reftype constraint + * @callable: The annotation is on the return type + * @array_type: The annotation is on the element type + */ +type_annotation(int id: @has_type_annotation ref, int annotation: int ref); + +nullability(unique int nullability: @nullability, int kind: int ref); + +case @nullability.kind of + 0 = @oblivious +| 1 = @not_annotated +| 2 = @annotated +; + +#keyset[parent, index] +nullability_parent(int nullability: @nullability ref, int index: int ref, int parent: @nullability ref) + +type_nullability(int id: @has_type_annotation ref, int nullability: @nullability ref); + +/** + * The nullable flow state of an expression, as determined by Roslyn. + * 0 = none (default, not populated) + * 1 = not null + * 2 = maybe null + */ +expr_flowstate(unique int id: @expr ref, int state: int ref); + +/** GENERICS **/ + +@generic = @type | @method | @local_function; + +type_parameters( + unique int id: @type_parameter ref, + int index: int ref, + int generic_id: @generic ref, + int variance: int ref /* none = 0, out = 1, in = 2 */); + +#keyset[constructed_id, index] +type_arguments( + int id: @type_or_ref ref, + int index: int ref, + int constructed_id: @generic_or_ref ref); + +@generic_or_ref = @generic | @typeref; + +constructed_generic( + unique int constructed: @generic ref, + int generic: @generic_or_ref ref); + +type_parameter_constraints( + unique int id: @type_parameter_constraints, + int param_id: @type_parameter ref); + +type_parameter_constraints_location( + int id: @type_parameter_constraints ref, + int loc: @location ref); + +general_type_parameter_constraints( + int id: @type_parameter_constraints ref, + int kind: int ref /* class = 1, struct = 2, new = 3 */); + +specific_type_parameter_constraints( + int id: @type_parameter_constraints ref, + int base_id: @type_or_ref ref); + +specific_type_parameter_nullability( + int id: @type_parameter_constraints ref, + int base_id: @type_or_ref ref, + int nullability: @nullability ref); + +/** FUNCTION POINTERS */ + +function_pointer_calling_conventions( + int id: @function_pointer_type ref, + int kind: int ref); + +#keyset[id, index] +has_unmanaged_calling_conventions( + int id: @function_pointer_type ref, + int index: int ref, + int conv_id: @type_or_ref ref); + +/** MODIFIERS */ + +@modifiable = @modifiable_direct | @event_accessor; + +@modifiable_direct = @member | @accessor | @local_function | @anonymous_function_expr; + +modifiers( + unique int id: @modifier, + string name: string ref); + +has_modifiers( + int id: @modifiable_direct ref, + int mod_id: @modifier ref); + +/** MEMBERS **/ + +@member = @method | @constructor | @destructor | @field | @property | @event | @operator | @indexer | @type; + +@named_exprorstmt = @goto_stmt | @labeled_stmt | @expr; + +@virtualizable = @method | @property | @indexer | @event | @operator; + +exprorstmt_name( + unique int parent_id: @named_exprorstmt ref, + string name: string ref); + +nested_types( + unique int id: @type ref, + int declaring_type_id: @type ref, + int unbound_id: @type ref); + +properties( + unique int id: @property, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @property ref); + +property_location( + int id: @property ref, + int loc: @location ref); + +indexers( + unique int id: @indexer, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @indexer ref); + +indexer_location( + int id: @indexer ref, + int loc: @location ref); + +accessors( + unique int id: @accessor, + int kind: int ref, + string name: string ref, + int declaring_member_id: @member ref, + int unbound_id: @accessor ref); + +case @accessor.kind of + 1 = @getter +| 2 = @setter + ; + +init_only_accessors( + unique int id: @accessor ref); + +accessor_location( + int id: @accessor ref, + int loc: @location ref); + +events( + unique int id: @event, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @event ref); + +event_location( + int id: @event ref, + int loc: @location ref); + +event_accessors( + unique int id: @event_accessor, + int kind: int ref, + string name: string ref, + int declaring_event_id: @event ref, + int unbound_id: @event_accessor ref); + +case @event_accessor.kind of + 1 = @add_event_accessor +| 2 = @remove_event_accessor + ; + +event_accessor_location( + int id: @event_accessor ref, + int loc: @location ref); + +operators( + unique int id: @operator, + string name: string ref, + string symbol: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @operator ref); + +operator_location( + int id: @operator ref, + int loc: @location ref); + +constant_value( + int id: @variable ref, + string value: string ref); + +/** CALLABLES **/ + +@callable = @method | @constructor | @destructor | @operator | @callable_accessor | @anonymous_function_expr | @local_function; + +@callable_accessor = @accessor | @event_accessor; + +methods( + unique int id: @method, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @method ref); + +method_location( + int id: @method ref, + int loc: @location ref); + +constructors( + unique int id: @constructor, + string name: string ref, + int declaring_type_id: @type ref, + int unbound_id: @constructor ref); + +constructor_location( + int id: @constructor ref, + int loc: @location ref); + +destructors( + unique int id: @destructor, + string name: string ref, + int declaring_type_id: @type ref, + int unbound_id: @destructor ref); + +destructor_location( + int id: @destructor ref, + int loc: @location ref); + +overrides( + int id: @callable ref, + int base_id: @callable ref); + +explicitly_implements( + int id: @member ref, + int interface_id: @interface_or_ref ref); + +local_functions( + unique int id: @local_function, + string name: string ref, + int return_type: @type ref, + int unbound_id: @local_function ref); + +local_function_stmts( + unique int fn: @local_function_stmt ref, + int stmt: @local_function ref); + +/** VARIABLES **/ + +@variable = @local_scope_variable | @field; + +@local_scope_variable = @local_variable | @parameter; + +fields( + unique int id: @field, + int kind: int ref, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @field ref); + +case @field.kind of + 1 = @addressable_field +| 2 = @constant + ; + +field_location( + int id: @field ref, + int loc: @location ref); + +localvars( + unique int id: @local_variable, + int kind: int ref, + string name: string ref, + int implicitly_typed: int ref /* 0 = no, 1 = yes */, + int type_id: @type_or_ref ref, + int parent_id: @local_var_decl_expr ref); + +case @local_variable.kind of + 1 = @addressable_local_variable +| 2 = @local_constant +| 3 = @local_variable_ref + ; + +localvar_location( + unique int id: @local_variable ref, + int loc: @location ref); + +@parameterizable = @callable | @delegate_type | @indexer | @function_pointer_type; + +#keyset[name, parent_id] +#keyset[index, parent_id] +params( + unique int id: @parameter, + string name: string ref, + int type_id: @type_or_ref ref, + int index: int ref, + int mode: int ref, /* value = 0, ref = 1, out = 2, params/array = 3, this = 4, in = 5, ref readonly = 6 */ + int parent_id: @parameterizable ref, + int unbound_id: @parameter ref); + +param_location( + int id: @parameter ref, + int loc: @location ref); + +@has_scoped_annotation = @local_scope_variable + +scoped_annotation( + int id: @has_scoped_annotation ref, + int kind: int ref // scoped ref = 1, scoped value = 2 + ); + +/** STATEMENTS **/ + +@exprorstmt_parent = @control_flow_element | @top_level_exprorstmt_parent; + +statements( + unique int id: @stmt, + int kind: int ref); + +#keyset[index, parent] +stmt_parent( + unique int stmt: @stmt ref, + int index: int ref, + int parent: @control_flow_element ref); + +@top_level_stmt_parent = @callable; + +// [index, parent] is not a keyset because the same parent may be compiled multiple times +stmt_parent_top_level( + unique int stmt: @stmt ref, + int index: int ref, + int parent: @top_level_stmt_parent ref); + +case @stmt.kind of + 1 = @block_stmt +| 2 = @expr_stmt +| 3 = @if_stmt +| 4 = @switch_stmt +| 5 = @while_stmt +| 6 = @do_stmt +| 7 = @for_stmt +| 8 = @foreach_stmt +| 9 = @break_stmt +| 10 = @continue_stmt +| 11 = @goto_stmt +| 12 = @goto_case_stmt +| 13 = @goto_default_stmt +| 14 = @throw_stmt +| 15 = @return_stmt +| 16 = @yield_stmt +| 17 = @try_stmt +| 18 = @checked_stmt +| 19 = @unchecked_stmt +| 20 = @lock_stmt +| 21 = @using_block_stmt +| 22 = @var_decl_stmt +| 23 = @const_decl_stmt +| 24 = @empty_stmt +| 25 = @unsafe_stmt +| 26 = @fixed_stmt +| 27 = @label_stmt +| 28 = @catch +| 29 = @case_stmt +| 30 = @local_function_stmt +| 31 = @using_decl_stmt + ; + +@using_stmt = @using_block_stmt | @using_decl_stmt; + +@labeled_stmt = @label_stmt | @case; + +@decl_stmt = @var_decl_stmt | @const_decl_stmt | @using_decl_stmt; + +@cond_stmt = @if_stmt | @switch_stmt; + +@loop_stmt = @while_stmt | @do_stmt | @for_stmt | @foreach_stmt; + +@jump_stmt = @break_stmt | @goto_any_stmt | @continue_stmt | @throw_stmt | @return_stmt + | @yield_stmt; + +@goto_any_stmt = @goto_default_stmt | @goto_case_stmt | @goto_stmt; + + +stmt_location( + unique int id: @stmt ref, + int loc: @location ref); + +catch_type( + unique int catch_id: @catch ref, + int type_id: @type_or_ref ref, + int kind: int ref /* explicit = 1, implicit = 2 */); + +foreach_stmt_info( + unique int id: @foreach_stmt ref, + int kind: int ref /* non-async = 1, async = 2 */); + +@foreach_symbol = @method | @property | @type_or_ref; + +#keyset[id, kind] +foreach_stmt_desugar( + int id: @foreach_stmt ref, + int symbol: @foreach_symbol ref, + int kind: int ref /* GetEnumeratorMethod = 1, CurrentProperty = 2, MoveNextMethod = 3, DisposeMethod = 4, ElementType = 5 */); + +/** EXPRESSIONS **/ + +expressions( + unique int id: @expr, + int kind: int ref, + int type_id: @type_or_ref ref); + +#keyset[index, parent] +expr_parent( + unique int expr: @expr ref, + int index: int ref, + int parent: @control_flow_element ref); + +@top_level_expr_parent = @attribute | @field | @property | @indexer | @parameter | @directive_if | @directive_elif; + +@top_level_exprorstmt_parent = @top_level_expr_parent | @top_level_stmt_parent; + +// [index, parent] is not a keyset because the same parent may be compiled multiple times +expr_parent_top_level( + unique int expr: @expr ref, + int index: int ref, + int parent: @top_level_exprorstmt_parent ref); + +case @expr.kind of +/* literal */ + 1 = @bool_literal_expr +| 2 = @char_literal_expr +| 3 = @decimal_literal_expr +| 4 = @int_literal_expr +| 5 = @long_literal_expr +| 6 = @uint_literal_expr +| 7 = @ulong_literal_expr +| 8 = @float_literal_expr +| 9 = @double_literal_expr +| 10 = @utf16_string_literal_expr +| 11 = @null_literal_expr +/* primary & unary */ +| 12 = @this_access_expr +| 13 = @base_access_expr +| 14 = @local_variable_access_expr +| 15 = @parameter_access_expr +| 16 = @field_access_expr +| 17 = @property_access_expr +| 18 = @method_access_expr +| 19 = @event_access_expr +| 20 = @indexer_access_expr +| 21 = @array_access_expr +| 22 = @type_access_expr +| 23 = @typeof_expr +| 24 = @method_invocation_expr +| 25 = @delegate_invocation_expr +| 26 = @operator_invocation_expr +| 27 = @cast_expr +| 28 = @object_creation_expr +| 29 = @explicit_delegate_creation_expr +| 30 = @implicit_delegate_creation_expr +| 31 = @array_creation_expr +| 32 = @default_expr +| 33 = @plus_expr +| 34 = @minus_expr +| 35 = @bit_not_expr +| 36 = @log_not_expr +| 37 = @post_incr_expr +| 38 = @post_decr_expr +| 39 = @pre_incr_expr +| 40 = @pre_decr_expr +/* multiplicative */ +| 41 = @mul_expr +| 42 = @div_expr +| 43 = @rem_expr +/* additive */ +| 44 = @add_expr +| 45 = @sub_expr +/* shift */ +| 46 = @lshift_expr +| 47 = @rshift_expr +/* relational */ +| 48 = @lt_expr +| 49 = @gt_expr +| 50 = @le_expr +| 51 = @ge_expr +/* equality */ +| 52 = @eq_expr +| 53 = @ne_expr +/* logical */ +| 54 = @bit_and_expr +| 55 = @bit_xor_expr +| 56 = @bit_or_expr +| 57 = @log_and_expr +| 58 = @log_or_expr +/* type testing */ +| 59 = @is_expr +| 60 = @as_expr +/* null coalescing */ +| 61 = @null_coalescing_expr +/* conditional */ +| 62 = @conditional_expr +/* assignment */ +| 63 = @simple_assign_expr +| 64 = @assign_add_expr +| 65 = @assign_sub_expr +| 66 = @assign_mul_expr +| 67 = @assign_div_expr +| 68 = @assign_rem_expr +| 69 = @assign_and_expr +| 70 = @assign_xor_expr +| 71 = @assign_or_expr +| 72 = @assign_lshift_expr +| 73 = @assign_rshift_expr +/* more */ +| 74 = @object_init_expr +| 75 = @collection_init_expr +| 76 = @array_init_expr +| 77 = @checked_expr +| 78 = @unchecked_expr +| 79 = @constructor_init_expr +| 80 = @add_event_expr +| 81 = @remove_event_expr +| 82 = @par_expr +| 83 = @local_var_decl_expr +| 84 = @lambda_expr +| 85 = @anonymous_method_expr +| 86 = @namespace_expr +/* dynamic */ +| 92 = @dynamic_element_access_expr +| 93 = @dynamic_member_access_expr +/* unsafe */ +| 100 = @pointer_indirection_expr +| 101 = @address_of_expr +| 102 = @sizeof_expr +/* async */ +| 103 = @await_expr +/* C# 6.0 */ +| 104 = @nameof_expr +| 105 = @interpolated_string_expr +| 106 = @unknown_expr +/* C# 7.0 */ +| 107 = @throw_expr +| 108 = @tuple_expr +| 109 = @local_function_invocation_expr +| 110 = @ref_expr +| 111 = @discard_expr +/* C# 8.0 */ +| 112 = @range_expr +| 113 = @index_expr +| 114 = @switch_expr +| 115 = @recursive_pattern_expr +| 116 = @property_pattern_expr +| 117 = @positional_pattern_expr +| 118 = @switch_case_expr +| 119 = @assign_coalesce_expr +| 120 = @suppress_nullable_warning_expr +| 121 = @namespace_access_expr +/* C# 9.0 */ +| 122 = @lt_pattern_expr +| 123 = @gt_pattern_expr +| 124 = @le_pattern_expr +| 125 = @ge_pattern_expr +| 126 = @not_pattern_expr +| 127 = @and_pattern_expr +| 128 = @or_pattern_expr +| 129 = @function_pointer_invocation_expr +| 130 = @with_expr +/* C# 11.0 */ +| 131 = @list_pattern_expr +| 132 = @slice_pattern_expr +| 133 = @urshift_expr +| 134 = @assign_urshift_expr +| 135 = @utf8_string_literal_expr +/* C# 12.0 */ +| 136 = @collection_expr +| 137 = @spread_element_expr +| 138 = @interpolated_string_insert_expr +/* Preprocessor */ +| 999 = @define_symbol_expr +; + +@switch = @switch_stmt | @switch_expr; +@case = @case_stmt | @switch_case_expr; +@pattern_match = @case | @is_expr; +@unary_pattern_expr = @not_pattern_expr; +@relational_pattern_expr = @gt_pattern_expr | @lt_pattern_expr | @ge_pattern_expr | @le_pattern_expr; +@binary_pattern_expr = @and_pattern_expr | @or_pattern_expr; + +@integer_literal_expr = @int_literal_expr | @long_literal_expr | @uint_literal_expr | @ulong_literal_expr; +@real_literal_expr = @float_literal_expr | @double_literal_expr | @decimal_literal_expr; +@string_literal_expr = @utf16_string_literal_expr | @utf8_string_literal_expr; +@literal_expr = @bool_literal_expr | @char_literal_expr | @integer_literal_expr | @real_literal_expr + | @string_literal_expr | @null_literal_expr; + +@assign_expr = @simple_assign_expr | @assign_op_expr | @local_var_decl_expr; +@assign_op_expr = @assign_arith_expr | @assign_bitwise_expr | @assign_event_expr | @assign_coalesce_expr; +@assign_event_expr = @add_event_expr | @remove_event_expr; + +@assign_arith_expr = @assign_add_expr | @assign_sub_expr | @assign_mul_expr | @assign_div_expr + | @assign_rem_expr +@assign_bitwise_expr = @assign_and_expr | @assign_or_expr | @assign_xor_expr + | @assign_lshift_expr | @assign_rshift_expr | @assign_urshift_expr; + +@member_access_expr = @field_access_expr | @property_access_expr | @indexer_access_expr | @event_access_expr + | @method_access_expr | @type_access_expr | @dynamic_member_access_expr; +@access_expr = @member_access_expr | @this_access_expr | @base_access_expr | @assignable_access_expr | @namespace_access_expr; +@element_access_expr = @indexer_access_expr | @array_access_expr | @dynamic_element_access_expr; + +@local_variable_access = @local_variable_access_expr | @local_var_decl_expr; +@local_scope_variable_access_expr = @parameter_access_expr | @local_variable_access; +@variable_access_expr = @local_scope_variable_access_expr | @field_access_expr; + +@assignable_access_expr = @variable_access_expr | @property_access_expr | @element_access_expr + | @event_access_expr | @dynamic_member_access_expr; + +@objectorcollection_init_expr = @object_init_expr | @collection_init_expr; + +@delegate_creation_expr = @explicit_delegate_creation_expr | @implicit_delegate_creation_expr; + +@bin_arith_op_expr = @mul_expr | @div_expr | @rem_expr | @add_expr | @sub_expr; +@incr_op_expr = @pre_incr_expr | @post_incr_expr; +@decr_op_expr = @pre_decr_expr | @post_decr_expr; +@mut_op_expr = @incr_op_expr | @decr_op_expr; +@un_arith_op_expr = @plus_expr | @minus_expr | @mut_op_expr; +@arith_op_expr = @bin_arith_op_expr | @un_arith_op_expr; + +@ternary_log_op_expr = @conditional_expr; +@bin_log_op_expr = @log_and_expr | @log_or_expr | @null_coalescing_expr; +@un_log_op_expr = @log_not_expr; +@log_expr = @un_log_op_expr | @bin_log_op_expr | @ternary_log_op_expr; + +@bin_bit_op_expr = @bit_and_expr | @bit_or_expr | @bit_xor_expr | @lshift_expr + | @rshift_expr | @urshift_expr; +@un_bit_op_expr = @bit_not_expr; +@bit_expr = @un_bit_op_expr | @bin_bit_op_expr; + +@equality_op_expr = @eq_expr | @ne_expr; +@rel_op_expr = @gt_expr | @lt_expr| @ge_expr | @le_expr; +@comp_expr = @equality_op_expr | @rel_op_expr; + +@op_expr = @assign_expr | @un_op | @bin_op | @ternary_op; + +@ternary_op = @ternary_log_op_expr; +@bin_op = @bin_arith_op_expr | @bin_log_op_expr | @bin_bit_op_expr | @comp_expr; +@un_op = @un_arith_op_expr | @un_log_op_expr | @un_bit_op_expr | @sizeof_expr + | @pointer_indirection_expr | @address_of_expr; + +@anonymous_function_expr = @lambda_expr | @anonymous_method_expr; + +@call = @method_invocation_expr | @constructor_init_expr | @operator_invocation_expr + | @delegate_invocation_expr | @object_creation_expr | @call_access_expr + | @local_function_invocation_expr | @function_pointer_invocation_expr; + +@call_access_expr = @property_access_expr | @event_access_expr | @indexer_access_expr; + +@late_bindable_expr = @dynamic_element_access_expr | @dynamic_member_access_expr + | @object_creation_expr | @method_invocation_expr | @operator_invocation_expr; + +@throw_element = @throw_expr | @throw_stmt; + +@implicitly_typeable_object_creation_expr = @object_creation_expr | @explicit_delegate_creation_expr; + +implicitly_typed_array_creation( + unique int id: @array_creation_expr ref); + +explicitly_sized_array_creation( + unique int id: @array_creation_expr ref); + +stackalloc_array_creation( + unique int id: @array_creation_expr ref); + +implicitly_typed_object_creation( + unique int id: @implicitly_typeable_object_creation_expr ref); + +mutator_invocation_mode( + unique int id: @operator_invocation_expr ref, + int mode: int ref /* prefix = 1, postfix = 2*/); + +expr_value( + unique int id: @expr ref, + string value: string ref); + +expr_call( + unique int caller_id: @expr ref, + int target_id: @callable ref); + +expr_access( + unique int accesser_id: @access_expr ref, + int target_id: @accessible ref); + +@accessible = @method | @assignable | @local_function | @namespace; + +expr_location( + unique int id: @expr ref, + int loc: @location ref); + +dynamic_member_name( + unique int id: @late_bindable_expr ref, + string name: string ref); + +@qualifiable_expr = @member_access_expr + | @method_invocation_expr + | @element_access_expr; + +conditional_access( + unique int id: @qualifiable_expr ref); + +expr_argument( + unique int id: @expr ref, + int mode: int ref); + /* mode is the same as params: value = 0, ref = 1, out = 2 */ + +expr_argument_name( + unique int id: @expr ref, + string name: string ref); + +lambda_expr_return_type( + unique int id: @lambda_expr ref, + int type_id: @type_or_ref ref); + +/* Compiler generated */ + +compiler_generated(unique int id: @element ref); + +/** CONTROL/DATA FLOW **/ + +@control_flow_element = @stmt | @expr; + +/* 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; + +/* Comments */ + +commentline( + unique int id: @commentline, + int kind: int ref, + string text: string ref, + string rawtext: string ref); + +case @commentline.kind of + 0 = @singlelinecomment +| 1 = @xmldoccomment +| 2 = @multilinecomment; + +commentline_location( + unique int id: @commentline ref, + int loc: @location ref); + +commentblock( + unique int id : @commentblock); + +commentblock_location( + unique int id: @commentblock ref, + int loc: @location ref); + +commentblock_binding( + int id: @commentblock ref, + int entity: @element ref, + int bindtype: int ref); /* 0: Parent, 1: Best, 2: Before, 3: After */ + +commentblock_child( + int id: @commentblock ref, + int commentline: @commentline ref, + int index: int ref); + +/* ASP.NET */ + +case @asp_element.kind of + 0=@asp_close_tag +| 1=@asp_code +| 2=@asp_comment +| 3=@asp_data_binding +| 4=@asp_directive +| 5=@asp_open_tag +| 6=@asp_quoted_string +| 7=@asp_text +| 8=@asp_xml_directive; + +@asp_attribute = @asp_code | @asp_data_binding | @asp_quoted_string; + +asp_elements( + unique int id: @asp_element, + int kind: int ref, + int loc: @location ref); + +asp_comment_server(unique int comment: @asp_comment ref); +asp_code_inline(unique int code: @asp_code ref); +asp_directive_attribute( + int directive: @asp_directive ref, + int index: int ref, + string name: string ref, + int value: @asp_quoted_string ref); +asp_directive_name( + unique int directive: @asp_directive ref, + string name: string ref); +asp_element_body( + unique int element: @asp_element ref, + string body: string ref); +asp_tag_attribute( + int tag: @asp_open_tag ref, + int index: int ref, + string name: string ref, + int attribute: @asp_attribute ref); +asp_tag_name( + unique int tag: @asp_open_tag ref, + string name: string ref); +asp_tag_isempty(int tag: @asp_open_tag ref); diff --git a/csharp/downgrades/178a7e6cf335486d33d4e49543148e3f57f04a9a/upgrade.properties b/csharp/downgrades/178a7e6cf335486d33d4e49543148e3f57f04a9a/upgrade.properties new file mode 100644 index 000000000000..50b000605102 --- /dev/null +++ b/csharp/downgrades/178a7e6cf335486d33d4e49543148e3f57f04a9a/upgrade.properties @@ -0,0 +1,3 @@ +description: Remove the relation `extension_receiver_type` and remove the `extension_type` type kind. +compatibility: backwards +extension_receiver_type.rel: delete diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependabotProxy.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependabotProxy.cs index be5f137548c4..e06970141fed 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependabotProxy.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependabotProxy.cs @@ -5,6 +5,7 @@ using Semmle.Util; using Semmle.Util.Logging; using Newtonsoft.Json; +using System.Linq; namespace Semmle.Extraction.CSharp.DependencyFetching { @@ -37,7 +38,8 @@ public record class RegistryConfig(string Type, string URL); /// internal X509Certificate2? Certificate { get; private set; } - internal static DependabotProxy? GetDependabotProxy(ILogger logger, TemporaryDirectory tempWorkingDirectory) + internal static DependabotProxy? GetDependabotProxy( + ILogger logger, IDiagnosticsWriter diagnosticsWriter, TemporaryDirectory tempWorkingDirectory) { // Setting HTTP(S)_PROXY and SSL_CERT_FILE have no effect on Windows or macOS, // but we would still end up using the Dependabot proxy to check for feed reachability. @@ -112,6 +114,23 @@ public record class RegistryConfig(string Type, string URL); } } + // Emit a diagnostic for the discovered private registries, so that it is easy + // for users to see that they were picked up. + if (result.RegistryURLs.Count > 0) + { + diagnosticsWriter.AddEntry(new DiagnosticMessage( + Language.CSharp, + "buildless/analysis-using-private-registries", + severity: DiagnosticMessage.TspSeverity.Note, + visibility: new DiagnosticMessage.TspVisibility(true, true, true), + name: "C# extraction used private package registries", + markdownMessage: string.Format( + "C# was extracted using the following private package registries:\n\n{0}\n", + string.Join("\n", result.RegistryURLs.Select(url => string.Format("- `{0}`", url))) + ) + )); + } + return result; } diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs index ad69d0c85c37..bc010e318c35 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs @@ -106,7 +106,7 @@ void exitCallback(int ret, string msg, bool silent) return BuildScript.Success; }).Run(SystemBuildActions.Instance, startCallback, exitCallback); - dependabotProxy = DependabotProxy.GetDependabotProxy(logger, tempWorkingDirectory); + dependabotProxy = DependabotProxy.GetDependabotProxy(logger, diagnosticsWriter, tempWorkingDirectory); try { diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/NugetPackageRestorer.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/NugetPackageRestorer.cs index 29cec8a0e339..1d01412ee051 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/NugetPackageRestorer.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/NugetPackageRestorer.cs @@ -814,6 +814,43 @@ private IEnumerable GetFeeds(Func> getNugetFeeds) private (HashSet explicitFeeds, HashSet allFeeds) GetAllFeeds() { var nugetConfigs = fileProvider.NugetConfigs; + + // On systems with case-sensitive file systems (for simplicity, we assume that is Linux), the + // filenames of NuGet configuration files must be named correctly. For compatibility with projects + // that are typically built on Windows or macOS where this doesn't matter, we accept all variants + // of `nuget.config` ourselves. However, `dotnet` does not. If we detect that incorrectly-named + // files are present, we emit a diagnostic to warn the user. + if (SystemBuildActions.Instance.IsLinux()) + { + string[] acceptedNugetConfigNames = ["nuget.config", "NuGet.config", "NuGet.Config"]; + var invalidNugetConfigs = nugetConfigs + .Where(path => !acceptedNugetConfigNames.Contains(Path.GetFileName(path))); + + if (invalidNugetConfigs.Count() > 0) + { + this.logger.LogWarning(string.Format( + "Found incorrectly named NuGet configuration files: {0}", + string.Join(", ", invalidNugetConfigs) + )); + this.diagnosticsWriter.AddEntry(new DiagnosticMessage( + Language.CSharp, + "buildless/case-sensitive-nuget-config", + "Found NuGet configuration files which are not correctly named", + visibility: new DiagnosticMessage.TspVisibility(statusPage: true, cliSummaryTable: true, telemetry: true), + markdownMessage: string.Format( + "On platforms with case-sensitive file systems, NuGet only accepts files with one of the following names: {0}.\n\n" + + "CodeQL found the following files while performing an analysis on a platform with a case-sensitive file system:\n\n" + + "{1}\n\n" + + "To avoid unexpected results, rename these files to match the casing of one of the accepted filenames.", + string.Join(", ", acceptedNugetConfigNames), + string.Join("\n", invalidNugetConfigs.Select(path => string.Format("- `{0}`", path))) + ), + severity: DiagnosticMessage.TspSeverity.Warning + )); + } + } + + // Find feeds that are explicitly configured in the NuGet configuration files that we found. var explicitFeeds = nugetConfigs .SelectMany(config => GetFeeds(() => dotnet.GetNugetFeeds(config))) .ToHashSet(); @@ -849,6 +886,14 @@ private IEnumerable GetFeeds(Func> getNugetFeeds) .Where(folder => folder != null) .SelectMany(folder => GetFeeds(() => dotnet.GetNugetFeedsFromFolder(folder!))) .ToHashSet(); + + // If we have discovered any explicit feeds, then we also expect these to be in the set of all feeds. + // Normally, it is a safe assumption to make that `GetNugetFeedsFromFolder` will include the feeds configured + // in a NuGet configuration file in the given directory. There is one exception: on a system with case-sensitive + // file systems, we may discover a configuration file such as `Nuget.Config` which is not recognised by `dotnet nuget`. + // In that case, our call to `GetNugetFeeds` will retrieve the feeds from that file (because it is accepted when + // provided explicitly as `--configfile` argument), but the call to `GetNugetFeedsFromFolder` will not. + allFeeds.UnionWith(explicitFeeds); } else { diff --git a/csharp/extractor/Semmle.Extraction.CSharp/CodeAnalysisExtensions/SymbolExtensions.cs b/csharp/extractor/Semmle.Extraction.CSharp/CodeAnalysisExtensions/SymbolExtensions.cs index 72f78f160598..c108a18f136a 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/CodeAnalysisExtensions/SymbolExtensions.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/CodeAnalysisExtensions/SymbolExtensions.cs @@ -4,6 +4,7 @@ using System.IO; using System.Linq; using Microsoft.CodeAnalysis; +using Semmle.Util; using Semmle.Extraction.CSharp.Entities; namespace Semmle.Extraction.CSharp @@ -164,6 +165,7 @@ public static void BuildTypeId(this ITypeSymbol type, Context cx, EscapingTextWr case TypeKind.Enum: case TypeKind.Delegate: case TypeKind.Error: + case TypeKind.Extension: var named = (INamedTypeSymbol)type; named.BuildNamedTypeId(cx, trapFile, symbolBeingDefined, constructUnderlyingTupleType); return; @@ -275,6 +277,20 @@ private static void BuildFunctionPointerTypeId(this IFunctionPointerTypeSymbol f public static IEnumerable GetTupleElementsMaybeNull(this INamedTypeSymbol type) => type.TupleElements; + private static void BuildExtensionTypeId(this INamedTypeSymbol named, Context cx, EscapingTextWriter trapFile) + { + trapFile.Write("extension("); + if (named.ExtensionMarkerName is not null) + { + trapFile.Write(named.ExtensionMarkerName); + } + else + { + trapFile.Write("unknown"); + } + trapFile.Write(")"); + } + private static void BuildQualifierAndName(INamedTypeSymbol named, Context cx, EscapingTextWriter trapFile, ISymbol symbolBeingDefined) { if (named.ContainingType is not null) @@ -289,8 +305,18 @@ private static void BuildQualifierAndName(INamedTypeSymbol named, Context cx, Es named.ContainingNamespace.BuildNamespace(cx, trapFile); } - var name = named.IsFileLocal ? named.MetadataName : named.Name; - trapFile.Write(name); + if (named.IsFileLocal) + { + trapFile.Write(named.MetadataName); + } + else if (named.IsExtension) + { + named.BuildExtensionTypeId(cx, trapFile); + } + else + { + trapFile.Write(named.Name); + } } private static void BuildTupleId(INamedTypeSymbol named, Context cx, EscapingTextWriter trapFile, ISymbol symbolBeingDefined) @@ -391,6 +417,7 @@ public static void BuildDisplayName(this ITypeSymbol type, Context cx, TextWrite case TypeKind.Enum: case TypeKind.Delegate: case TypeKind.Error: + case TypeKind.Extension: var named = (INamedTypeSymbol)type; named.BuildNamedTypeDisplayName(cx, trapFile, constructUnderlyingTupleType); return; @@ -465,6 +492,20 @@ public static void BuildFunctionPointerSignature(IFunctionPointerTypeSymbol funp private static void BuildFunctionPointerTypeDisplayName(this IFunctionPointerTypeSymbol funptr, Context cx, TextWriter trapFile) => BuildFunctionPointerSignature(funptr, trapFile, s => s.BuildDisplayName(cx, trapFile)); + private static void BuildExtensionTypeDisplayName(this INamedTypeSymbol named, Context cx, TextWriter trapFile) + { + trapFile.Write("extension("); + if (named.ExtensionParameter?.Type is ITypeSymbol type) + { + type.BuildDisplayName(cx, trapFile); + } + else + { + trapFile.Write("unknown"); + } + trapFile.Write(")"); + } + private static void BuildNamedTypeDisplayName(this INamedTypeSymbol namedType, Context cx, TextWriter trapFile, bool constructUnderlyingTupleType) { if (!constructUnderlyingTupleType && namedType.IsTupleType) @@ -484,6 +525,12 @@ private static void BuildNamedTypeDisplayName(this INamedTypeSymbol namedType, C return; } + if (namedType.IsExtension) + { + namedType.BuildExtensionTypeDisplayName(cx, trapFile); + return; + } + if (namedType.IsAnonymousType) { namedType.BuildAnonymousName(cx, trapFile); @@ -596,6 +643,84 @@ public static bool IsSourceDeclaration(this IParameterSymbol parameter) return true; } + ///

+ /// Return true if this method is a compiler-generated extension method. + /// + public static bool IsCompilerGeneratedExtensionMethod(this IMethodSymbol method) => + method.TryGetExtensionMethod() is not null; + + /// + /// Returns the extension method corresponding to this compiler-generated extension method, if it exists. + /// + public static IMethodSymbol? TryGetExtensionMethod(this IMethodSymbol method) + { + if (method.IsImplicitlyDeclared && method.ContainingSymbol is INamedTypeSymbol containingType) + { + // Extension types are declared within the same type as the generated + // extension method implementation. + var extensions = containingType.GetMembers() + .OfType() + .Where(t => t.IsExtension); + // Find the (possibly unbound) original extension method that maps to this implementation (if any). + var unboundDeclaration = extensions.SelectMany(e => e.GetMembers()) + .OfType() + .FirstOrDefault(m => SymbolEqualityComparer.Default.Equals(m.AssociatedExtensionImplementation, method.ConstructedFrom)); + + var isFullyConstructed = method.IsBoundGenericMethod(); + if (isFullyConstructed && unboundDeclaration?.ContainingType is INamedTypeSymbol extensionType) + { + try + { + // Use the type arguments from the constructed extension method to construct the extension type. + var arguments = method.TypeArguments.ToArray(); + var (extensionTypeArguments, extensionMethodArguments) = arguments.SplitAt(extensionType.TypeParameters.Length); + + // Construct the extension type. + var boundExtensionType = extensionType.IsUnboundGenericType() + ? extensionType.Construct(extensionTypeArguments.ToArray()) + : extensionType; + + // Find the extension method declaration within the constructed extension type. + var extensionDeclaration = boundExtensionType.GetMembers() + .OfType() + .First(c => SymbolEqualityComparer.Default.Equals(c.OriginalDefinition, unboundDeclaration)); + + // If the extension declaration is unbound apply the remaning type arguments and construct it. + return extensionDeclaration.IsUnboundGenericMethod() + ? extensionDeclaration.Construct(extensionMethodArguments.ToArray()) + : extensionDeclaration; + } + catch + { + // If anything goes wrong, fall back to the unbound declaration. + return unboundDeclaration; + } + } + else + { + return unboundDeclaration; + } + } + return null; + } + + /// + /// Returns true if this method is an unbound generic method. + /// + public static bool IsUnboundGenericMethod(this IMethodSymbol method) => + method.IsGenericMethod && SymbolEqualityComparer.Default.Equals(method.ConstructedFrom, method); + + /// + /// Returns true if this method is a bound generic method. + /// + public static bool IsBoundGenericMethod(this IMethodSymbol method) => method.IsGenericMethod && !method.IsUnboundGenericMethod(); + + /// + /// Returns true if this type is an unbound generic type. + /// + public static bool IsUnboundGenericType(this INamedTypeSymbol type) => + type.IsGenericType && SymbolEqualityComparer.Default.Equals(type.ConstructedFrom, type); + /// /// Gets the base type of `symbol`. Unlike `symbol.BaseType`, this excludes effective base /// types of type parameters as well as `object` base types. @@ -692,5 +817,35 @@ public static bool ShouldExtractSymbol(this ISymbol symbol) /// public static IEnumerable ExtractionCandidates(this IEnumerable symbols) where T : ISymbol => symbols.Where(symbol => symbol.ShouldExtractSymbol()); + + /// + /// Returns the parameter kind for this parameter symbol, e.g. `ref`, `out`, `params`, etc. + /// + public static Parameter.Kind GetParameterKind(this IParameterSymbol parameter) + { + switch (parameter.RefKind) + { + case RefKind.Out: + return Parameter.Kind.Out; + case RefKind.Ref: + return Parameter.Kind.Ref; + case RefKind.In: + return Parameter.Kind.In; + case RefKind.RefReadOnlyParameter: + return Parameter.Kind.RefReadOnly; + default: + if (parameter.IsParams) + return Parameter.Kind.Params; + + if (parameter.Ordinal == 0) + { + if (parameter.ContainingSymbol is IMethodSymbol method && method.IsExtensionMethod) + { + return Parameter.Kind.This; + } + } + return Parameter.Kind.None; + } + } } } diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Base/CachedEntity.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Base/CachedEntity.cs index 2002fe0f1d7a..39d0f886b813 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Base/CachedEntity.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Base/CachedEntity.cs @@ -54,22 +54,6 @@ public string DebugContents } } - protected static void WriteLocationToTrap(Action writeAction, T1 entity, Location l) - { - if (l is not EmptyLocation) - { - writeAction(entity, l); - } - } - - protected static void WriteLocationsToTrap(Action writeAction, T1 entity, IEnumerable locations) - { - foreach (var loc in locations) - { - WriteLocationToTrap(writeAction, entity, loc); - } - } - public override bool NeedsPopulation { get; } public override int GetHashCode() => Symbol is null ? 0 : Symbol.GetHashCode(); diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Base/CachedSymbol.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Base/CachedSymbol.cs index 92861e97fdd8..1a69b0e08b2b 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Base/CachedSymbol.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Base/CachedSymbol.cs @@ -32,32 +32,6 @@ protected void PopulateAttributes() Attribute.ExtractAttributes(Context, Symbol, this); } - protected void PopulateNullability(TextWriter trapFile, AnnotatedTypeSymbol type) - { - var n = NullabilityEntity.Create(Context, Nullability.Create(type)); - if (!type.HasObliviousNullability()) - { - trapFile.type_nullability(this, n); - } - } - - protected void PopulateRefKind(TextWriter trapFile, RefKind kind) - { - switch (kind) - { - case RefKind.Out: - trapFile.type_annotation(this, Kinds.TypeAnnotation.Out); - break; - case RefKind.Ref: - trapFile.type_annotation(this, Kinds.TypeAnnotation.Ref); - break; - case RefKind.RefReadOnly: - case RefKind.RefReadOnlyParameter: - trapFile.type_annotation(this, Kinds.TypeAnnotation.ReadonlyRef); - break; - } - } - protected void PopulateScopedKind(TextWriter trapFile, ScopedKind kind) { switch (kind) diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Base/Entity.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Base/Entity.cs index ca1887b3be9c..94b2e16e9e6b 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Base/Entity.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Base/Entity.cs @@ -1,6 +1,8 @@ using System; +using System.Collections.Generic; using System.IO; using Microsoft.CodeAnalysis; +using Semmle.Extraction.CSharp.Entities; namespace Semmle.Extraction.CSharp { @@ -24,7 +26,7 @@ public virtual void WriteQuotedId(EscapingTextWriter trapFile) trapFile.WriteUnescaped('\"'); } - public abstract Location? ReportingLocation { get; } + public abstract Microsoft.CodeAnalysis.Location? ReportingLocation { get; } public abstract TrapStackBehaviour TrapStackBehaviour { get; } @@ -65,6 +67,48 @@ public string GetDebugLabel() } #endif + protected void PopulateRefKind(TextWriter trapFile, RefKind kind) + { + switch (kind) + { + case RefKind.Out: + trapFile.type_annotation(this, Kinds.TypeAnnotation.Out); + break; + case RefKind.Ref: + trapFile.type_annotation(this, Kinds.TypeAnnotation.Ref); + break; + case RefKind.RefReadOnly: + case RefKind.RefReadOnlyParameter: + trapFile.type_annotation(this, Kinds.TypeAnnotation.ReadonlyRef); + break; + } + } + + protected void PopulateNullability(TextWriter trapFile, AnnotatedTypeSymbol type) + { + var n = NullabilityEntity.Create(Context, Nullability.Create(type)); + if (!type.HasObliviousNullability()) + { + trapFile.type_nullability(this, n); + } + } + + protected static void WriteLocationToTrap(Action writeAction, T1 entity, Entities.Location l) + { + if (l is not EmptyLocation) + { + writeAction(entity, l); + } + } + + protected static void WriteLocationsToTrap(Action writeAction, T1 entity, IEnumerable locations) + { + foreach (var loc in locations) + { + WriteLocationToTrap(writeAction, entity, loc); + } + } + public override string ToString() => Label.ToString(); } } diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Expressions/Invocation.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Expressions/Invocation.cs index a6272974c22b..2ed7aec9955c 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Expressions/Invocation.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Expressions/Invocation.cs @@ -24,6 +24,16 @@ private Invocation(ExpressionNodeInfo info) private bool IsExplicitDelegateInvokeCall() => Kind == ExprKind.DELEGATE_INVOCATION && Context.GetModel(Syntax.Expression).GetSymbolInfo(Syntax.Expression).Symbol is IMethodSymbol m && m.MethodKind == MethodKind.DelegateInvoke; + private bool IsOperatorCall() => Kind == ExprKind.OPERATOR_INVOCATION; + + private bool IsValidMemberAccessKind() + { + return Kind == ExprKind.METHOD_INVOCATION || + IsEventDelegateCall() || + IsExplicitDelegateInvokeCall() || + IsOperatorCall(); + } + protected override void PopulateExpression(TextWriter trapFile) { if (IsNameof(Syntax)) @@ -37,7 +47,7 @@ protected override void PopulateExpression(TextWriter trapFile) var target = TargetSymbol; switch (Syntax.Expression) { - case MemberAccessExpressionSyntax memberAccess when Kind == ExprKind.METHOD_INVOCATION || IsEventDelegateCall() || IsExplicitDelegateInvokeCall(): + case MemberAccessExpressionSyntax memberAccess when IsValidMemberAccessKind(): memberName = memberAccess.Name.Identifier.Text; if (Syntax.Expression.Kind() == SyntaxKind.SimpleMemberAccessExpression) // Qualified method call; `x.M()` @@ -113,14 +123,24 @@ private static bool IsDynamicCall(ExpressionNodeInfo info) public SymbolInfo SymbolInfo => info.SymbolInfo; + private static bool IsOperatorLikeCall(ExpressionNodeInfo info) + { + return info.SymbolInfo.Symbol is IMethodSymbol method && + method.TryGetExtensionMethod()?.MethodKind == MethodKind.UserDefinedOperator; + } + public IMethodSymbol? TargetSymbol { get { var si = SymbolInfo; - if (si.Symbol is not null) - return si.Symbol as IMethodSymbol; + if (si.Symbol is ISymbol symbol) + { + var method = symbol as IMethodSymbol; + // Case for compiler-generated extension methods. + return method?.TryGetExtensionMethod() ?? method; + } if (si.CandidateReason == CandidateReason.OverloadResolutionFailure) { @@ -196,15 +216,25 @@ private static bool IsLocalFunctionInvocation(ExpressionNodeInfo info) private static ExprKind GetKind(ExpressionNodeInfo info) { - return IsNameof((InvocationExpressionSyntax)info.Node) - ? ExprKind.NAMEOF - : IsDelegateLikeCall(info) - ? IsDelegateInvokeCall(info) - ? ExprKind.DELEGATE_INVOCATION - : ExprKind.FUNCTION_POINTER_INVOCATION - : IsLocalFunctionInvocation(info) - ? ExprKind.LOCAL_FUNCTION_INVOCATION - : ExprKind.METHOD_INVOCATION; + if (IsNameof((InvocationExpressionSyntax)info.Node)) + { + return ExprKind.NAMEOF; + } + if (IsDelegateLikeCall(info)) + { + return IsDelegateInvokeCall(info) + ? ExprKind.DELEGATE_INVOCATION + : ExprKind.FUNCTION_POINTER_INVOCATION; + } + if (IsLocalFunctionInvocation(info)) + { + return ExprKind.LOCAL_FUNCTION_INVOCATION; + } + if (IsOperatorLikeCall(info)) + { + return ExprKind.OPERATOR_INVOCATION; + } + return ExprKind.METHOD_INVOCATION; } private static bool IsNameof(InvocationExpressionSyntax syntax) diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/IParameter.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/IParameter.cs new file mode 100644 index 000000000000..d3f3a04c08fc --- /dev/null +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/IParameter.cs @@ -0,0 +1,9 @@ +namespace Semmle.Extraction.CSharp.Entities +{ + /// + /// Marker interface for parameter entities. + /// + internal interface IParameter : IEntity + { + } +} diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Method.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Method.cs index c92c561f31b6..5a437c3d3585 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Method.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Method.cs @@ -14,9 +14,28 @@ internal abstract class Method : CachedSymbol, IExpressionParentE protected Method(Context cx, IMethodSymbol init) : base(cx, init) { } + private SyntheticExtensionParameter? SyntheticParameter { get; set; } + + private int SynthesizeExtensionParameter() + { + // Synthesize implicit parameter for extension methods declared using extension(...) syntax. + if (Symbol.ContainingSymbol is INamedTypeSymbol type && + type.IsExtension && type.ExtensionParameter is IParameterSymbol parameter && + !string.IsNullOrEmpty(parameter.Name) && !Symbol.IsStatic) + { + var originalSyntheticParam = OriginalDefinition.SyntheticParameter; + SyntheticParameter = SyntheticExtensionParameter.Create(Context, this, parameter, originalSyntheticParam); + return 1; + } + + return 0; + } + protected void PopulateParameters() { var originalMethod = OriginalDefinition; + var positionOffset = SynthesizeExtensionParameter(); + IEnumerable parameters = Symbol.Parameters; IEnumerable originalParameters = originalMethod.Symbol.Parameters; @@ -24,8 +43,8 @@ protected void PopulateParameters() { var original = SymbolEqualityComparer.Default.Equals(p.paramSymbol, p.originalParam) ? null - : Parameter.Create(Context, p.originalParam, originalMethod); - Parameter.Create(Context, p.paramSymbol, this, original); + : Parameter.Create(Context, p.originalParam, originalMethod, null, positionOffset); + Parameter.Create(Context, p.paramSymbol, this, original, positionOffset); } if (Symbol.IsVararg) @@ -302,9 +321,9 @@ public static void AddExplicitInterfaceQualifierToId(Context cx, EscapingTextWri /// /// Whether this method has unbound type parameters. /// - public bool IsUnboundGeneric => IsGeneric && SymbolEqualityComparer.Default.Equals(Symbol.ConstructedFrom, Symbol); + public bool IsUnboundGeneric => Symbol.IsUnboundGenericMethod(); - public bool IsBoundGeneric => IsGeneric && !IsUnboundGeneric; + public bool IsBoundGeneric => Symbol.IsBoundGenericMethod(); protected IMethodSymbol ConstructedFromSymbol => Symbol.ConstructedFrom; diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/OrdinaryMethod.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/OrdinaryMethod.cs index 22bcd1dce2c8..2fb148358e8c 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/OrdinaryMethod.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/OrdinaryMethod.cs @@ -23,7 +23,11 @@ protected OrdinaryMethod(Context cx, IMethodSymbol init) ? Symbol.ContainingType.GetSymbolLocation() : BodyDeclaringSymbol.GetSymbolLocation(); - public override bool NeedsPopulation => base.NeedsPopulation || IsCompilerGeneratedDelegate(); + public override bool NeedsPopulation => + (base.NeedsPopulation || IsCompilerGeneratedDelegate()) && + // Exclude compiler-generated extension methods. A call to such a method + // is replaced by a call to the defining extension method. + !Symbol.IsCompilerGeneratedExtensionMethod(); public override void Populate(TextWriter trapFile) { diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Parameter.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Parameter.cs index 49ef9a4a6e9a..dbb410382f95 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Parameter.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Parameter.cs @@ -7,16 +7,23 @@ namespace Semmle.Extraction.CSharp.Entities { - internal class Parameter : CachedSymbol, IExpressionParentEntity + internal class Parameter : CachedSymbol, IExpressionParentEntity, IParameter { protected IEntity? Parent { get; set; } protected Parameter Original { get; } + private int PositionOffset { get; set; } - protected Parameter(Context cx, IParameterSymbol init, IEntity? parent, Parameter? original) + private Parameter(Context cx, IParameterSymbol init, IEntity? parent, Parameter? original, int positionOffset) : base(cx, init) { Parent = parent; Original = original ?? this; + PositionOffset = positionOffset; + } + + protected Parameter(Context cx, IParameterSymbol init, IEntity? parent, Parameter? original) + : this(cx, init, parent, original, 0) + { } public override Microsoft.CodeAnalysis.Location ReportingLocation => Symbol.GetSymbolLocation(); @@ -32,46 +39,18 @@ public enum Kind RefReadOnly = 6 } - protected virtual int Ordinal => Symbol.Ordinal; - - private Kind ParamKind - { - get - { - switch (Symbol.RefKind) - { - case RefKind.Out: - return Kind.Out; - case RefKind.Ref: - return Kind.Ref; - case RefKind.In: - return Kind.In; - case RefKind.RefReadOnlyParameter: - return Kind.RefReadOnly; - default: - if (Symbol.IsParams) - return Kind.Params; - - if (Ordinal == 0) - { - if (Symbol.ContainingSymbol is IMethodSymbol method && method.IsExtensionMethod) - return Kind.This; - } - return Kind.None; - } - } - } + protected virtual int Ordinal => Symbol.Ordinal + PositionOffset; - public static Parameter Create(Context cx, IParameterSymbol param, IEntity parent, Parameter? original = null) + public static Parameter Create(Context cx, IParameterSymbol param, IEntity parent, Parameter? original = null, int positionOffset = 0) { var cachedSymbol = cx.GetPossiblyCachedParameterSymbol(param); - return ParameterFactory.Instance.CreateEntity(cx, cachedSymbol, (cachedSymbol, parent, original)); + return ParameterFactory.Instance.CreateEntity(cx, cachedSymbol, (cachedSymbol, parent, original, positionOffset)); } public static Parameter Create(Context cx, IParameterSymbol param) { var cachedSymbol = cx.GetPossiblyCachedParameterSymbol(param); - return ParameterFactory.Instance.CreateEntity(cx, cachedSymbol, (cachedSymbol, null, null)); + return ParameterFactory.Instance.CreateEntity(cx, cachedSymbol, (cachedSymbol, null, null, 0)); } public override void WriteId(EscapingTextWriter trapFile) @@ -79,6 +58,9 @@ public override void WriteId(EscapingTextWriter trapFile) if (Parent is null) Parent = Method.Create(Context, Symbol.ContainingSymbol as IMethodSymbol); + if (Parent is null && Symbol.ContainingSymbol is INamedTypeSymbol type && type.IsExtension) + Parent = Type.Create(Context, type); + if (Parent is null) throw new InternalError(Symbol, "Couldn't get parent of symbol."); @@ -113,7 +95,8 @@ public override void Populate(TextWriter trapFile) Context.ModelError(Symbol, "Inconsistent parameter declaration"); var type = Type.Create(Context, Symbol.Type); - trapFile.@params(this, Name, type.TypeRef, Ordinal, ParamKind, Parent!, Original); + var kind = Symbol.GetParameterKind(); + trapFile.@params(this, Name, type.TypeRef, Ordinal, kind, Parent!, Original); if (Context.OnlyScaffold) { @@ -194,11 +177,11 @@ Symbol.ContainingSymbol is IMethodSymbol ms && return syntax?.Default; } - private class ParameterFactory : CachedEntityFactory<(IParameterSymbol, IEntity?, Parameter?), Parameter> + private class ParameterFactory : CachedEntityFactory<(IParameterSymbol, IEntity?, Parameter?, int), Parameter> { public static ParameterFactory Instance { get; } = new ParameterFactory(); - public override Parameter Create(Context cx, (IParameterSymbol, IEntity?, Parameter?) init) => new Parameter(cx, init.Item1, init.Item2, init.Item3); + public override Parameter Create(Context cx, (IParameterSymbol, IEntity?, Parameter?, int) init) => new Parameter(cx, init.Item1, init.Item2, init.Item3, init.Item4); } public override TrapStackBehaviour TrapStackBehaviour => TrapStackBehaviour.OptionalLabel; diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/SyntheticExtensionParameter.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/SyntheticExtensionParameter.cs new file mode 100644 index 000000000000..81d58507a108 --- /dev/null +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/SyntheticExtensionParameter.cs @@ -0,0 +1,77 @@ +using System.IO; +using System.Linq; +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp.Syntax; + +namespace Semmle.Extraction.CSharp.Entities +{ + /// + /// Synthetic parameter for extension methods declared using the extension syntax. + /// That is, we add a synthetic parameter `s` to `IsValid` in the following example: + /// extension(string s) { + /// public bool IsValid() { ... } + /// } + /// + /// Note, that we use the characteristics of the parameter of the extension type + /// to populate the database. + /// + internal class SyntheticExtensionParameter : FreshEntity, IParameter + { + private Method ExtensionMethod { get; } + private IParameterSymbol ExtensionParameter { get; } + private SyntheticExtensionParameter Original { get; } + + private SyntheticExtensionParameter(Context cx, Method method, IParameterSymbol parameter, SyntheticExtensionParameter? original) : base(cx) + { + ExtensionMethod = method; + ExtensionParameter = parameter; + Original = original ?? this; + } + + private static int Ordinal => 0; + + private string Name => ExtensionParameter.Name; + + private bool IsSourceDeclaration => ExtensionMethod.Symbol.IsSourceDeclaration(); + + protected override void Populate(TextWriter trapFile) + { + PopulateNullability(trapFile, ExtensionParameter.GetAnnotatedType()); + PopulateRefKind(trapFile, ExtensionParameter.RefKind); + + var type = Type.Create(Context, ExtensionParameter.Type); + var kind = ExtensionParameter.GetParameterKind(); + trapFile.@params(this, Name, type.TypeRef, Ordinal, kind, ExtensionMethod, Original); + + if (Context.OnlyScaffold) + { + return; + } + + if (Context.ExtractLocation(ExtensionParameter)) + { + var locations = Context.GetLocations(ExtensionParameter); + WriteLocationsToTrap(trapFile.param_location, this, locations); + } + + if (IsSourceDeclaration) + { + foreach (var syntax in ExtensionParameter.DeclaringSyntaxReferences + .Select(d => d.GetSyntax()) + .OfType() + .Where(s => s.Type is not null)) + { + TypeMention.Create(Context, syntax.Type!, this, type); + } + } + } + + public static SyntheticExtensionParameter Create(Context cx, Method method, IParameterSymbol parameter, SyntheticExtensionParameter? original) + { + var p = new SyntheticExtensionParameter(cx, method, parameter, original); + p.TryPopulate(); + return p; + } + } + +} diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/NamedType.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/NamedType.cs index dcf2bffe095f..078ccf01c10e 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/NamedType.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/NamedType.cs @@ -20,6 +20,8 @@ private NamedType(Context cx, INamedTypeSymbol init, bool constructUnderlyingTup public static NamedType Create(Context cx, INamedTypeSymbol type) => NamedTypeFactory.Instance.CreateEntityFromSymbol(cx, type); + public NamedType OriginalDefinition => Create(Context, Symbol.OriginalDefinition); + /// /// Creates a named type entity from a tuple type. Unlike , this /// will create an entity for the underlying `System.ValueTuple` struct. @@ -90,6 +92,25 @@ public override void Populate(TextWriter trapFile) { trapFile.anonymous_types(this); } + + if (Symbol.IsExtension && Symbol.ExtensionParameter is IParameterSymbol parameter) + { + // For some reason an extension type has a receiver parameter with an empty name + // even when there is no parameter. + if (!string.IsNullOrEmpty(parameter.Name)) + { + var originalType = OriginalDefinition; + // In case this is a constructed generic, we also need to create the unbound parameter. + var originalParameter = SymbolEqualityComparer.Default.Equals(Symbol, originalType.Symbol.ExtensionParameter) || originalType.Symbol.ExtensionParameter is null + ? null + : Parameter.Create(Context, originalType.Symbol.ExtensionParameter, originalType); + Parameter.Create(Context, parameter, this, originalParameter); + } + + // Use the parameter type as the receiver type. + var receiverType = Type.Create(Context, parameter.Type).TypeRef; + trapFile.extension_receiver_type(this, receiverType); + } } private readonly Lazy typeArgumentsLazy; diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/Type.cs b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/Type.cs index 3e79a8f81018..0f28a1153e22 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/Type.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Entities/Types/Type.cs @@ -105,6 +105,7 @@ public Kinds.TypeKind GetTypeKind(Context cx, bool constructUnderlyingTupleType) case TypeKind.Pointer: return Kinds.TypeKind.POINTER; case TypeKind.FunctionPointer: return Kinds.TypeKind.FUNCTION_POINTER; case TypeKind.Error: return Kinds.TypeKind.UNKNOWN; + case TypeKind.Extension: return Kinds.TypeKind.EXTENSION; default: cx.ModelError(Symbol, $"Unhandled type kind '{Symbol.TypeKind}'"); return Kinds.TypeKind.UNKNOWN; @@ -366,7 +367,7 @@ private class DelegateTypeParameter : Parameter private DelegateTypeParameter(Context cx, IParameterSymbol init, IEntity parent, Parameter? original) : base(cx, init, parent, original) { } - public static new DelegateTypeParameter Create(Context cx, IParameterSymbol param, IEntity parent, Parameter? original = null) => + public static DelegateTypeParameter Create(Context cx, IParameterSymbol param, IEntity parent, Parameter? original = null) => // We need to use a different cache key than `param` to avoid mixing up // `DelegateTypeParameter`s and `Parameter`s DelegateTypeParameterFactory.Instance.CreateEntity(cx, (typeof(DelegateTypeParameter), new SymbolEqualityWrapper(param)), (param, parent, original)); diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Kinds/TypeKind.cs b/csharp/extractor/Semmle.Extraction.CSharp/Kinds/TypeKind.cs index a35f25c7596c..9088a11da61f 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Kinds/TypeKind.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Kinds/TypeKind.cs @@ -38,5 +38,6 @@ public enum TypeKind TUPLE = 32, FUNCTION_POINTER = 33, INLINE_ARRAY = 34, + EXTENSION = 35 } } diff --git a/csharp/extractor/Semmle.Extraction.CSharp/Trap/Tuples.cs b/csharp/extractor/Semmle.Extraction.CSharp/Trap/Tuples.cs index b789eaa2e9c7..1a25da058bd8 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp/Trap/Tuples.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp/Trap/Tuples.cs @@ -202,6 +202,9 @@ internal static void exprorstmt_name(this TextWriter trapFile, IEntity expr, str internal static void extend(this TextWriter trapFile, Type type, Type super) => trapFile.WriteTuple("extend", type, super); + internal static void extension_receiver_type(this TextWriter trapFile, Type @extension, Type receiverType) => + trapFile.WriteTuple("extension_receiver_type", extension, receiverType); + internal static void anonymous_types(this TextWriter trapFile, Type type) => trapFile.WriteTuple("anonymous_types", type); @@ -292,10 +295,10 @@ internal static void operators(this TextWriter trapFile, UserOperator method, st internal static void overrides(this TextWriter trapFile, Method overriding, Method overridden) => trapFile.WriteTuple("overrides", overriding, overridden); - internal static void param_location(this TextWriter trapFile, Parameter param, Location location) => + internal static void param_location(this TextWriter trapFile, IParameter param, Location location) => trapFile.WriteTuple("param_location", param, location); - internal static void @params(this TextWriter trapFile, Parameter param, string name, Type type, int child, Parameter.Kind mode, IEntity method, Parameter originalDefinition) => + internal static void @params(this TextWriter trapFile, IParameter param, string name, Type type, int child, Parameter.Kind mode, IEntity method, IParameter originalDefinition) => trapFile.WriteTuple("params", param, name, type, child, (int)mode, method, originalDefinition); internal static void parent_namespace(this TextWriter trapFile, IEntity type, Namespace parent) => diff --git a/csharp/extractor/Semmle.Util/BuildActions.cs b/csharp/extractor/Semmle.Util/BuildActions.cs index 38210402945b..09696564efc5 100644 --- a/csharp/extractor/Semmle.Util/BuildActions.cs +++ b/csharp/extractor/Semmle.Util/BuildActions.cs @@ -119,6 +119,12 @@ public interface IBuildActions /// True if we are running on macOS. bool IsMacOs(); + /// + /// Gets a value indicating whether we are running on Linux. + /// + /// True if we are running on Linux. + bool IsLinux(); + /// /// Gets a value indicating whether we are running on Apple Silicon. /// @@ -246,6 +252,8 @@ int IBuildActions.RunProcess(string cmd, string args, string? workingDirectory, bool IBuildActions.IsMacOs() => RuntimeInformation.IsOSPlatform(OSPlatform.OSX); + bool IBuildActions.IsLinux() => RuntimeInformation.IsOSPlatform(OSPlatform.Linux); + bool IBuildActions.IsRunningOnAppleSilicon() { var thisBuildActions = (IBuildActions)this; diff --git a/csharp/extractor/Semmle.Util/IEnumerableExtensions.cs b/csharp/extractor/Semmle.Util/IEnumerableExtensions.cs index 1ca676f0ce6d..f4cc97a4d48c 100644 --- a/csharp/extractor/Semmle.Util/IEnumerableExtensions.cs +++ b/csharp/extractor/Semmle.Util/IEnumerableExtensions.cs @@ -119,5 +119,28 @@ public static int SequenceHash(this IEnumerable items) where T : notnull /// public static IEnumerable WhereNotNull(this IEnumerable items) where T : class => items.Where(i => i is not null)!; + + /// + /// Splits the sequence at the given index. + /// + public static (IEnumerable, IEnumerable) SplitAt(this IEnumerable items, int index) + { + var left = new List(); + var right = new List(); + var i = 0; + foreach (var item in items) + { + if (i < index) + { + left.Add(item); + } + else + { + right.Add(item); + } + i++; + } + return (left, right); + } } } diff --git a/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md b/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md index 029e03a4c9e6..68238efa1101 100644 --- a/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md +++ b/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.7.58 + +No user-facing changes. + ## 1.7.57 No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.58.md b/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.58.md new file mode 100644 index 000000000000..b6b1debf611f --- /dev/null +++ b/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.58.md @@ -0,0 +1,3 @@ +## 1.7.58 + +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 4b2fd88d6a3e..422196097f2a 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.57 +lastReleaseVersion: 1.7.58 diff --git a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml index fbfa5cf88fad..bc1e19c5d118 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.57 +version: 1.7.59-dev groups: - csharp - solorigate diff --git a/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md b/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md index 029e03a4c9e6..68238efa1101 100644 --- a/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md +++ b/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.7.58 + +No user-facing changes. + ## 1.7.57 No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.58.md b/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.58.md new file mode 100644 index 000000000000..b6b1debf611f --- /dev/null +++ b/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.58.md @@ -0,0 +1,3 @@ +## 1.7.58 + +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 4b2fd88d6a3e..422196097f2a 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.57 +lastReleaseVersion: 1.7.58 diff --git a/csharp/ql/campaigns/Solorigate/src/qlpack.yml b/csharp/ql/campaigns/Solorigate/src/qlpack.yml index 76ee08aa0b24..87016f799ea4 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.57 +version: 1.7.59-dev groups: - csharp - solorigate diff --git a/csharp/ql/integration-tests/linux/diag_nuget_config_casing/Program.cs b/csharp/ql/integration-tests/linux/diag_nuget_config_casing/Program.cs new file mode 100644 index 000000000000..39a9e95bb6e3 --- /dev/null +++ b/csharp/ql/integration-tests/linux/diag_nuget_config_casing/Program.cs @@ -0,0 +1,6 @@ +class Program +{ + static void Main(string[] args) + { + } +} \ No newline at end of file diff --git a/csharp/ql/integration-tests/linux/diag_nuget_config_casing/diagnostics.expected b/csharp/ql/integration-tests/linux/diag_nuget_config_casing/diagnostics.expected new file mode 100644 index 000000000000..063a2659f861 --- /dev/null +++ b/csharp/ql/integration-tests/linux/diag_nuget_config_casing/diagnostics.expected @@ -0,0 +1,42 @@ +{ + "markdownMessage": "C# analysis with build-mode 'none' completed.", + "severity": "unknown", + "source": { + "extractorName": "csharp", + "id": "csharp/autobuilder/buildless/complete", + "name": "C# analysis with build-mode 'none' completed" + }, + "visibility": { + "cliSummaryTable": true, + "statusPage": false, + "telemetry": true + } +} +{ + "markdownMessage": "C# was extracted with build-mode set to 'none'. This means that all C# source in the working directory will be scanned, with build tools, such as NuGet and dotnet CLIs, only contributing information about external dependencies.", + "severity": "note", + "source": { + "extractorName": "csharp", + "id": "csharp/autobuilder/buildless/mode-active", + "name": "C# was extracted with build-mode set to 'none'" + }, + "visibility": { + "cliSummaryTable": true, + "statusPage": true, + "telemetry": true + } +} +{ + "markdownMessage": "On platforms with case-sensitive file systems, NuGet only accepts files with one of the following names: nuget.config, NuGet.config, NuGet.Config.\n\nCodeQL found the following files while performing an analysis on a platform with a case-sensitive file system:\n\n- `/sub-project/Nuget.Config`\n\nTo avoid unexpected results, rename these files to match the casing of one of the accepted filenames.", + "severity": "warning", + "source": { + "extractorName": "csharp", + "id": "csharp/autobuilder/buildless/case-sensitive-nuget-config", + "name": "Found NuGet configuration files which are not correctly named" + }, + "visibility": { + "cliSummaryTable": true, + "statusPage": true, + "telemetry": true + } +} diff --git a/csharp/ql/integration-tests/linux/diag_nuget_config_casing/global.json b/csharp/ql/integration-tests/linux/diag_nuget_config_casing/global.json new file mode 100644 index 000000000000..481e95ec7be1 --- /dev/null +++ b/csharp/ql/integration-tests/linux/diag_nuget_config_casing/global.json @@ -0,0 +1,5 @@ +{ + "sdk": { + "version": "10.0.100" + } +} diff --git a/csharp/ql/integration-tests/linux/diag_nuget_config_casing/sub-project/Nuget.Config b/csharp/ql/integration-tests/linux/diag_nuget_config_casing/sub-project/Nuget.Config new file mode 100644 index 000000000000..aa5beec8aa09 --- /dev/null +++ b/csharp/ql/integration-tests/linux/diag_nuget_config_casing/sub-project/Nuget.Config @@ -0,0 +1,5 @@ + + + + + diff --git a/csharp/ql/integration-tests/linux/diag_nuget_config_casing/test.csproj b/csharp/ql/integration-tests/linux/diag_nuget_config_casing/test.csproj new file mode 100644 index 000000000000..a15a29bf12c2 --- /dev/null +++ b/csharp/ql/integration-tests/linux/diag_nuget_config_casing/test.csproj @@ -0,0 +1,8 @@ + + + + Exe + net10.0 + + + diff --git a/csharp/ql/integration-tests/linux/diag_nuget_config_casing/test.py b/csharp/ql/integration-tests/linux/diag_nuget_config_casing/test.py new file mode 100644 index 000000000000..a5d5f3fe03a4 --- /dev/null +++ b/csharp/ql/integration-tests/linux/diag_nuget_config_casing/test.py @@ -0,0 +1,5 @@ +import runs_on + +@runs_on.linux +def test(codeql, csharp): + codeql.database.create(build_mode="none") diff --git a/csharp/ql/lib/CHANGELOG.md b/csharp/ql/lib/CHANGELOG.md index 371e10c370a3..2910824c1b72 100644 --- a/csharp/ql/lib/CHANGELOG.md +++ b/csharp/ql/lib/CHANGELOG.md @@ -1,3 +1,10 @@ +## 5.4.6 + +### Minor Analysis Improvements + +* The predicate `SummarizedCallable.propagatesFlow` has been extended with the columns `Provenance p` and `boolean isExact`, and as a consequence the predicates `SummarizedCallable.hasProvenance` and `SummarizedCallable.hasExactModel` have been removed. +* C# 14: Support for null-conditional assignments (such as `c?.Prop = p`). Furthermore, the `MaybeNullExpr` class now takes null-conditional access (such as `?.`) into account when modeling potential null values. + ## 5.4.5 ### Minor Analysis Improvements diff --git a/csharp/ql/lib/change-notes/2026-02-05-extension-types.md b/csharp/ql/lib/change-notes/2026-02-05-extension-types.md new file mode 100644 index 000000000000..c3f1a21a5eda --- /dev/null +++ b/csharp/ql/lib/change-notes/2026-02-05-extension-types.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* C# 14: Added support for `extension` members in the extractor, QL library, data flow, and Models as Data, covering extension methods, properties, and operators. diff --git a/csharp/ql/lib/change-notes/2026-02-09-update-system.web.httputility-model.md b/csharp/ql/lib/change-notes/2026-02-09-update-system.web.httputility-model.md new file mode 100644 index 000000000000..750761fdf377 --- /dev/null +++ b/csharp/ql/lib/change-notes/2026-02-09-update-system.web.httputility-model.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The model for `System.Web.HttpUtility` has been modified to better model the flow of tainted URIs. \ No newline at end of file diff --git a/csharp/ql/lib/change-notes/released/5.4.6.md b/csharp/ql/lib/change-notes/released/5.4.6.md new file mode 100644 index 000000000000..31fab7d4be88 --- /dev/null +++ b/csharp/ql/lib/change-notes/released/5.4.6.md @@ -0,0 +1,6 @@ +## 5.4.6 + +### Minor Analysis Improvements + +* The predicate `SummarizedCallable.propagatesFlow` has been extended with the columns `Provenance p` and `boolean isExact`, and as a consequence the predicates `SummarizedCallable.hasProvenance` and `SummarizedCallable.hasExactModel` have been removed. +* C# 14: Support for null-conditional assignments (such as `c?.Prop = p`). Furthermore, the `MaybeNullExpr` class now takes null-conditional access (such as `?.`) into account when modeling potential null values. diff --git a/csharp/ql/lib/codeql-pack.release.yml b/csharp/ql/lib/codeql-pack.release.yml index e79e40bd1d84..2f1d6ff78a82 100644 --- a/csharp/ql/lib/codeql-pack.release.yml +++ b/csharp/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 5.4.5 +lastReleaseVersion: 5.4.6 diff --git a/csharp/ql/lib/ext/System.Web.model.yml b/csharp/ql/lib/ext/System.Web.model.yml index 6d05cdae75b5..63c539fbe5ec 100644 --- a/csharp/ql/lib/ext/System.Web.model.yml +++ b/csharp/ql/lib/ext/System.Web.model.yml @@ -29,6 +29,10 @@ extensions: - ["System.Web", "HttpUtility", False, "JavaScriptStringEncode", "(System.String)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["System.Web", "HttpUtility", False, "JavaScriptStringEncode", "(System.String,System.Boolean)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["System.Web", "HttpUtility", False, "ParseQueryString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["System.Web", "HttpUtility", False, "UrlDecode", "(System.Byte[],System.Int32,System.Int32,System.Text.Encoding)", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["System.Web", "HttpUtility", False, "UrlDecode", "(System.Byte[],System.Text.Encoding)", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["System.Web", "HttpUtility", False, "UrlDecode", "(System.String)", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["System.Web", "HttpUtility", False, "UrlDecode", "(System.String,System.Text.Encoding)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["System.Web", "HttpUtility", False, "UrlEncode", "(System.Byte[])", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["System.Web", "HttpUtility", False, "UrlEncode", "(System.Byte[],System.Int32,System.Int32)", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["System.Web", "HttpUtility", False, "UrlEncode", "(System.String)", "", "Argument[0]", "ReturnValue", "taint", "manual"] diff --git a/csharp/ql/lib/qlpack.yml b/csharp/ql/lib/qlpack.yml index 2991ad96180d..31fb2ca66187 100644 --- a/csharp/ql/lib/qlpack.yml +++ b/csharp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-all -version: 5.4.5 +version: 5.4.7-dev groups: csharp dbscheme: semmlecode.csharp.dbscheme extractor: csharp diff --git a/csharp/ql/lib/semmle/code/csharp/Callable.qll b/csharp/ql/lib/semmle/code/csharp/Callable.qll index 49a2271b27c8..f8346cfe01e2 100644 --- a/csharp/ql/lib/semmle/code/csharp/Callable.qll +++ b/csharp/ql/lib/semmle/code/csharp/Callable.qll @@ -10,6 +10,7 @@ import exprs.Call private import commons.QualifiedName private import commons.Collections private import semmle.code.csharp.ExprOrStmtParent +private import semmle.code.csharp.internal.Callable private import semmle.code.csharp.metrics.Complexity private import TypeRef @@ -223,6 +224,8 @@ class Callable extends Parameterizable, ExprOrStmtParent, @callable { Call getACall() { this = result.getTarget() } } +final class ExtensionCallable = ExtensionCallableImpl; + /** * A method, for example * @@ -267,8 +270,11 @@ class Method extends Callable, Virtualizable, Attributable, @method { override Location getALocation() { method_location(this.getUnboundDeclaration(), result) } + /** Holds if this method is a classic extension method. */ + predicate isClassicExtensionMethod() { this.getParameter(0).hasExtensionMethodModifier() } + /** Holds if this method is an extension method. */ - predicate isExtensionMethod() { this.getParameter(0).hasExtensionMethodModifier() } + predicate isExtensionMethod() { this.isClassicExtensionMethod() or this.isInExtension() } /** Gets the type of the `params` parameter of this method, if any. */ Type getParamsType() { @@ -295,8 +301,10 @@ class Method extends Callable, Virtualizable, Attributable, @method { override string getAPrimaryQlClass() { result = "Method" } } +final class ExtensionMethod = ExtensionMethodImpl; + /** - * An extension method, for example + * An extension method, for example * * ```csharp * static bool IsDefined(this Widget w) { @@ -304,16 +312,28 @@ class Method extends Callable, Virtualizable, Attributable, @method { * } * ``` */ -class ExtensionMethod extends Method { - ExtensionMethod() { this.isExtensionMethod() } +class ClassicExtensionMethod extends ExtensionMethodImpl { + ClassicExtensionMethod() { this.isClassicExtensionMethod() } - override predicate isStatic() { any() } - - /** Gets the type being extended by this method. */ pragma[noinline] - Type getExtendedType() { result = this.getParameter(0).getType() } + override Type getExtendedType() { result = this.getParameter(0).getType() } + + override predicate isStatic() { any() } +} - override string getAPrimaryQlClass() { result = "ExtensionMethod" } +/** + * An extension method declared in an extension type, for example `IsNullOrEmpty` in + * + * ```csharp + * static class MyExtensions { + * extension(string s) { + * public bool IsNullOrEmpty() { ... } + * } + * } + * ``` + */ +class ExtensionTypeExtensionMethod extends ExtensionMethodImpl { + ExtensionTypeExtensionMethod() { this.isInExtension() } } /** @@ -536,6 +556,21 @@ class RecordCloneMethod extends Method { } } +/** + * An extension operator, for example `*` in + * + * ```csharp + * static class MyExtensions { + * extension(string s) { + * public static string operator *(int s1, string s2) { ... } + * } + * } + * ``` + */ +class ExtensionOperator extends ExtensionCallableImpl, Operator { + ExtensionOperator() { this.isInExtension() } +} + /** * A user-defined unary operator - an operator taking one operand. * diff --git a/csharp/ql/lib/semmle/code/csharp/Member.qll b/csharp/ql/lib/semmle/code/csharp/Member.qll index a196d3b3fc70..b64f408af64c 100644 --- a/csharp/ql/lib/semmle/code/csharp/Member.qll +++ b/csharp/ql/lib/semmle/code/csharp/Member.qll @@ -102,6 +102,9 @@ class Declaration extends NamedElement, @declaration { * implicit constructors or accessors. */ predicate isCompilerGenerated() { compiler_generated(this) } + + /** Holds if this declaration is in an extension type. */ + predicate isInExtension() { this.getDeclaringType() instanceof ExtensionType } } /** A declaration that can have a modifier. */ @@ -469,7 +472,7 @@ class Virtualizable extends Overridable, Member, @virtualizable { /** * A parameterizable declaration. Either a callable (`Callable`), a delegate - * type (`DelegateType`), or an indexer (`Indexer`). + * type (`DelegateType`), an indexer (`Indexer`), or an extension (`ExtensionType`). */ class Parameterizable extends Declaration, @parameterizable { /** Gets raw parameter `i`, including the `this` parameter at index 0. */ diff --git a/csharp/ql/lib/semmle/code/csharp/Property.qll b/csharp/ql/lib/semmle/code/csharp/Property.qll index e651639b6313..88665280d5b9 100644 --- a/csharp/ql/lib/semmle/code/csharp/Property.qll +++ b/csharp/ql/lib/semmle/code/csharp/Property.qll @@ -6,6 +6,7 @@ import Member import Stmt import Type private import semmle.code.csharp.ExprOrStmtParent +private import semmle.code.csharp.internal.Callable private import TypeRef /** @@ -260,6 +261,21 @@ class Property extends DeclarationWithGetSetAccessors, @property { override string getAPrimaryQlClass() { result = "Property" } } +/** + * An extension property, for example `FirstChar` in + * + * ```csharp + * static class MyExtensions { + * extension(string s) { + * public char FirstChar { get { ... } } + * } + * } + * ``` + */ +class ExtensionProperty extends Property { + ExtensionProperty() { this.isInExtension() } +} + /** * An indexer, for example `string this[int i]` on line 2 in * @@ -413,6 +429,22 @@ class Accessor extends Callable, Modifiable, Attributable, Overridable, @callabl override string toString() { result = this.getName() } } +/** + * An extension accessor. Either a getter (`Getter`) or a setter (`Setter`) of an + * extension property, for example `get` in + * + * ```csharp + * static class MyExtensions { + * extension(string s) { + * public char FirstChar { get { ... } } + * } + * } + * ``` + */ +class ExtensionAccessor extends ExtensionCallableImpl, Accessor { + ExtensionAccessor() { this.isInExtension() } +} + /** * A `get` accessor, for example `get { return p; }` in * diff --git a/csharp/ql/lib/semmle/code/csharp/Type.qll b/csharp/ql/lib/semmle/code/csharp/Type.qll index 1efb1aa93bff..54bbe9a6219f 100644 --- a/csharp/ql/lib/semmle/code/csharp/Type.qll +++ b/csharp/ql/lib/semmle/code/csharp/Type.qll @@ -17,7 +17,8 @@ private import semmle.code.csharp.frameworks.system.runtime.CompilerServices * * Either a value or reference type (`ValueOrRefType`), the `void` type (`VoidType`), * a pointer type (`PointerType`), the arglist type (`ArglistType`), an unknown - * type (`UnknownType`), or a type parameter (`TypeParameter`). + * type (`UnknownType`), a type parameter (`TypeParameter`) or + * an extension type (`ExtensionType`). */ class Type extends Member, TypeContainer, @type { /** Gets the name of this type without additional syntax such as `[]` or `*`. */ @@ -1326,3 +1327,35 @@ class TypeMention extends @type_mention { /** Gets the location of this type mention. */ Location getLocation() { type_mention_location(this, result) } } + +/** + * A type extension declaration, for example `extension(string s) { ... }` in + * + * ```csharp + * static class MyExtensions { + * extension(string s) { ... } + * ``` + */ +class ExtensionType extends Parameterizable, @extension_type { + /** + * Gets the receiver parameter of this extension type, if any. + */ + Parameter getReceiverParameter() { result = this.getParameter(0) } + + /** + * Holds if this extension type has a receiver parameter. + */ + predicate hasReceiverParameter() { exists(this.getReceiverParameter()) } + + /** + * Gets the type being extended by this extension type. + */ + Type getExtendedType() { + extension_receiver_type(this, result) + or + not extension_receiver_type(this, any(Type t)) and + extension_receiver_type(this, getTypeRef(result)) + } + + override string getAPrimaryQlClass() { result = "ExtensionType" } +} diff --git a/csharp/ql/lib/semmle/code/csharp/commons/QualifiedName.qll b/csharp/ql/lib/semmle/code/csharp/commons/QualifiedName.qll index 2af02f3e85f2..6fef9cc24571 100644 --- a/csharp/ql/lib/semmle/code/csharp/commons/QualifiedName.qll +++ b/csharp/ql/lib/semmle/code/csharp/commons/QualifiedName.qll @@ -67,6 +67,12 @@ module QualifiedName { ) } + private string getName(ValueOrRefType t) { + not t instanceof ExtensionType and result = t.getUndecoratedName() + or + result = "extension(" + getFullName(t.(ExtensionType).getExtendedType()) + ")" + } + /** Holds if declaration `d` has the qualified name `qualifier`.`name`. */ predicate hasQualifiedName(Declaration d, string qualifier, string name) { d = @@ -86,12 +92,12 @@ module QualifiedName { exists(string name0 | name = name0 + Input::getUnboundGenericSuffix(ugt) | exists(string enclosing | hasQualifiedName(ugt.getDeclaringType(), qualifier, enclosing) and - name0 = enclosing + "+" + ugt.getUndecoratedName() + name0 = enclosing + "+" + getName(ugt) ) or not exists(ugt.getDeclaringType()) and qualifier = ugt.getNamespace().getFullName() and - name0 = ugt.getUndecoratedName() + name0 = getName(ugt) ) ) or @@ -100,12 +106,12 @@ module QualifiedName { exists(string name0 | name = name0 + "<" + getTypeArgumentsQualifiedNames(ct) + ">" | exists(string enclosing | hasQualifiedName(ct.getDeclaringType(), qualifier, enclosing) and - name0 = enclosing + "+" + ct.getUndecoratedName() + name0 = enclosing + "+" + getName(ct) ) or not exists(ct.getDeclaringType()) and qualifier = ct.getNamespace().getFullName() and - name0 = ct.getUndecoratedName() + name0 = getName(ct) ) ) or @@ -116,12 +122,12 @@ module QualifiedName { ( exists(string enclosing | hasQualifiedName(vort.getDeclaringType(), qualifier, enclosing) and - name = enclosing + "+" + vort.getUndecoratedName() + name = enclosing + "+" + getName(vort) ) or not exists(vort.getDeclaringType()) and qualifier = vort.getNamespace().getFullName() and - name = vort.getUndecoratedName() + name = getName(vort) ) ) or 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 96fe5703090e..6be79a17be25 100644 --- a/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll +++ b/csharp/ql/lib/semmle/code/csharp/controlflow/internal/ControlFlowGraphImpl.qll @@ -429,7 +429,7 @@ module Expressions { not this instanceof ObjectCreation and not this instanceof ArrayCreation and not this instanceof QualifiedWriteAccess and - not this instanceof AccessorWrite and + not this instanceof QualifiedAccessorWrite and not this instanceof NoNodeExpr and not this instanceof SwitchExpr and not this instanceof SwitchCaseExpr and @@ -446,21 +446,29 @@ module Expressions { } /** - * A qualified write access. In a qualified write access, the access itself is - * not evaluated, only the qualifier and the indexer arguments (if any). + * A qualified write access. + * + * The successor declaration in `QualifiedAccessorWrite` ensures that the access itself + * is evaluated after the qualifier and the indexer arguments (if any) + * and the right hand side of the assignment. + * + * When a qualified write access is used as an `out/ref` argument, the access itself is evaluated immediately. */ private class QualifiedWriteAccess extends ControlFlowTree instanceof WriteAccess, QualifiableExpr { QualifiedWriteAccess() { - this.hasQualifier() - or - // Member initializers like - // ```csharp - // new Dictionary() { [0] = "Zero", [1] = "One", [2] = "Two" } - // ``` - // need special treatment, because the accesses `[0]`, `[1]`, and `[2]` - // have no qualifier. - this = any(MemberInitializer mi).getLValue() + ( + this.hasQualifier() + or + // Member initializers like + // ```csharp + // new Dictionary() { [0] = "Zero", [1] = "One", [2] = "Two" } + // ``` + // need special treatment, because the accesses `[0]`, `[1]`, and `[2]` + // have no qualifier. + this = any(MemberInitializer mi).getLValue() + ) and + not exists(AssignableDefinitions::OutRefDefinition def | def.getTargetAccess() = this) } final override predicate propagatesAbnormal(AstNode child) { child = getExprChild(this, _) } @@ -470,25 +478,25 @@ module Expressions { final override predicate last(AstNode last, Completion c) { // Skip the access in a qualified write access last(getLastExprChild(this), last, c) + or + // Qualifier exits with a null completion + super.isConditional() and + last(super.getQualifier(), last, c) and + c.(NullnessCompletion).isNull() } final override predicate succ(AstNode pred, AstNode succ, Completion c) { exists(int i | last(getExprChild(this, i), pred, c) and c instanceof NormalCompletion and + (if i = 0 then not c.(NullnessCompletion).isNull() else any()) and first(getExprChild(this, i + 1), succ) ) } } - private class StatOrDynAccessorCall_ = - @dynamic_member_access_expr or @dynamic_element_access_expr or @call_access_expr; - - /** A normal or a (potential) dynamic call to an accessor. */ - private class StatOrDynAccessorCall extends Expr, StatOrDynAccessorCall_ { } - /** - * An expression that writes via an accessor call, for example `x.Prop = 0`, + * An expression that writes via a qualifiable expression, for example `x.Prop = 0`, * where `Prop` is a property. * * Accessor writes need special attention, because we need to model the fact @@ -498,13 +506,21 @@ module Expressions { * ```csharp * x -> 0 -> set_Prop -> x.Prop = 0 * ``` + * + * For consistency, control flow is implemented the same way for other qualified writes. + * For example, `x.Field = 0`, where `Field` is a field, we want a CFG that looks like + * + * ```csharp + * x -> 0 -> x.Field -> x.Field = 0 + * ``` */ - class AccessorWrite extends PostOrderTree instanceof Expr { + private class QualifiedAccessorWrite extends PostOrderTree instanceof Expr { AssignableDefinition def; - AccessorWrite() { + QualifiedAccessorWrite() { def.getExpr() = this and - def.getTargetAccess().(WriteAccess) instanceof StatOrDynAccessorCall and + def.getTargetAccess().(WriteAccess) instanceof QualifiableExpr and + not def instanceof AssignableDefinitions::OutRefDefinition and not this instanceof AssignOperationWithExpandedAssignment } @@ -512,10 +528,11 @@ module Expressions { * Gets the `i`th accessor being called in this write. More than one call * can happen in tuple assignments. */ - StatOrDynAccessorCall getCall(int i) { + QualifiableExpr getAccess(int i) { result = rank[i + 1](AssignableDefinitions::TupleAssignmentDefinition tdef | - tdef.getExpr() = this and tdef.getTargetAccess() instanceof StatOrDynAccessorCall + tdef.getExpr() = this and + tdef.getTargetAccess() instanceof QualifiableExpr | tdef order by tdef.getEvaluationOrder() ).getTargetAccess() @@ -528,7 +545,13 @@ module Expressions { final override predicate propagatesAbnormal(AstNode child) { child = getExprChild(this, _) or - child = this.getCall(_) + child = this.getAccess(_) + } + + final override predicate last(AstNode last, Completion c) { + PostOrderTree.super.last(last, c) + or + last(getExprChild(this, 0), last, c) and c.(NullnessCompletion).isNull() } final override predicate first(AstNode first) { first(getExprChild(this, 0), first) } @@ -538,24 +561,25 @@ module Expressions { exists(int i | last(getExprChild(this, i), pred, c) and c instanceof NormalCompletion and + (if i = 0 then not c.(NullnessCompletion).isNull() else any()) and first(getExprChild(this, i + 1), succ) ) or // Flow from last element of last child to first accessor call last(getLastExprChild(this), pred, c) and - succ = this.getCall(0) and + succ = this.getAccess(0) and c instanceof NormalCompletion or // Flow from one call to the next - exists(int i | pred = this.getCall(i) | - succ = this.getCall(i + 1) and + exists(int i | pred = this.getAccess(i) | + succ = this.getAccess(i + 1) and c.isValidFor(pred) and c instanceof NormalCompletion ) or // Post-order: flow from last call to element itself - exists(int last | last = max(int i | exists(this.getCall(i))) | - pred = this.getCall(last) and + exists(int last | last = max(int i | exists(this.getAccess(i))) | + pred = this.getAccess(last) and succ = this and c.isValidFor(pred) and c instanceof NormalCompletion @@ -704,7 +728,9 @@ module Expressions { private class ConditionallyQualifiedExpr extends PostOrderTree instanceof QualifiableExpr { private Expr qualifier; - ConditionallyQualifiedExpr() { this.isConditional() and qualifier = getExprChild(this, 0) } + ConditionallyQualifiedExpr() { + this.isConditional() and qualifier = getExprChild(this, 0) and not this instanceof WriteAccess + } final override predicate propagatesAbnormal(AstNode child) { child = qualifier } diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/FlowSummary.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/FlowSummary.qll index 18e4025f9e67..dcd07be496d9 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/FlowSummary.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/FlowSummary.qll @@ -18,6 +18,11 @@ deprecated module SummaryComponentStack = Impl::Private::SummaryComponentStack; deprecated class RequiredSummaryComponentStack = Impl::Private::RequiredSummaryComponentStack; -class SummarizedCallable = Impl::Public::SummarizedCallable; +/** Provides the `Range` class used to define the extent of `SummarizedCallable`. */ +module SummarizedCallable { + class Range = Impl::Public::SummarizedCallable; +} + +class SummarizedCallable = Impl::Public::RelevantSummarizedCallable; class Provenance = Impl::Public::Provenance; diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/Nullness.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/Nullness.qll index 6a211e71f456..c7ac34d3d01a 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/Nullness.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/Nullness.qll @@ -43,6 +43,13 @@ private Expr maybeNullExpr(Expr reason) { ) or result.(NullCoalescingExpr).getRightOperand() = maybeNullExpr(reason) + or + result = + any(QualifiableExpr qe | + qe.isConditional() and + reason = qe.getQualifier() and + not qe instanceof AssignableWrite + ) } /** An expression that may be `null`. */ diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowDispatch.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowDispatch.qll index c7d34a389793..be183815c715 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowDispatch.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowDispatch.qll @@ -380,10 +380,7 @@ class NonDelegateDataFlowCall extends DataFlowCall, TNonDelegateCall { // we are not able to dispatch to a source declaration. exists(boolean static | result = this.getATarget(static) and - not ( - result.applyGeneratedModel() and - this.hasSourceTarget() - ) + if this.hasSourceTarget() then result.hasManualModel() else any() | static = false or 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 a05651b4c644..1b3de63495f0 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll @@ -848,7 +848,7 @@ private predicate fieldOrPropertyStore(Expr e, ContentSet c, Expr src, Expr q, b FlowSummaryImpl::Private::SummarizedCallableImpl sc, FlowSummaryImpl::Private::SummaryComponentStack input, ContentSet readSet | - sc.propagatesFlow(input, _, _, _) and + sc.propagatesFlow(input, _, _, _, _, _) and input.contains(FlowSummaryImpl::Private::SummaryComponent::content(readSet)) and c.getAStoreContent() = readSet.getAReadContent() ) @@ -1021,7 +1021,6 @@ private class InstanceCallable extends Callable { private Location l; InstanceCallable() { - this = any(DataFlowCallable dfc).asCallable(l) and not this.(Modifiable).isStatic() and // local functions and delegate capture `this` and should therefore // not have a `this` parameter @@ -1119,6 +1118,7 @@ private module Cached { p = c.asCallable(_).(CallableUsedInSource).getAParameter() } or TInstanceParameterNode(InstanceCallable c, Location l) { + c = any(DataFlowCallable dfc).asCallable(l) and c instanceof CallableUsedInSource and l = c.getARelevantLocation() } or diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlow.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlow.qll index 1e6fed03d5c4..edfaae018e98 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlow.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/ExternalFlow.qll @@ -214,7 +214,7 @@ module ModelValidation { not namespace.regexpMatch("[a-zA-Z0-9_\\.]+") and result = "Dubious namespace \"" + namespace + "\" in " + pred + " model." or - not type.regexpMatch("[a-zA-Z0-9_<>,\\+]+") and + not type.regexpMatch("[a-zA-Z0-9_<>,\\(\\)\\+\\.]+") and result = "Dubious type \"" + type + "\" in " + pred + " model." or not name.regexpMatch("[a-zA-Z0-9_<>,\\.]*") and @@ -380,20 +380,23 @@ private Declaration interpretExt(Declaration d, ExtPath ext) { /** Gets the source/sink/summary/neutral element corresponding to the supplied parameters. */ pragma[nomagic] Declaration interpretElement( - string namespace, string type, boolean subtypes, string name, string signature, string ext + string namespace, string type, boolean subtypes, string name, string signature, string ext, + boolean isExact ) { elementSpec(namespace, type, subtypes, name, signature, ext) and exists(Declaration base, Declaration d | base = interpretBaseDeclaration(namespace, type, name, signature) and ( - d = base + d = base and + isExact = true or subtypes = true and ( d.(UnboundCallable).overridesOrImplementsUnbound(base) or d = base.(UnboundValueOrRefType).getASubTypeUnbound+() - ) + ) and + isExact = false ) | result = interpretExt(d, ext) @@ -586,71 +589,47 @@ string getSignature(UnboundCallable c) { } private predicate interpretSummary( - UnboundCallable c, string input, string output, string kind, string provenance, string model + UnboundCallable c, string input, string output, string kind, string provenance, boolean isExact, + string model ) { exists( string namespace, string type, boolean subtypes, string name, string signature, string ext | summaryModel(namespace, type, subtypes, name, signature, ext, input, output, kind, provenance, model) and - c = interpretElement(namespace, type, subtypes, name, signature, ext) + c = interpretElement(namespace, type, subtypes, name, signature, ext, isExact) ) } -predicate interpretNeutral(UnboundCallable c, string kind, string provenance) { +predicate interpretNeutral(UnboundCallable c, string kind, string provenance, boolean isExact) { exists(string namespace, string type, string name, string signature | Extensions::neutralModel(namespace, type, name, signature, kind, provenance) and - c = interpretElement(namespace, type, true, name, signature, "") + c = interpretElement(namespace, type, true, name, signature, "", isExact) ) } // adapter class for converting Mad summaries to `SummarizedCallable`s private class SummarizedCallableAdapter extends SummarizedCallable { - SummarizedCallableAdapter() { - exists(Provenance provenance | interpretSummary(this, _, _, _, provenance, _) | - not this.fromSource() - or - this.fromSource() and provenance.isManual() - ) - } - - private predicate relevantSummaryElementManual( - string input, string output, string kind, string model - ) { - exists(Provenance provenance | - interpretSummary(this, input, output, kind, provenance, model) and - provenance.isManual() - ) - } + string input_; + string output_; + string kind; + Provenance p_; + boolean isExact_; + string model_; - private predicate relevantSummaryElementGenerated( - string input, string output, string kind, string model - ) { - exists(Provenance provenance | - interpretSummary(this, input, output, kind, provenance, model) and - provenance.isGenerated() - ) and - not exists(Provenance provenance | - interpretNeutral(this, "summary", provenance) and - provenance.isManual() - ) + SummarizedCallableAdapter() { + interpretSummary(this, input_, output_, kind, p_, isExact_, model_) } override predicate propagatesFlow( - string input, string output, boolean preservesValue, string model + string input, string output, boolean preservesValue, Provenance p, boolean isExact, string model ) { - exists(string kind | - this.relevantSummaryElementManual(input, output, kind, model) - or - not this.relevantSummaryElementManual(_, _, _, _) and - this.relevantSummaryElementGenerated(input, output, kind, model) - | - if kind = "value" then preservesValue = true else preservesValue = false - ) - } - - override predicate hasProvenance(Provenance provenance) { - interpretSummary(this, _, _, _, provenance, _) + input = input_ and + output = output_ and + (if kind = "value" then preservesValue = true else preservesValue = false) and + p = p_ and + isExact = isExact_ and + model = model_ } } diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/FlowSummaryImpl.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/FlowSummaryImpl.qll index fd1bbebd3e4b..6f9b621ff404 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/FlowSummaryImpl.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/FlowSummaryImpl.qll @@ -18,14 +18,24 @@ module Input implements InputSig class SummarizedCallableBase = UnboundCallable; + predicate callableFromSource(SummarizedCallableBase c) { + c.fromSource() and + not c.getFile().isStub() and + not ( + c.getFile().extractedQlTest() and + ( + c.getBody() instanceof ThrowElement or + c.getBody().(BlockStmt).getStmt(0) instanceof ThrowElement + ) + ) + } + class SourceBase = Void; class SinkBase = Void; predicate neutralElement(SummarizedCallableBase c, string kind, string provenance, boolean isExact) { - interpretNeutral(c, kind, provenance) and - // isExact is not needed for C#. - isExact = false + interpretNeutral(c, kind, provenance, isExact) } ArgumentPosition callbackSelfParameterPosition() { result.isDelegateSelf() } @@ -216,7 +226,7 @@ module SourceSinkInterpretationInput implements string namespace, string type, boolean subtypes, string name, string signature, string ext | sourceModel(namespace, type, subtypes, name, signature, ext, output, kind, provenance, model) and - e = interpretElement(namespace, type, subtypes, name, signature, ext) + e = interpretElement(namespace, type, subtypes, name, signature, ext, _) ) } @@ -227,7 +237,7 @@ module SourceSinkInterpretationInput implements string namespace, string type, boolean subtypes, string name, string signature, string ext | sinkModel(namespace, type, subtypes, name, signature, ext, input, kind, provenance, model) and - e = interpretElement(namespace, type, subtypes, name, signature, ext) + e = interpretElement(namespace, type, subtypes, name, signature, ext, _) ) } @@ -238,7 +248,7 @@ module SourceSinkInterpretationInput implements string namespace, string type, boolean subtypes, string name, string signature, string ext | barrierModel(namespace, type, subtypes, name, signature, ext, output, kind, provenance, model) and - e = interpretElement(namespace, type, subtypes, name, signature, ext) + e = interpretElement(namespace, type, subtypes, name, signature, ext, _) ) } @@ -251,7 +261,7 @@ module SourceSinkInterpretationInput implements | barrierGuardModel(namespace, type, subtypes, name, signature, ext, input, acceptingvalue, kind, provenance, model) and - e = interpretElement(namespace, type, subtypes, name, signature, ext) + e = interpretElement(namespace, type, subtypes, name, signature, ext, _) ) } @@ -448,13 +458,14 @@ private class SummarizedCallableWithCallback extends Public::SummarizedCallable SummarizedCallableWithCallback() { mayInvokeCallback(this, pos) } override predicate propagatesFlow( - string input, string output, boolean preservesValue, string model + string input, string output, boolean preservesValue, Public::Provenance provenance, + boolean isExact, string model ) { input = "Argument[" + pos + "]" and output = "Argument[" + pos + "].Parameter[delegate-self]" and preservesValue = true and + provenance = "hq-generated" and + isExact = true and model = "heuristic-callback" } - - override predicate hasProvenance(Public::Provenance provenance) { provenance = "hq-generated" } } diff --git a/csharp/ql/lib/semmle/code/csharp/dispatch/Dispatch.qll b/csharp/ql/lib/semmle/code/csharp/dispatch/Dispatch.qll index c61ad0f2a2a9..a83967441d74 100644 --- a/csharp/ql/lib/semmle/code/csharp/dispatch/Dispatch.qll +++ b/csharp/ql/lib/semmle/code/csharp/dispatch/Dispatch.qll @@ -87,7 +87,8 @@ private module Internal { newtype TDispatchCall = TDispatchMethodCall(MethodCall mc) { not isReflectionCall(mc, _, _, _, _) and - not mc.isLateBound() + not mc.isLateBound() and + not isExtensionAccessorCall(mc) } or TDispatchAccessorCall(AccessorCall ac) or TDispatchOperatorCall(OperatorCall oc) { not oc.isLateBound() } or @@ -110,7 +111,8 @@ private module Internal { c instanceof ConstructorInitializer or c instanceof LocalFunctionCall - } + } or + TDispatchExtensionAccessorCall(MethodCall mc) { isExtensionAccessorCall(mc) } cached Expr getCall(DispatchCall dc) { result = dc.(DispatchCallImpl).getCall() } @@ -142,6 +144,8 @@ private module Internal { import Cached + private predicate isExtensionAccessorCall(MethodCall mc) { exists(mc.getTargetAccessor()) } + /** * Holds if `mc` is a reflection call to a method named `name`, where * `object` is the object on which to invoke the method (`null` if a @@ -819,6 +823,33 @@ private module Internal { override Method getAStaticTarget() { result = this.getCall().getTarget() } } + /** + * A call to an extension accessor method. + */ + private class DispatchExtensionAccessorCall extends DispatchCallImpl, + TDispatchExtensionAccessorCall + { + override MethodCall getCall() { this = TDispatchExtensionAccessorCall(result) } + + private Expr getArgumentForParameter(Parameter p) { + this.getCall().getTargetAccessor().getAParameter() = p and + result = this.getCall().getArgument(p.getPosition()) + } + + override Expr getArgument(int i) { + exists(MethodCall call, Parameter p | call = this.getCall() | + p = call.getTargetAccessor().getParameter(i) and + result = this.getArgumentForParameter(p) + ) + } + + override Expr getQualifier() { result = this.getCall().getQualifier() } + + override Accessor getAStaticTarget() { result = this.getCall().getTargetAccessor() } + + override RuntimeCallable getADynamicTarget() { result = this.getAStaticTarget() } + } + /** * An ordinary operator call. * diff --git a/csharp/ql/lib/semmle/code/csharp/exprs/Access.qll b/csharp/ql/lib/semmle/code/csharp/exprs/Access.qll index eafc4fac491f..84375bc70130 100644 --- a/csharp/ql/lib/semmle/code/csharp/exprs/Access.qll +++ b/csharp/ql/lib/semmle/code/csharp/exprs/Access.qll @@ -223,6 +223,40 @@ class ParameterAccess extends LocalScopeVariableAccess, @parameter_access_expr { override string getAPrimaryQlClass() { result = "ParameterAccess" } } +/** + * An access to a synthetic parameter for an extension method, for example the + * access to `s` on line 3 in + * + * ```csharp + * static class MyExtensions { + * extension(string s) { + * public bool IsEmpty() { return s == string.Empty; } + * } + * } + * ``` + */ +class SyntheticExtensionParameterAccess extends ParameterAccess { + SyntheticExtensionParameterAccess() { + exists(ExtensionType et, Parameter p | + p = et.getReceiverParameter() and + expr_access(this, p) + ) + } + + override Parameter getTarget() { + exists(ExtensionCallable c | + this.getEnclosingCallable+() = c and + result = c.getParameter(0) + ) + } + + override string toString() { + result = "access to extension synthetic parameter " + this.getTarget().getName() + } + + override string getAPrimaryQlClass() { result = "SyntheticExtensionParameterAccess" } +} + /** * An access to a parameter that reads the underlying value, for example * the access to `p` on line 2 in diff --git a/csharp/ql/lib/semmle/code/csharp/exprs/Call.qll b/csharp/ql/lib/semmle/code/csharp/exprs/Call.qll index eecbc35900aa..f8b51a990ed1 100644 --- a/csharp/ql/lib/semmle/code/csharp/exprs/Call.qll +++ b/csharp/ql/lib/semmle/code/csharp/exprs/Call.qll @@ -267,9 +267,33 @@ class Call extends Expr, @call { class MethodCall extends Call, QualifiableExpr, LateBindableExpr, @method_invocation_expr { override Method getTarget() { expr_call(this, result) } + /** + * Gets the accessor that was used to generate this method, if any. For example, the + * method call `MyExtensions.get_FirstChar(s)` on line 9 is generated from the property + * accessor `get_FirstChar` on line 3 in + * + * ```csharp + * static class MyExtensions { + * extension(string s) { + * public char FirstChar { get { ... } } + * } + * } + * + * class A { + * char M(string s) { + * return MyExtensions.get_FirstChar(s); + * } + * } + */ + Accessor getTargetAccessor() { expr_call(this, result) } + override Method getQualifiedDeclaration() { result = this.getTarget() } - override string toString() { result = "call to method " + concat(this.getTarget().getName()) } + override string toString() { + if exists(this.getTargetAccessor()) + then result = "call to extension accessor " + concat(this.getTargetAccessor().getName()) + else result = "call to method " + concat(this.getTarget().getName()) + } override string getAPrimaryQlClass() { result = "MethodCall" } @@ -479,6 +503,30 @@ class OperatorCall extends Call, LateBindableExpr, @operator_invocation_expr { override string getAPrimaryQlClass() { result = "OperatorCall" } } +/** + * A call to an extension operator, for example `3 * s` on + * line 9 in + * + * ```csharp + * static class MyExtensions { + * extension(string s) { + * public static string operator *(int i, string s) { ... } + * } + * } + * + * class A { + * string M(string s) { + * return 3 * s; + * } + * } + * ``` + */ +class ExtensionOperatorCall extends OperatorCall { + ExtensionOperatorCall() { this.getTarget() instanceof ExtensionOperator } + + override string getAPrimaryQlClass() { result = "ExtensionOperatorCall" } +} + /** * A call to a user-defined mutator operator, for example `a++` on * line 7 in @@ -658,6 +706,44 @@ class IndexerCall extends AccessorCall, IndexerAccessExpr { override string getAPrimaryQlClass() { result = "IndexerCall" } } +/** + * A call to an extension property accessor (via the property), for example + * `s.FirstChar` on line 9 in + * + * ```csharp + * static class MyExtensions { + * extension(string s) { + * public char FirstChar { get { ... } } + * } + * } + * + * class A { + * char M(string s) { + * return s.FirstChar; + * } + * } + * ``` + */ +class ExtensionPropertyCall extends PropertyCall { + private ExtensionProperty prop; + + ExtensionPropertyCall() { this.getProperty() = prop } + + override Expr getArgument(int i) { + if prop.isStatic() + then result = super.getArgument(i) + else ( + // Shift arguments as the qualifier is an explicit argument in the getter/setter. + i = 0 and + result = this.getQualifier() + or + result = super.getArgument(i - 1) + ) + } + + override string getAPrimaryQlClass() { result = "ExtensionPropertyCall" } +} + /** * A call to an event accessor, for example the call to `add_Click` * (defined on line 5) on line 12 in diff --git a/csharp/ql/lib/semmle/code/csharp/frameworks/EntityFramework.qll b/csharp/ql/lib/semmle/code/csharp/frameworks/EntityFramework.qll index 9bf516bc8760..181bfaae5cce 100644 --- a/csharp/ql/lib/semmle/code/csharp/frameworks/EntityFramework.qll +++ b/csharp/ql/lib/semmle/code/csharp/frameworks/EntityFramework.qll @@ -92,22 +92,17 @@ module EntityFramework { abstract class EFSummarizedCallable extends SummarizedCallableImpl { bindingset[this] EFSummarizedCallable() { any() } - - override predicate hasProvenance(Provenance provenance) { provenance = "manual" } } // see `SummarizedCallableImpl` qldoc private class EFSummarizedCallableAdapter extends SummarizedCallable instanceof EFSummarizedCallable { override predicate propagatesFlow( - string input, string output, boolean preservesValue, string model + string input, string output, boolean preservesValue, Provenance provenance, boolean isExact, + string model ) { none() } - - override predicate hasProvenance(Provenance provenance) { - EFSummarizedCallable.super.hasProvenance(provenance) - } } /** The class ``Microsoft.EntityFrameworkCore.DbQuery`1`` or ``System.Data.Entity.DbQuery`1``. */ @@ -177,11 +172,13 @@ module EntityFramework { override predicate propagatesFlow( SummaryComponentStack input, SummaryComponentStack output, boolean preservesValue, - string model + Provenance p, boolean isExact, string model ) { input = SummaryComponentStack::argument(0) and output = SummaryComponentStack::return() and preservesValue = false and + p = "manual" and + isExact = true and model = "RawSqlStringConstructorSummarizedCallable" } } @@ -193,11 +190,13 @@ module EntityFramework { override predicate propagatesFlow( SummaryComponentStack input, SummaryComponentStack output, boolean preservesValue, - string model + Provenance p, boolean isExact, string model ) { input = SummaryComponentStack::argument(0) and output = SummaryComponentStack::return() and preservesValue = false and + p = "manual" and + isExact = true and model = "RawSqlStringConversionSummarizedCallable" } } @@ -459,18 +458,20 @@ module EntityFramework { } private class DbContextClassSetPropertySynthetic extends EFSummarizedCallable { - private DbContextClassSetProperty p; + private DbContextClassSetProperty prop; - DbContextClassSetPropertySynthetic() { this = p.getGetter() } + DbContextClassSetPropertySynthetic() { this = prop.getGetter() } override predicate propagatesFlow( SummaryComponentStack input, SummaryComponentStack output, boolean preservesValue, - string model + Provenance p, boolean isExact, string model ) { exists(string name, DbContextClass c | preservesValue = true and - name = c.getSyntheticName(output, _, p) and + name = c.getSyntheticName(output, _, prop) and input = SummaryComponentStack::syntheticGlobal(name) and + p = "manual" and + isExact = true and model = "DbContextClassSetPropertySynthetic" ) } @@ -483,13 +484,15 @@ module EntityFramework { override predicate propagatesFlow( SummaryComponentStack input, SummaryComponentStack output, boolean preservesValue, - string model + Provenance p, boolean isExact, string model ) { exists(string name, Property mapped | preservesValue = true and c.input(input, mapped) and name = c.getSyntheticNameProj(mapped) and output = SummaryComponentStack::syntheticGlobal(name) and + p = "manual" and + isExact = true and model = "DbContextSaveChanges" ) } diff --git a/csharp/ql/lib/semmle/code/csharp/internal/Callable.qll b/csharp/ql/lib/semmle/code/csharp/internal/Callable.qll new file mode 100644 index 000000000000..533bf31c0741 --- /dev/null +++ b/csharp/ql/lib/semmle/code/csharp/internal/Callable.qll @@ -0,0 +1,33 @@ +/** + * INTERNAL: Do not use. + * + * Provides `Callable` classes, which are things that can be called + * such as methods and operators. + */ + +private import semmle.code.csharp.Callable +private import semmle.code.csharp.Property + +/** + * A callable that is declared as an extension. + * + * Either an extension method (`ExtensionMethod`), an extension operator + * (`ExtensionOperator`) or an extension accessor (`ExtensionAccessor`). + */ +abstract class ExtensionCallableImpl extends Callable { + /** Gets the type being extended by this method. */ + pragma[noinline] + Type getExtendedType() { result = this.getDeclaringType().(ExtensionType).getExtendedType() } + + override string getAPrimaryQlClass() { result = "ExtensionCallable" } +} + +/** + * An extension method. + * + * Either a classic extension method (`ClassicExtensionMethod`) or an extension + * type extension method (`ExtensionTypeExtensionMethod`). + */ +abstract class ExtensionMethodImpl extends ExtensionCallableImpl, Method { + override string getAPrimaryQlClass() { result = "ExtensionMethod" } +} diff --git a/csharp/ql/lib/semmlecode.csharp.dbscheme b/csharp/ql/lib/semmlecode.csharp.dbscheme index 68b5aec54e50..178a7e6cf335 100644 --- a/csharp/ql/lib/semmlecode.csharp.dbscheme +++ b/csharp/ql/lib/semmlecode.csharp.dbscheme @@ -492,6 +492,7 @@ case @type.kind of | 32 = @tuple_type | 33 = @function_pointer_type | 34 = @inline_array_type +| 35 = @extension_type ; @simple_type = @bool_type | @char_type | @integral_type | @floating_point_type | @decimal_type; @@ -502,7 +503,7 @@ case @type.kind of @value_type = @simple_type | @enum_type | @struct_type | @nullable_type | @int_ptr_type | @uint_ptr_type | @tuple_type | @void_type | @inline_array_type; @ref_type = @class_type | @interface_type | @array_type | @delegate_type | @null_type - | @dynamic_type; + | @dynamic_type | @extension_type; @value_or_ref_type = @value_type | @ref_type; typerefs( @@ -541,6 +542,10 @@ function_pointer_return_type( unique int function_pointer_id: @function_pointer_type ref, int return_type_id: @type_or_ref ref); +extension_receiver_type( + unique int extension: @extension_type ref, + int receiver_type_id: @type_or_ref ref); + extend( int sub: @type ref, int super: @type_or_ref ref); @@ -903,7 +908,7 @@ localvar_location( unique int id: @local_variable ref, int loc: @location ref); -@parameterizable = @callable | @delegate_type | @indexer | @function_pointer_type; +@parameterizable = @callable | @delegate_type | @indexer | @function_pointer_type | @extension_type; #keyset[name, parent_id] #keyset[index, parent_id] diff --git a/csharp/ql/lib/upgrades/68b5aec54e50fe7e375df3777b756a746ca3a37c/old.dbscheme b/csharp/ql/lib/upgrades/68b5aec54e50fe7e375df3777b756a746ca3a37c/old.dbscheme new file mode 100644 index 000000000000..68b5aec54e50 --- /dev/null +++ b/csharp/ql/lib/upgrades/68b5aec54e50fe7e375df3777b756a746ca3a37c/old.dbscheme @@ -0,0 +1,1484 @@ +/* This is a dummy line to alter the dbscheme, so we can make a database upgrade + * without actually changing any of the dbscheme predicates. It contains a date + * to allow for such updates in the future as well. + * + * 2021-07-14 + * + * DO NOT remove this comment carelessly, since it can revert the dbscheme back to a + * previously seen state (matching a previously seen SHA), which would make the upgrade + * mechanism not work properly. + */ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * csc f1.cs f2.cs f3.cs + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + unique int id : @compilation, + string cwd : string 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 + * + * csc f1.cs f2.cs f3.cs + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | --compiler + * 1 | *path to compiler* + * 2 | f1.cs + * 3 | f2.cs + * 4 | f3.cs + */ +#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.rsp` 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 + * + * csc f1.cs f2.cs f3.cs + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.cs + * 1 | f2.cs + * 2 | f3.cs + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The references used by a compiler invocation. + * If `id` is for the compiler invocation + * + * csc f1.cs f2.cs f3.cs /r:ref1.dll /r:ref2.dll /r:ref3.dll + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | ref1.dll + * 1 | ref2.dll + * 2 | ref3.dll + */ +#keyset[id, num] +compilation_referencing_files( + int id : @compilation ref, + int num : int ref, + int file : @file 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 +); + +/** + * 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 +); + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location ref +); + +extractor_messages( + unique int id: @extractor_message, + int severity: int ref, + string origin : string ref, + string text : string ref, + string entity : string ref, + int location: @location ref, + string stack_trace : string 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`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +compilation_assembly( + unique int id : @compilation ref, + int assembly: @assembly ref +) + +// Populated by the CSV extractor +externalData( + int id: @externalDataElement, + string path: string ref, + int column: int ref, + string value: string ref); + +sourceLocationPrefix( + string prefix: string ref); + +/* + * Overlay support + */ + +/** + * The CLI will automatically emit the tuple `databaseMetadata("isOverlay", "true")`, + * along with an `overlayChangedFiles` tuple for each new/modified/deleted file, + * when building an overlay database, and these can be used by the discard predicates. + */ +databaseMetadata( + string metadataKey : string ref, + string value : string ref +); + +overlayChangedFiles( + string path : string ref +); + +/* + * C# dbscheme + */ + +/** ELEMENTS **/ + +@element = @declaration | @stmt | @expr | @modifier | @attribute | @namespace_declaration + | @using_directive | @type_parameter_constraints | @externalDataElement + | @xmllocatable | @asp_element | @namespace | @preprocessor_directive; + +@declaration = @callable | @generic | @assignable | @namespace; + +@named_element = @namespace | @declaration; + +@declaration_with_accessors = @property | @indexer | @event; + +@assignable = @variable | @assignable_with_accessors | @event; + +@assignable_with_accessors = @property | @indexer; + +@attributable = @assembly | @field | @parameter | @operator | @method | @constructor + | @destructor | @callable_accessor | @value_or_ref_type | @declaration_with_accessors + | @local_function | @lambda_expr; + +/** LOCATIONS, ASEMMBLIES, MODULES, FILES and FOLDERS **/ + +@location = @location_default | @assembly; + +@locatable = @declaration_with_accessors | @callable_accessor | @declaration_or_directive + | @diagnostic | @extractor_message | @preprocessor_directive | @attribute | @type_mention | @type_parameter_constraints + | @declaration_with_accessors | @callable_accessor | @operator | @method + | @constructor | @destructor | @field | @local_variable | @parameter | @stmt | @expr + | @xmllocatable | @commentline | @commentblock | @asp_element + +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); + +locations_mapped( + unique int id: @location_default ref, + int mapped_to: @location_default ref); + +@sourceline = @file | @callable | @xmllocatable; + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref); + +assemblies( + unique int id: @assembly, + int file: @file ref, + string fullname: string ref, + string name: string ref, + string version: string 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); + +file_extraction_mode( + unique int file: @file ref, + int mode: int ref + /* 0 = normal, 1 = standalone extractor */ + ); + +/** NAMESPACES **/ + +@type_container = @namespace | @type; + +namespaces( + unique int id: @namespace, + string name: string ref); + +namespace_declarations( + unique int id: @namespace_declaration, + int namespace_id: @namespace ref); + +namespace_declaration_location( + unique int id: @namespace_declaration ref, + int loc: @location ref); + +parent_namespace( + unique int child_id: @type_container ref, + int namespace_id: @namespace ref); + +@declaration_or_directive = @namespace_declaration | @type | @using_directive; + +parent_namespace_declaration( + int child_id: @declaration_or_directive ref, // cannot be unique because of partial classes + int namespace_id: @namespace_declaration ref); + +@using_directive = @using_namespace_directive | @using_static_directive; + +using_global( + unique int id: @using_directive ref +); + +using_namespace_directives( + unique int id: @using_namespace_directive, + int namespace_id: @namespace ref); + +using_static_directives( + unique int id: @using_static_directive, + int type_id: @type_or_ref ref); + +using_directive_location( + unique int id: @using_directive ref, + int loc: @location ref); + +@preprocessor_directive = @pragma_warning | @pragma_checksum | @directive_define | @directive_undefine | @directive_warning + | @directive_error | @directive_nullable | @directive_line | @directive_region | @directive_endregion | @directive_if + | @directive_elif | @directive_else | @directive_endif; + +@conditional_directive = @directive_if | @directive_elif; +@branch_directive = @directive_if | @directive_elif | @directive_else; + +directive_ifs( + unique int id: @directive_if, + int branchTaken: int ref, /* 0: false, 1: true */ + int conditionValue: int ref); /* 0: false, 1: true */ + +directive_elifs( + unique int id: @directive_elif, + int branchTaken: int ref, /* 0: false, 1: true */ + int conditionValue: int ref, /* 0: false, 1: true */ + int parent: @directive_if ref, + int index: int ref); + +directive_elses( + unique int id: @directive_else, + int branchTaken: int ref, /* 0: false, 1: true */ + int parent: @directive_if ref, + int index: int ref); + +#keyset[id, start] +directive_endifs( + unique int id: @directive_endif, + unique int start: @directive_if ref); + +directive_define_symbols( + unique int id: @define_symbol_expr ref, + string name: string ref); + +directive_regions( + unique int id: @directive_region, + string name: string ref); + +#keyset[id, start] +directive_endregions( + unique int id: @directive_endregion, + unique int start: @directive_region ref); + +directive_lines( + unique int id: @directive_line, + int kind: int ref); /* 0: default, 1: hidden, 2: numeric, 3: span */ + +directive_line_value( + unique int id: @directive_line ref, + int line: int ref); + +directive_line_file( + unique int id: @directive_line ref, + int file: @file ref); + +directive_line_offset( + unique int id: @directive_line ref, + int offset: int ref); + +directive_line_span( + unique int id: @directive_line ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref); + +directive_nullables( + unique int id: @directive_nullable, + int setting: int ref, /* 0: disable, 1: enable, 2: restore */ + int target: int ref); /* 0: none, 1: annotations, 2: warnings */ + +directive_warnings( + unique int id: @directive_warning, + string message: string ref); + +directive_errors( + unique int id: @directive_error, + string message: string ref); + +directive_undefines( + unique int id: @directive_undefine, + string name: string ref); + +directive_defines( + unique int id: @directive_define, + string name: string ref); + +pragma_checksums( + unique int id: @pragma_checksum, + int file: @file ref, + string guid: string ref, + string bytes: string ref); + +pragma_warnings( + unique int id: @pragma_warning, + int kind: int ref /* 0 = disable, 1 = restore */); + +#keyset[id, index] +pragma_warning_error_codes( + int id: @pragma_warning ref, + string errorCode: string ref, + int index: int ref); + +preprocessor_directive_location( + unique int id: @preprocessor_directive ref, + int loc: @location ref); + +preprocessor_directive_compilation( + int id: @preprocessor_directive ref, + int compilation: @compilation ref); + +preprocessor_directive_active( + unique int id: @preprocessor_directive ref, + int active: int ref); /* 0: false, 1: true */ + +/** TYPES **/ + +types( + unique int id: @type, + int kind: int ref, + string name: string ref); + +case @type.kind of + 1 = @bool_type +| 2 = @char_type +| 3 = @decimal_type +| 4 = @sbyte_type +| 5 = @short_type +| 6 = @int_type +| 7 = @long_type +| 8 = @byte_type +| 9 = @ushort_type +| 10 = @uint_type +| 11 = @ulong_type +| 12 = @float_type +| 13 = @double_type +| 14 = @enum_type +| 15 = @struct_type +| 17 = @class_type +| 19 = @interface_type +| 20 = @delegate_type +| 21 = @null_type +| 22 = @type_parameter +| 23 = @pointer_type +| 24 = @nullable_type +| 25 = @array_type +| 26 = @void_type +| 27 = @int_ptr_type +| 28 = @uint_ptr_type +| 29 = @dynamic_type +| 30 = @arglist_type +| 31 = @unknown_type +| 32 = @tuple_type +| 33 = @function_pointer_type +| 34 = @inline_array_type + ; + +@simple_type = @bool_type | @char_type | @integral_type | @floating_point_type | @decimal_type; +@integral_type = @signed_integral_type | @unsigned_integral_type; +@signed_integral_type = @sbyte_type | @short_type | @int_type | @long_type; +@unsigned_integral_type = @byte_type | @ushort_type | @uint_type | @ulong_type; +@floating_point_type = @float_type | @double_type; +@value_type = @simple_type | @enum_type | @struct_type | @nullable_type | @int_ptr_type + | @uint_ptr_type | @tuple_type | @void_type | @inline_array_type; +@ref_type = @class_type | @interface_type | @array_type | @delegate_type | @null_type + | @dynamic_type; +@value_or_ref_type = @value_type | @ref_type; + +typerefs( + unique int id: @typeref, + string name: string ref); + +typeref_type( + int id: @typeref ref, + unique int typeId: @type ref); + +@type_or_ref = @type | @typeref; + +array_element_type( + unique int array: @array_type ref, + int dimension: int ref, + int rank: int ref, + int element: @type_or_ref ref); + +nullable_underlying_type( + unique int nullable: @nullable_type ref, + int underlying: @type_or_ref ref); + +pointer_referent_type( + unique int pointer: @pointer_type ref, + int referent: @type_or_ref ref); + +enum_underlying_type( + unique int enum_id: @enum_type ref, + int underlying_type_id: @type_or_ref ref); + +delegate_return_type( + unique int delegate_id: @delegate_type ref, + int return_type_id: @type_or_ref ref); + +function_pointer_return_type( + unique int function_pointer_id: @function_pointer_type ref, + int return_type_id: @type_or_ref ref); + +extend( + int sub: @type ref, + int super: @type_or_ref ref); + +anonymous_types( + unique int id: @type ref); + +@interface_or_ref = @interface_type | @typeref; + +implement( + int sub: @type ref, + int super: @type_or_ref ref); + +type_location( + int id: @type ref, + int loc: @location ref); + +tuple_underlying_type( + unique int tuple: @tuple_type ref, + int struct: @type_or_ref ref); + +#keyset[tuple, index] +tuple_element( + int tuple: @tuple_type ref, + int index: int ref, + unique int field: @field ref); + +attributes( + unique int id: @attribute, + int kind: int ref, + int type_id: @type_or_ref ref, + int target: @attributable ref); + +case @attribute.kind of + 0 = @attribute_default +| 1 = @attribute_return +| 2 = @attribute_assembly +| 3 = @attribute_module +; + +attribute_location( + int id: @attribute ref, + int loc: @location ref); + +@type_mention_parent = @element | @type_mention; + +type_mention( + unique int id: @type_mention, + int type_id: @type_or_ref ref, + int parent: @type_mention_parent ref); + +type_mention_location( + unique int id: @type_mention ref, + int loc: @location ref); + +@has_type_annotation = @assignable | @type_parameter | @callable | @expr | @delegate_type | @generic | @function_pointer_type; + +/** + * A direct annotation on an entity, for example `string? x;`. + * + * Annotations: + * 2 = reftype is not annotated "!" + * 3 = reftype is annotated "?" + * 4 = readonly ref type / in parameter + * 5 = ref type parameter, return or local variable + * 6 = out parameter + * + * Note that the annotation depends on the element it annotates. + * @assignable: The annotation is on the type of the assignable, for example the variable type. + * @type_parameter: The annotation is on the reftype constraint + * @callable: The annotation is on the return type + * @array_type: The annotation is on the element type + */ +type_annotation(int id: @has_type_annotation ref, int annotation: int ref); + +nullability(unique int nullability: @nullability, int kind: int ref); + +case @nullability.kind of + 0 = @oblivious +| 1 = @not_annotated +| 2 = @annotated +; + +#keyset[parent, index] +nullability_parent(int nullability: @nullability ref, int index: int ref, int parent: @nullability ref) + +type_nullability(int id: @has_type_annotation ref, int nullability: @nullability ref); + +/** + * The nullable flow state of an expression, as determined by Roslyn. + * 0 = none (default, not populated) + * 1 = not null + * 2 = maybe null + */ +expr_flowstate(unique int id: @expr ref, int state: int ref); + +/** GENERICS **/ + +@generic = @type | @method | @local_function; + +type_parameters( + unique int id: @type_parameter ref, + int index: int ref, + int generic_id: @generic ref, + int variance: int ref /* none = 0, out = 1, in = 2 */); + +#keyset[constructed_id, index] +type_arguments( + int id: @type_or_ref ref, + int index: int ref, + int constructed_id: @generic_or_ref ref); + +@generic_or_ref = @generic | @typeref; + +constructed_generic( + unique int constructed: @generic ref, + int generic: @generic_or_ref ref); + +type_parameter_constraints( + unique int id: @type_parameter_constraints, + int param_id: @type_parameter ref); + +type_parameter_constraints_location( + int id: @type_parameter_constraints ref, + int loc: @location ref); + +general_type_parameter_constraints( + int id: @type_parameter_constraints ref, + int kind: int ref /* class = 1, struct = 2, new = 3 */); + +specific_type_parameter_constraints( + int id: @type_parameter_constraints ref, + int base_id: @type_or_ref ref); + +specific_type_parameter_nullability( + int id: @type_parameter_constraints ref, + int base_id: @type_or_ref ref, + int nullability: @nullability ref); + +/** FUNCTION POINTERS */ + +function_pointer_calling_conventions( + int id: @function_pointer_type ref, + int kind: int ref); + +#keyset[id, index] +has_unmanaged_calling_conventions( + int id: @function_pointer_type ref, + int index: int ref, + int conv_id: @type_or_ref ref); + +/** MODIFIERS */ + +@modifiable = @modifiable_direct | @event_accessor; + +@modifiable_direct = @member | @accessor | @local_function | @anonymous_function_expr; + +modifiers( + unique int id: @modifier, + string name: string ref); + +has_modifiers( + int id: @modifiable_direct ref, + int mod_id: @modifier ref); + +/** MEMBERS **/ + +@member = @method | @constructor | @destructor | @field | @property | @event | @operator | @indexer | @type; + +@named_exprorstmt = @goto_stmt | @labeled_stmt | @expr; + +@virtualizable = @method | @property | @indexer | @event | @operator; + +exprorstmt_name( + unique int parent_id: @named_exprorstmt ref, + string name: string ref); + +nested_types( + unique int id: @type ref, + int declaring_type_id: @type ref, + int unbound_id: @type ref); + +properties( + unique int id: @property, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @property ref); + +property_location( + int id: @property ref, + int loc: @location ref); + +indexers( + unique int id: @indexer, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @indexer ref); + +indexer_location( + int id: @indexer ref, + int loc: @location ref); + +accessors( + unique int id: @accessor, + int kind: int ref, + string name: string ref, + int declaring_member_id: @member ref, + int unbound_id: @accessor ref); + +case @accessor.kind of + 1 = @getter +| 2 = @setter + ; + +init_only_accessors( + unique int id: @accessor ref); + +accessor_location( + int id: @accessor ref, + int loc: @location ref); + +events( + unique int id: @event, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @event ref); + +event_location( + int id: @event ref, + int loc: @location ref); + +event_accessors( + unique int id: @event_accessor, + int kind: int ref, + string name: string ref, + int declaring_event_id: @event ref, + int unbound_id: @event_accessor ref); + +case @event_accessor.kind of + 1 = @add_event_accessor +| 2 = @remove_event_accessor + ; + +event_accessor_location( + int id: @event_accessor ref, + int loc: @location ref); + +operators( + unique int id: @operator, + string name: string ref, + string symbol: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @operator ref); + +operator_location( + int id: @operator ref, + int loc: @location ref); + +constant_value( + int id: @variable ref, + string value: string ref); + +/** CALLABLES **/ + +@callable = @method | @constructor | @destructor | @operator | @callable_accessor | @anonymous_function_expr | @local_function; + +@callable_accessor = @accessor | @event_accessor; + +methods( + unique int id: @method, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @method ref); + +method_location( + int id: @method ref, + int loc: @location ref); + +constructors( + unique int id: @constructor, + string name: string ref, + int declaring_type_id: @type ref, + int unbound_id: @constructor ref); + +constructor_location( + int id: @constructor ref, + int loc: @location ref); + +destructors( + unique int id: @destructor, + string name: string ref, + int declaring_type_id: @type ref, + int unbound_id: @destructor ref); + +destructor_location( + int id: @destructor ref, + int loc: @location ref); + +overrides( + int id: @callable ref, + int base_id: @callable ref); + +explicitly_implements( + int id: @member ref, + int interface_id: @interface_or_ref ref); + +local_functions( + unique int id: @local_function, + string name: string ref, + int return_type: @type ref, + int unbound_id: @local_function ref); + +local_function_stmts( + unique int fn: @local_function_stmt ref, + int stmt: @local_function ref); + +/** VARIABLES **/ + +@variable = @local_scope_variable | @field; + +@local_scope_variable = @local_variable | @parameter; + +fields( + unique int id: @field, + int kind: int ref, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @field ref); + +case @field.kind of + 1 = @addressable_field +| 2 = @constant + ; + +field_location( + int id: @field ref, + int loc: @location ref); + +localvars( + unique int id: @local_variable, + int kind: int ref, + string name: string ref, + int implicitly_typed: int ref /* 0 = no, 1 = yes */, + int type_id: @type_or_ref ref, + int parent_id: @local_var_decl_expr ref); + +case @local_variable.kind of + 1 = @addressable_local_variable +| 2 = @local_constant +| 3 = @local_variable_ref + ; + +localvar_location( + unique int id: @local_variable ref, + int loc: @location ref); + +@parameterizable = @callable | @delegate_type | @indexer | @function_pointer_type; + +#keyset[name, parent_id] +#keyset[index, parent_id] +params( + unique int id: @parameter, + string name: string ref, + int type_id: @type_or_ref ref, + int index: int ref, + int mode: int ref, /* value = 0, ref = 1, out = 2, params/array = 3, this = 4, in = 5, ref readonly = 6 */ + int parent_id: @parameterizable ref, + int unbound_id: @parameter ref); + +param_location( + int id: @parameter ref, + int loc: @location ref); + +@has_scoped_annotation = @local_scope_variable + +scoped_annotation( + int id: @has_scoped_annotation ref, + int kind: int ref // scoped ref = 1, scoped value = 2 + ); + +/** STATEMENTS **/ + +@exprorstmt_parent = @control_flow_element | @top_level_exprorstmt_parent; + +statements( + unique int id: @stmt, + int kind: int ref); + +#keyset[index, parent] +stmt_parent( + unique int stmt: @stmt ref, + int index: int ref, + int parent: @control_flow_element ref); + +@top_level_stmt_parent = @callable; + +// [index, parent] is not a keyset because the same parent may be compiled multiple times +stmt_parent_top_level( + unique int stmt: @stmt ref, + int index: int ref, + int parent: @top_level_stmt_parent ref); + +case @stmt.kind of + 1 = @block_stmt +| 2 = @expr_stmt +| 3 = @if_stmt +| 4 = @switch_stmt +| 5 = @while_stmt +| 6 = @do_stmt +| 7 = @for_stmt +| 8 = @foreach_stmt +| 9 = @break_stmt +| 10 = @continue_stmt +| 11 = @goto_stmt +| 12 = @goto_case_stmt +| 13 = @goto_default_stmt +| 14 = @throw_stmt +| 15 = @return_stmt +| 16 = @yield_stmt +| 17 = @try_stmt +| 18 = @checked_stmt +| 19 = @unchecked_stmt +| 20 = @lock_stmt +| 21 = @using_block_stmt +| 22 = @var_decl_stmt +| 23 = @const_decl_stmt +| 24 = @empty_stmt +| 25 = @unsafe_stmt +| 26 = @fixed_stmt +| 27 = @label_stmt +| 28 = @catch +| 29 = @case_stmt +| 30 = @local_function_stmt +| 31 = @using_decl_stmt + ; + +@using_stmt = @using_block_stmt | @using_decl_stmt; + +@labeled_stmt = @label_stmt | @case; + +@decl_stmt = @var_decl_stmt | @const_decl_stmt | @using_decl_stmt; + +@cond_stmt = @if_stmt | @switch_stmt; + +@loop_stmt = @while_stmt | @do_stmt | @for_stmt | @foreach_stmt; + +@jump_stmt = @break_stmt | @goto_any_stmt | @continue_stmt | @throw_stmt | @return_stmt + | @yield_stmt; + +@goto_any_stmt = @goto_default_stmt | @goto_case_stmt | @goto_stmt; + + +stmt_location( + unique int id: @stmt ref, + int loc: @location ref); + +catch_type( + unique int catch_id: @catch ref, + int type_id: @type_or_ref ref, + int kind: int ref /* explicit = 1, implicit = 2 */); + +foreach_stmt_info( + unique int id: @foreach_stmt ref, + int kind: int ref /* non-async = 1, async = 2 */); + +@foreach_symbol = @method | @property | @type_or_ref; + +#keyset[id, kind] +foreach_stmt_desugar( + int id: @foreach_stmt ref, + int symbol: @foreach_symbol ref, + int kind: int ref /* GetEnumeratorMethod = 1, CurrentProperty = 2, MoveNextMethod = 3, DisposeMethod = 4, ElementType = 5 */); + +/** EXPRESSIONS **/ + +expressions( + unique int id: @expr, + int kind: int ref, + int type_id: @type_or_ref ref); + +#keyset[index, parent] +expr_parent( + unique int expr: @expr ref, + int index: int ref, + int parent: @control_flow_element ref); + +@top_level_expr_parent = @attribute | @field | @property | @indexer | @parameter | @directive_if | @directive_elif; + +@top_level_exprorstmt_parent = @top_level_expr_parent | @top_level_stmt_parent; + +// [index, parent] is not a keyset because the same parent may be compiled multiple times +expr_parent_top_level( + unique int expr: @expr ref, + int index: int ref, + int parent: @top_level_exprorstmt_parent ref); + +case @expr.kind of +/* literal */ + 1 = @bool_literal_expr +| 2 = @char_literal_expr +| 3 = @decimal_literal_expr +| 4 = @int_literal_expr +| 5 = @long_literal_expr +| 6 = @uint_literal_expr +| 7 = @ulong_literal_expr +| 8 = @float_literal_expr +| 9 = @double_literal_expr +| 10 = @utf16_string_literal_expr +| 11 = @null_literal_expr +/* primary & unary */ +| 12 = @this_access_expr +| 13 = @base_access_expr +| 14 = @local_variable_access_expr +| 15 = @parameter_access_expr +| 16 = @field_access_expr +| 17 = @property_access_expr +| 18 = @method_access_expr +| 19 = @event_access_expr +| 20 = @indexer_access_expr +| 21 = @array_access_expr +| 22 = @type_access_expr +| 23 = @typeof_expr +| 24 = @method_invocation_expr +| 25 = @delegate_invocation_expr +| 26 = @operator_invocation_expr +| 27 = @cast_expr +| 28 = @object_creation_expr +| 29 = @explicit_delegate_creation_expr +| 30 = @implicit_delegate_creation_expr +| 31 = @array_creation_expr +| 32 = @default_expr +| 33 = @plus_expr +| 34 = @minus_expr +| 35 = @bit_not_expr +| 36 = @log_not_expr +| 37 = @post_incr_expr +| 38 = @post_decr_expr +| 39 = @pre_incr_expr +| 40 = @pre_decr_expr +/* multiplicative */ +| 41 = @mul_expr +| 42 = @div_expr +| 43 = @rem_expr +/* additive */ +| 44 = @add_expr +| 45 = @sub_expr +/* shift */ +| 46 = @lshift_expr +| 47 = @rshift_expr +/* relational */ +| 48 = @lt_expr +| 49 = @gt_expr +| 50 = @le_expr +| 51 = @ge_expr +/* equality */ +| 52 = @eq_expr +| 53 = @ne_expr +/* logical */ +| 54 = @bit_and_expr +| 55 = @bit_xor_expr +| 56 = @bit_or_expr +| 57 = @log_and_expr +| 58 = @log_or_expr +/* type testing */ +| 59 = @is_expr +| 60 = @as_expr +/* null coalescing */ +| 61 = @null_coalescing_expr +/* conditional */ +| 62 = @conditional_expr +/* assignment */ +| 63 = @simple_assign_expr +| 64 = @assign_add_expr +| 65 = @assign_sub_expr +| 66 = @assign_mul_expr +| 67 = @assign_div_expr +| 68 = @assign_rem_expr +| 69 = @assign_and_expr +| 70 = @assign_xor_expr +| 71 = @assign_or_expr +| 72 = @assign_lshift_expr +| 73 = @assign_rshift_expr +/* more */ +| 74 = @object_init_expr +| 75 = @collection_init_expr +| 76 = @array_init_expr +| 77 = @checked_expr +| 78 = @unchecked_expr +| 79 = @constructor_init_expr +| 80 = @add_event_expr +| 81 = @remove_event_expr +| 82 = @par_expr +| 83 = @local_var_decl_expr +| 84 = @lambda_expr +| 85 = @anonymous_method_expr +| 86 = @namespace_expr +/* dynamic */ +| 92 = @dynamic_element_access_expr +| 93 = @dynamic_member_access_expr +/* unsafe */ +| 100 = @pointer_indirection_expr +| 101 = @address_of_expr +| 102 = @sizeof_expr +/* async */ +| 103 = @await_expr +/* C# 6.0 */ +| 104 = @nameof_expr +| 105 = @interpolated_string_expr +| 106 = @unknown_expr +/* C# 7.0 */ +| 107 = @throw_expr +| 108 = @tuple_expr +| 109 = @local_function_invocation_expr +| 110 = @ref_expr +| 111 = @discard_expr +/* C# 8.0 */ +| 112 = @range_expr +| 113 = @index_expr +| 114 = @switch_expr +| 115 = @recursive_pattern_expr +| 116 = @property_pattern_expr +| 117 = @positional_pattern_expr +| 118 = @switch_case_expr +| 119 = @assign_coalesce_expr +| 120 = @suppress_nullable_warning_expr +| 121 = @namespace_access_expr +/* C# 9.0 */ +| 122 = @lt_pattern_expr +| 123 = @gt_pattern_expr +| 124 = @le_pattern_expr +| 125 = @ge_pattern_expr +| 126 = @not_pattern_expr +| 127 = @and_pattern_expr +| 128 = @or_pattern_expr +| 129 = @function_pointer_invocation_expr +| 130 = @with_expr +/* C# 11.0 */ +| 131 = @list_pattern_expr +| 132 = @slice_pattern_expr +| 133 = @urshift_expr +| 134 = @assign_urshift_expr +| 135 = @utf8_string_literal_expr +/* C# 12.0 */ +| 136 = @collection_expr +| 137 = @spread_element_expr +| 138 = @interpolated_string_insert_expr +/* Preprocessor */ +| 999 = @define_symbol_expr +; + +@switch = @switch_stmt | @switch_expr; +@case = @case_stmt | @switch_case_expr; +@pattern_match = @case | @is_expr; +@unary_pattern_expr = @not_pattern_expr; +@relational_pattern_expr = @gt_pattern_expr | @lt_pattern_expr | @ge_pattern_expr | @le_pattern_expr; +@binary_pattern_expr = @and_pattern_expr | @or_pattern_expr; + +@integer_literal_expr = @int_literal_expr | @long_literal_expr | @uint_literal_expr | @ulong_literal_expr; +@real_literal_expr = @float_literal_expr | @double_literal_expr | @decimal_literal_expr; +@string_literal_expr = @utf16_string_literal_expr | @utf8_string_literal_expr; +@literal_expr = @bool_literal_expr | @char_literal_expr | @integer_literal_expr | @real_literal_expr + | @string_literal_expr | @null_literal_expr; + +@assign_expr = @simple_assign_expr | @assign_op_expr | @local_var_decl_expr; +@assign_op_expr = @assign_arith_expr | @assign_bitwise_expr | @assign_event_expr | @assign_coalesce_expr; +@assign_event_expr = @add_event_expr | @remove_event_expr; + +@assign_arith_expr = @assign_add_expr | @assign_sub_expr | @assign_mul_expr | @assign_div_expr + | @assign_rem_expr +@assign_bitwise_expr = @assign_and_expr | @assign_or_expr | @assign_xor_expr + | @assign_lshift_expr | @assign_rshift_expr | @assign_urshift_expr; + +@member_access_expr = @field_access_expr | @property_access_expr | @indexer_access_expr | @event_access_expr + | @method_access_expr | @type_access_expr | @dynamic_member_access_expr; +@access_expr = @member_access_expr | @this_access_expr | @base_access_expr | @assignable_access_expr | @namespace_access_expr; +@element_access_expr = @indexer_access_expr | @array_access_expr | @dynamic_element_access_expr; + +@local_variable_access = @local_variable_access_expr | @local_var_decl_expr; +@local_scope_variable_access_expr = @parameter_access_expr | @local_variable_access; +@variable_access_expr = @local_scope_variable_access_expr | @field_access_expr; + +@assignable_access_expr = @variable_access_expr | @property_access_expr | @element_access_expr + | @event_access_expr | @dynamic_member_access_expr; + +@objectorcollection_init_expr = @object_init_expr | @collection_init_expr; + +@delegate_creation_expr = @explicit_delegate_creation_expr | @implicit_delegate_creation_expr; + +@bin_arith_op_expr = @mul_expr | @div_expr | @rem_expr | @add_expr | @sub_expr; +@incr_op_expr = @pre_incr_expr | @post_incr_expr; +@decr_op_expr = @pre_decr_expr | @post_decr_expr; +@mut_op_expr = @incr_op_expr | @decr_op_expr; +@un_arith_op_expr = @plus_expr | @minus_expr | @mut_op_expr; +@arith_op_expr = @bin_arith_op_expr | @un_arith_op_expr; + +@ternary_log_op_expr = @conditional_expr; +@bin_log_op_expr = @log_and_expr | @log_or_expr | @null_coalescing_expr; +@un_log_op_expr = @log_not_expr; +@log_expr = @un_log_op_expr | @bin_log_op_expr | @ternary_log_op_expr; + +@bin_bit_op_expr = @bit_and_expr | @bit_or_expr | @bit_xor_expr | @lshift_expr + | @rshift_expr | @urshift_expr; +@un_bit_op_expr = @bit_not_expr; +@bit_expr = @un_bit_op_expr | @bin_bit_op_expr; + +@equality_op_expr = @eq_expr | @ne_expr; +@rel_op_expr = @gt_expr | @lt_expr| @ge_expr | @le_expr; +@comp_expr = @equality_op_expr | @rel_op_expr; + +@op_expr = @assign_expr | @un_op | @bin_op | @ternary_op; + +@ternary_op = @ternary_log_op_expr; +@bin_op = @bin_arith_op_expr | @bin_log_op_expr | @bin_bit_op_expr | @comp_expr; +@un_op = @un_arith_op_expr | @un_log_op_expr | @un_bit_op_expr | @sizeof_expr + | @pointer_indirection_expr | @address_of_expr; + +@anonymous_function_expr = @lambda_expr | @anonymous_method_expr; + +@call = @method_invocation_expr | @constructor_init_expr | @operator_invocation_expr + | @delegate_invocation_expr | @object_creation_expr | @call_access_expr + | @local_function_invocation_expr | @function_pointer_invocation_expr; + +@call_access_expr = @property_access_expr | @event_access_expr | @indexer_access_expr; + +@late_bindable_expr = @dynamic_element_access_expr | @dynamic_member_access_expr + | @object_creation_expr | @method_invocation_expr | @operator_invocation_expr; + +@throw_element = @throw_expr | @throw_stmt; + +@implicitly_typeable_object_creation_expr = @object_creation_expr | @explicit_delegate_creation_expr; + +implicitly_typed_array_creation( + unique int id: @array_creation_expr ref); + +explicitly_sized_array_creation( + unique int id: @array_creation_expr ref); + +stackalloc_array_creation( + unique int id: @array_creation_expr ref); + +implicitly_typed_object_creation( + unique int id: @implicitly_typeable_object_creation_expr ref); + +mutator_invocation_mode( + unique int id: @operator_invocation_expr ref, + int mode: int ref /* prefix = 1, postfix = 2*/); + +expr_value( + unique int id: @expr ref, + string value: string ref); + +expr_call( + unique int caller_id: @expr ref, + int target_id: @callable ref); + +expr_access( + unique int accesser_id: @access_expr ref, + int target_id: @accessible ref); + +@accessible = @method | @assignable | @local_function | @namespace; + +expr_location( + unique int id: @expr ref, + int loc: @location ref); + +dynamic_member_name( + unique int id: @late_bindable_expr ref, + string name: string ref); + +@qualifiable_expr = @member_access_expr + | @method_invocation_expr + | @element_access_expr; + +conditional_access( + unique int id: @qualifiable_expr ref); + +expr_argument( + unique int id: @expr ref, + int mode: int ref); + /* mode is the same as params: value = 0, ref = 1, out = 2 */ + +expr_argument_name( + unique int id: @expr ref, + string name: string ref); + +lambda_expr_return_type( + unique int id: @lambda_expr ref, + int type_id: @type_or_ref ref); + +/* Compiler generated */ + +compiler_generated(unique int id: @element ref); + +/** CONTROL/DATA FLOW **/ + +@control_flow_element = @stmt | @expr; + +/* 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; + +/* Comments */ + +commentline( + unique int id: @commentline, + int kind: int ref, + string text: string ref, + string rawtext: string ref); + +case @commentline.kind of + 0 = @singlelinecomment +| 1 = @xmldoccomment +| 2 = @multilinecomment; + +commentline_location( + unique int id: @commentline ref, + int loc: @location ref); + +commentblock( + unique int id : @commentblock); + +commentblock_location( + unique int id: @commentblock ref, + int loc: @location ref); + +commentblock_binding( + int id: @commentblock ref, + int entity: @element ref, + int bindtype: int ref); /* 0: Parent, 1: Best, 2: Before, 3: After */ + +commentblock_child( + int id: @commentblock ref, + int commentline: @commentline ref, + int index: int ref); + +/* ASP.NET */ + +case @asp_element.kind of + 0=@asp_close_tag +| 1=@asp_code +| 2=@asp_comment +| 3=@asp_data_binding +| 4=@asp_directive +| 5=@asp_open_tag +| 6=@asp_quoted_string +| 7=@asp_text +| 8=@asp_xml_directive; + +@asp_attribute = @asp_code | @asp_data_binding | @asp_quoted_string; + +asp_elements( + unique int id: @asp_element, + int kind: int ref, + int loc: @location ref); + +asp_comment_server(unique int comment: @asp_comment ref); +asp_code_inline(unique int code: @asp_code ref); +asp_directive_attribute( + int directive: @asp_directive ref, + int index: int ref, + string name: string ref, + int value: @asp_quoted_string ref); +asp_directive_name( + unique int directive: @asp_directive ref, + string name: string ref); +asp_element_body( + unique int element: @asp_element ref, + string body: string ref); +asp_tag_attribute( + int tag: @asp_open_tag ref, + int index: int ref, + string name: string ref, + int attribute: @asp_attribute ref); +asp_tag_name( + unique int tag: @asp_open_tag ref, + string name: string ref); +asp_tag_isempty(int tag: @asp_open_tag ref); diff --git a/csharp/ql/lib/upgrades/68b5aec54e50fe7e375df3777b756a746ca3a37c/semmlecode.csharp.dbscheme b/csharp/ql/lib/upgrades/68b5aec54e50fe7e375df3777b756a746ca3a37c/semmlecode.csharp.dbscheme new file mode 100644 index 000000000000..178a7e6cf335 --- /dev/null +++ b/csharp/ql/lib/upgrades/68b5aec54e50fe7e375df3777b756a746ca3a37c/semmlecode.csharp.dbscheme @@ -0,0 +1,1489 @@ +/* This is a dummy line to alter the dbscheme, so we can make a database upgrade + * without actually changing any of the dbscheme predicates. It contains a date + * to allow for such updates in the future as well. + * + * 2021-07-14 + * + * DO NOT remove this comment carelessly, since it can revert the dbscheme back to a + * previously seen state (matching a previously seen SHA), which would make the upgrade + * mechanism not work properly. + */ + +/** + * An invocation of the compiler. Note that more than one file may be + * compiled per invocation. For example, this command compiles three + * source files: + * + * csc f1.cs f2.cs f3.cs + * + * The `id` simply identifies the invocation, while `cwd` is the working + * directory from which the compiler was invoked. + */ +compilations( + unique int id : @compilation, + string cwd : string 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 + * + * csc f1.cs f2.cs f3.cs + * + * then typically there will be rows for + * + * num | arg + * --- | --- + * 0 | --compiler + * 1 | *path to compiler* + * 2 | f1.cs + * 3 | f2.cs + * 4 | f3.cs + */ +#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.rsp` 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 + * + * csc f1.cs f2.cs f3.cs + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | f1.cs + * 1 | f2.cs + * 2 | f3.cs + */ +#keyset[id, num] +compilation_compiling_files( + int id : @compilation ref, + int num : int ref, + int file : @file ref +); + +/** + * The references used by a compiler invocation. + * If `id` is for the compiler invocation + * + * csc f1.cs f2.cs f3.cs /r:ref1.dll /r:ref2.dll /r:ref3.dll + * + * then there will be rows for + * + * num | arg + * --- | --- + * 0 | ref1.dll + * 1 | ref2.dll + * 2 | ref3.dll + */ +#keyset[id, num] +compilation_referencing_files( + int id : @compilation ref, + int num : int ref, + int file : @file 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 +); + +/** + * 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 +); + +diagnostics( + unique int id: @diagnostic, + int severity: int ref, + string error_tag: string ref, + string error_message: string ref, + string full_error_message: string ref, + int location: @location ref +); + +extractor_messages( + unique int id: @extractor_message, + int severity: int ref, + string origin : string ref, + string text : string ref, + string entity : string ref, + int location: @location ref, + string stack_trace : string 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`. + */ +compilation_finished( + unique int id : @compilation ref, + float cpu_seconds : float ref, + float elapsed_seconds : float ref +); + +compilation_assembly( + unique int id : @compilation ref, + int assembly: @assembly ref +) + +// Populated by the CSV extractor +externalData( + int id: @externalDataElement, + string path: string ref, + int column: int ref, + string value: string ref); + +sourceLocationPrefix( + string prefix: string ref); + +/* + * Overlay support + */ + +/** + * The CLI will automatically emit the tuple `databaseMetadata("isOverlay", "true")`, + * along with an `overlayChangedFiles` tuple for each new/modified/deleted file, + * when building an overlay database, and these can be used by the discard predicates. + */ +databaseMetadata( + string metadataKey : string ref, + string value : string ref +); + +overlayChangedFiles( + string path : string ref +); + +/* + * C# dbscheme + */ + +/** ELEMENTS **/ + +@element = @declaration | @stmt | @expr | @modifier | @attribute | @namespace_declaration + | @using_directive | @type_parameter_constraints | @externalDataElement + | @xmllocatable | @asp_element | @namespace | @preprocessor_directive; + +@declaration = @callable | @generic | @assignable | @namespace; + +@named_element = @namespace | @declaration; + +@declaration_with_accessors = @property | @indexer | @event; + +@assignable = @variable | @assignable_with_accessors | @event; + +@assignable_with_accessors = @property | @indexer; + +@attributable = @assembly | @field | @parameter | @operator | @method | @constructor + | @destructor | @callable_accessor | @value_or_ref_type | @declaration_with_accessors + | @local_function | @lambda_expr; + +/** LOCATIONS, ASEMMBLIES, MODULES, FILES and FOLDERS **/ + +@location = @location_default | @assembly; + +@locatable = @declaration_with_accessors | @callable_accessor | @declaration_or_directive + | @diagnostic | @extractor_message | @preprocessor_directive | @attribute | @type_mention | @type_parameter_constraints + | @declaration_with_accessors | @callable_accessor | @operator | @method + | @constructor | @destructor | @field | @local_variable | @parameter | @stmt | @expr + | @xmllocatable | @commentline | @commentblock | @asp_element + +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); + +locations_mapped( + unique int id: @location_default ref, + int mapped_to: @location_default ref); + +@sourceline = @file | @callable | @xmllocatable; + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref); + +assemblies( + unique int id: @assembly, + int file: @file ref, + string fullname: string ref, + string name: string ref, + string version: string 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); + +file_extraction_mode( + unique int file: @file ref, + int mode: int ref + /* 0 = normal, 1 = standalone extractor */ + ); + +/** NAMESPACES **/ + +@type_container = @namespace | @type; + +namespaces( + unique int id: @namespace, + string name: string ref); + +namespace_declarations( + unique int id: @namespace_declaration, + int namespace_id: @namespace ref); + +namespace_declaration_location( + unique int id: @namespace_declaration ref, + int loc: @location ref); + +parent_namespace( + unique int child_id: @type_container ref, + int namespace_id: @namespace ref); + +@declaration_or_directive = @namespace_declaration | @type | @using_directive; + +parent_namespace_declaration( + int child_id: @declaration_or_directive ref, // cannot be unique because of partial classes + int namespace_id: @namespace_declaration ref); + +@using_directive = @using_namespace_directive | @using_static_directive; + +using_global( + unique int id: @using_directive ref +); + +using_namespace_directives( + unique int id: @using_namespace_directive, + int namespace_id: @namespace ref); + +using_static_directives( + unique int id: @using_static_directive, + int type_id: @type_or_ref ref); + +using_directive_location( + unique int id: @using_directive ref, + int loc: @location ref); + +@preprocessor_directive = @pragma_warning | @pragma_checksum | @directive_define | @directive_undefine | @directive_warning + | @directive_error | @directive_nullable | @directive_line | @directive_region | @directive_endregion | @directive_if + | @directive_elif | @directive_else | @directive_endif; + +@conditional_directive = @directive_if | @directive_elif; +@branch_directive = @directive_if | @directive_elif | @directive_else; + +directive_ifs( + unique int id: @directive_if, + int branchTaken: int ref, /* 0: false, 1: true */ + int conditionValue: int ref); /* 0: false, 1: true */ + +directive_elifs( + unique int id: @directive_elif, + int branchTaken: int ref, /* 0: false, 1: true */ + int conditionValue: int ref, /* 0: false, 1: true */ + int parent: @directive_if ref, + int index: int ref); + +directive_elses( + unique int id: @directive_else, + int branchTaken: int ref, /* 0: false, 1: true */ + int parent: @directive_if ref, + int index: int ref); + +#keyset[id, start] +directive_endifs( + unique int id: @directive_endif, + unique int start: @directive_if ref); + +directive_define_symbols( + unique int id: @define_symbol_expr ref, + string name: string ref); + +directive_regions( + unique int id: @directive_region, + string name: string ref); + +#keyset[id, start] +directive_endregions( + unique int id: @directive_endregion, + unique int start: @directive_region ref); + +directive_lines( + unique int id: @directive_line, + int kind: int ref); /* 0: default, 1: hidden, 2: numeric, 3: span */ + +directive_line_value( + unique int id: @directive_line ref, + int line: int ref); + +directive_line_file( + unique int id: @directive_line ref, + int file: @file ref); + +directive_line_offset( + unique int id: @directive_line ref, + int offset: int ref); + +directive_line_span( + unique int id: @directive_line ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref); + +directive_nullables( + unique int id: @directive_nullable, + int setting: int ref, /* 0: disable, 1: enable, 2: restore */ + int target: int ref); /* 0: none, 1: annotations, 2: warnings */ + +directive_warnings( + unique int id: @directive_warning, + string message: string ref); + +directive_errors( + unique int id: @directive_error, + string message: string ref); + +directive_undefines( + unique int id: @directive_undefine, + string name: string ref); + +directive_defines( + unique int id: @directive_define, + string name: string ref); + +pragma_checksums( + unique int id: @pragma_checksum, + int file: @file ref, + string guid: string ref, + string bytes: string ref); + +pragma_warnings( + unique int id: @pragma_warning, + int kind: int ref /* 0 = disable, 1 = restore */); + +#keyset[id, index] +pragma_warning_error_codes( + int id: @pragma_warning ref, + string errorCode: string ref, + int index: int ref); + +preprocessor_directive_location( + unique int id: @preprocessor_directive ref, + int loc: @location ref); + +preprocessor_directive_compilation( + int id: @preprocessor_directive ref, + int compilation: @compilation ref); + +preprocessor_directive_active( + unique int id: @preprocessor_directive ref, + int active: int ref); /* 0: false, 1: true */ + +/** TYPES **/ + +types( + unique int id: @type, + int kind: int ref, + string name: string ref); + +case @type.kind of + 1 = @bool_type +| 2 = @char_type +| 3 = @decimal_type +| 4 = @sbyte_type +| 5 = @short_type +| 6 = @int_type +| 7 = @long_type +| 8 = @byte_type +| 9 = @ushort_type +| 10 = @uint_type +| 11 = @ulong_type +| 12 = @float_type +| 13 = @double_type +| 14 = @enum_type +| 15 = @struct_type +| 17 = @class_type +| 19 = @interface_type +| 20 = @delegate_type +| 21 = @null_type +| 22 = @type_parameter +| 23 = @pointer_type +| 24 = @nullable_type +| 25 = @array_type +| 26 = @void_type +| 27 = @int_ptr_type +| 28 = @uint_ptr_type +| 29 = @dynamic_type +| 30 = @arglist_type +| 31 = @unknown_type +| 32 = @tuple_type +| 33 = @function_pointer_type +| 34 = @inline_array_type +| 35 = @extension_type + ; + +@simple_type = @bool_type | @char_type | @integral_type | @floating_point_type | @decimal_type; +@integral_type = @signed_integral_type | @unsigned_integral_type; +@signed_integral_type = @sbyte_type | @short_type | @int_type | @long_type; +@unsigned_integral_type = @byte_type | @ushort_type | @uint_type | @ulong_type; +@floating_point_type = @float_type | @double_type; +@value_type = @simple_type | @enum_type | @struct_type | @nullable_type | @int_ptr_type + | @uint_ptr_type | @tuple_type | @void_type | @inline_array_type; +@ref_type = @class_type | @interface_type | @array_type | @delegate_type | @null_type + | @dynamic_type | @extension_type; +@value_or_ref_type = @value_type | @ref_type; + +typerefs( + unique int id: @typeref, + string name: string ref); + +typeref_type( + int id: @typeref ref, + unique int typeId: @type ref); + +@type_or_ref = @type | @typeref; + +array_element_type( + unique int array: @array_type ref, + int dimension: int ref, + int rank: int ref, + int element: @type_or_ref ref); + +nullable_underlying_type( + unique int nullable: @nullable_type ref, + int underlying: @type_or_ref ref); + +pointer_referent_type( + unique int pointer: @pointer_type ref, + int referent: @type_or_ref ref); + +enum_underlying_type( + unique int enum_id: @enum_type ref, + int underlying_type_id: @type_or_ref ref); + +delegate_return_type( + unique int delegate_id: @delegate_type ref, + int return_type_id: @type_or_ref ref); + +function_pointer_return_type( + unique int function_pointer_id: @function_pointer_type ref, + int return_type_id: @type_or_ref ref); + +extension_receiver_type( + unique int extension: @extension_type ref, + int receiver_type_id: @type_or_ref ref); + +extend( + int sub: @type ref, + int super: @type_or_ref ref); + +anonymous_types( + unique int id: @type ref); + +@interface_or_ref = @interface_type | @typeref; + +implement( + int sub: @type ref, + int super: @type_or_ref ref); + +type_location( + int id: @type ref, + int loc: @location ref); + +tuple_underlying_type( + unique int tuple: @tuple_type ref, + int struct: @type_or_ref ref); + +#keyset[tuple, index] +tuple_element( + int tuple: @tuple_type ref, + int index: int ref, + unique int field: @field ref); + +attributes( + unique int id: @attribute, + int kind: int ref, + int type_id: @type_or_ref ref, + int target: @attributable ref); + +case @attribute.kind of + 0 = @attribute_default +| 1 = @attribute_return +| 2 = @attribute_assembly +| 3 = @attribute_module +; + +attribute_location( + int id: @attribute ref, + int loc: @location ref); + +@type_mention_parent = @element | @type_mention; + +type_mention( + unique int id: @type_mention, + int type_id: @type_or_ref ref, + int parent: @type_mention_parent ref); + +type_mention_location( + unique int id: @type_mention ref, + int loc: @location ref); + +@has_type_annotation = @assignable | @type_parameter | @callable | @expr | @delegate_type | @generic | @function_pointer_type; + +/** + * A direct annotation on an entity, for example `string? x;`. + * + * Annotations: + * 2 = reftype is not annotated "!" + * 3 = reftype is annotated "?" + * 4 = readonly ref type / in parameter + * 5 = ref type parameter, return or local variable + * 6 = out parameter + * + * Note that the annotation depends on the element it annotates. + * @assignable: The annotation is on the type of the assignable, for example the variable type. + * @type_parameter: The annotation is on the reftype constraint + * @callable: The annotation is on the return type + * @array_type: The annotation is on the element type + */ +type_annotation(int id: @has_type_annotation ref, int annotation: int ref); + +nullability(unique int nullability: @nullability, int kind: int ref); + +case @nullability.kind of + 0 = @oblivious +| 1 = @not_annotated +| 2 = @annotated +; + +#keyset[parent, index] +nullability_parent(int nullability: @nullability ref, int index: int ref, int parent: @nullability ref) + +type_nullability(int id: @has_type_annotation ref, int nullability: @nullability ref); + +/** + * The nullable flow state of an expression, as determined by Roslyn. + * 0 = none (default, not populated) + * 1 = not null + * 2 = maybe null + */ +expr_flowstate(unique int id: @expr ref, int state: int ref); + +/** GENERICS **/ + +@generic = @type | @method | @local_function; + +type_parameters( + unique int id: @type_parameter ref, + int index: int ref, + int generic_id: @generic ref, + int variance: int ref /* none = 0, out = 1, in = 2 */); + +#keyset[constructed_id, index] +type_arguments( + int id: @type_or_ref ref, + int index: int ref, + int constructed_id: @generic_or_ref ref); + +@generic_or_ref = @generic | @typeref; + +constructed_generic( + unique int constructed: @generic ref, + int generic: @generic_or_ref ref); + +type_parameter_constraints( + unique int id: @type_parameter_constraints, + int param_id: @type_parameter ref); + +type_parameter_constraints_location( + int id: @type_parameter_constraints ref, + int loc: @location ref); + +general_type_parameter_constraints( + int id: @type_parameter_constraints ref, + int kind: int ref /* class = 1, struct = 2, new = 3 */); + +specific_type_parameter_constraints( + int id: @type_parameter_constraints ref, + int base_id: @type_or_ref ref); + +specific_type_parameter_nullability( + int id: @type_parameter_constraints ref, + int base_id: @type_or_ref ref, + int nullability: @nullability ref); + +/** FUNCTION POINTERS */ + +function_pointer_calling_conventions( + int id: @function_pointer_type ref, + int kind: int ref); + +#keyset[id, index] +has_unmanaged_calling_conventions( + int id: @function_pointer_type ref, + int index: int ref, + int conv_id: @type_or_ref ref); + +/** MODIFIERS */ + +@modifiable = @modifiable_direct | @event_accessor; + +@modifiable_direct = @member | @accessor | @local_function | @anonymous_function_expr; + +modifiers( + unique int id: @modifier, + string name: string ref); + +has_modifiers( + int id: @modifiable_direct ref, + int mod_id: @modifier ref); + +/** MEMBERS **/ + +@member = @method | @constructor | @destructor | @field | @property | @event | @operator | @indexer | @type; + +@named_exprorstmt = @goto_stmt | @labeled_stmt | @expr; + +@virtualizable = @method | @property | @indexer | @event | @operator; + +exprorstmt_name( + unique int parent_id: @named_exprorstmt ref, + string name: string ref); + +nested_types( + unique int id: @type ref, + int declaring_type_id: @type ref, + int unbound_id: @type ref); + +properties( + unique int id: @property, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @property ref); + +property_location( + int id: @property ref, + int loc: @location ref); + +indexers( + unique int id: @indexer, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @indexer ref); + +indexer_location( + int id: @indexer ref, + int loc: @location ref); + +accessors( + unique int id: @accessor, + int kind: int ref, + string name: string ref, + int declaring_member_id: @member ref, + int unbound_id: @accessor ref); + +case @accessor.kind of + 1 = @getter +| 2 = @setter + ; + +init_only_accessors( + unique int id: @accessor ref); + +accessor_location( + int id: @accessor ref, + int loc: @location ref); + +events( + unique int id: @event, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @event ref); + +event_location( + int id: @event ref, + int loc: @location ref); + +event_accessors( + unique int id: @event_accessor, + int kind: int ref, + string name: string ref, + int declaring_event_id: @event ref, + int unbound_id: @event_accessor ref); + +case @event_accessor.kind of + 1 = @add_event_accessor +| 2 = @remove_event_accessor + ; + +event_accessor_location( + int id: @event_accessor ref, + int loc: @location ref); + +operators( + unique int id: @operator, + string name: string ref, + string symbol: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @operator ref); + +operator_location( + int id: @operator ref, + int loc: @location ref); + +constant_value( + int id: @variable ref, + string value: string ref); + +/** CALLABLES **/ + +@callable = @method | @constructor | @destructor | @operator | @callable_accessor | @anonymous_function_expr | @local_function; + +@callable_accessor = @accessor | @event_accessor; + +methods( + unique int id: @method, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @method ref); + +method_location( + int id: @method ref, + int loc: @location ref); + +constructors( + unique int id: @constructor, + string name: string ref, + int declaring_type_id: @type ref, + int unbound_id: @constructor ref); + +constructor_location( + int id: @constructor ref, + int loc: @location ref); + +destructors( + unique int id: @destructor, + string name: string ref, + int declaring_type_id: @type ref, + int unbound_id: @destructor ref); + +destructor_location( + int id: @destructor ref, + int loc: @location ref); + +overrides( + int id: @callable ref, + int base_id: @callable ref); + +explicitly_implements( + int id: @member ref, + int interface_id: @interface_or_ref ref); + +local_functions( + unique int id: @local_function, + string name: string ref, + int return_type: @type ref, + int unbound_id: @local_function ref); + +local_function_stmts( + unique int fn: @local_function_stmt ref, + int stmt: @local_function ref); + +/** VARIABLES **/ + +@variable = @local_scope_variable | @field; + +@local_scope_variable = @local_variable | @parameter; + +fields( + unique int id: @field, + int kind: int ref, + string name: string ref, + int declaring_type_id: @type ref, + int type_id: @type_or_ref ref, + int unbound_id: @field ref); + +case @field.kind of + 1 = @addressable_field +| 2 = @constant + ; + +field_location( + int id: @field ref, + int loc: @location ref); + +localvars( + unique int id: @local_variable, + int kind: int ref, + string name: string ref, + int implicitly_typed: int ref /* 0 = no, 1 = yes */, + int type_id: @type_or_ref ref, + int parent_id: @local_var_decl_expr ref); + +case @local_variable.kind of + 1 = @addressable_local_variable +| 2 = @local_constant +| 3 = @local_variable_ref + ; + +localvar_location( + unique int id: @local_variable ref, + int loc: @location ref); + +@parameterizable = @callable | @delegate_type | @indexer | @function_pointer_type | @extension_type; + +#keyset[name, parent_id] +#keyset[index, parent_id] +params( + unique int id: @parameter, + string name: string ref, + int type_id: @type_or_ref ref, + int index: int ref, + int mode: int ref, /* value = 0, ref = 1, out = 2, params/array = 3, this = 4, in = 5, ref readonly = 6 */ + int parent_id: @parameterizable ref, + int unbound_id: @parameter ref); + +param_location( + int id: @parameter ref, + int loc: @location ref); + +@has_scoped_annotation = @local_scope_variable + +scoped_annotation( + int id: @has_scoped_annotation ref, + int kind: int ref // scoped ref = 1, scoped value = 2 + ); + +/** STATEMENTS **/ + +@exprorstmt_parent = @control_flow_element | @top_level_exprorstmt_parent; + +statements( + unique int id: @stmt, + int kind: int ref); + +#keyset[index, parent] +stmt_parent( + unique int stmt: @stmt ref, + int index: int ref, + int parent: @control_flow_element ref); + +@top_level_stmt_parent = @callable; + +// [index, parent] is not a keyset because the same parent may be compiled multiple times +stmt_parent_top_level( + unique int stmt: @stmt ref, + int index: int ref, + int parent: @top_level_stmt_parent ref); + +case @stmt.kind of + 1 = @block_stmt +| 2 = @expr_stmt +| 3 = @if_stmt +| 4 = @switch_stmt +| 5 = @while_stmt +| 6 = @do_stmt +| 7 = @for_stmt +| 8 = @foreach_stmt +| 9 = @break_stmt +| 10 = @continue_stmt +| 11 = @goto_stmt +| 12 = @goto_case_stmt +| 13 = @goto_default_stmt +| 14 = @throw_stmt +| 15 = @return_stmt +| 16 = @yield_stmt +| 17 = @try_stmt +| 18 = @checked_stmt +| 19 = @unchecked_stmt +| 20 = @lock_stmt +| 21 = @using_block_stmt +| 22 = @var_decl_stmt +| 23 = @const_decl_stmt +| 24 = @empty_stmt +| 25 = @unsafe_stmt +| 26 = @fixed_stmt +| 27 = @label_stmt +| 28 = @catch +| 29 = @case_stmt +| 30 = @local_function_stmt +| 31 = @using_decl_stmt + ; + +@using_stmt = @using_block_stmt | @using_decl_stmt; + +@labeled_stmt = @label_stmt | @case; + +@decl_stmt = @var_decl_stmt | @const_decl_stmt | @using_decl_stmt; + +@cond_stmt = @if_stmt | @switch_stmt; + +@loop_stmt = @while_stmt | @do_stmt | @for_stmt | @foreach_stmt; + +@jump_stmt = @break_stmt | @goto_any_stmt | @continue_stmt | @throw_stmt | @return_stmt + | @yield_stmt; + +@goto_any_stmt = @goto_default_stmt | @goto_case_stmt | @goto_stmt; + + +stmt_location( + unique int id: @stmt ref, + int loc: @location ref); + +catch_type( + unique int catch_id: @catch ref, + int type_id: @type_or_ref ref, + int kind: int ref /* explicit = 1, implicit = 2 */); + +foreach_stmt_info( + unique int id: @foreach_stmt ref, + int kind: int ref /* non-async = 1, async = 2 */); + +@foreach_symbol = @method | @property | @type_or_ref; + +#keyset[id, kind] +foreach_stmt_desugar( + int id: @foreach_stmt ref, + int symbol: @foreach_symbol ref, + int kind: int ref /* GetEnumeratorMethod = 1, CurrentProperty = 2, MoveNextMethod = 3, DisposeMethod = 4, ElementType = 5 */); + +/** EXPRESSIONS **/ + +expressions( + unique int id: @expr, + int kind: int ref, + int type_id: @type_or_ref ref); + +#keyset[index, parent] +expr_parent( + unique int expr: @expr ref, + int index: int ref, + int parent: @control_flow_element ref); + +@top_level_expr_parent = @attribute | @field | @property | @indexer | @parameter | @directive_if | @directive_elif; + +@top_level_exprorstmt_parent = @top_level_expr_parent | @top_level_stmt_parent; + +// [index, parent] is not a keyset because the same parent may be compiled multiple times +expr_parent_top_level( + unique int expr: @expr ref, + int index: int ref, + int parent: @top_level_exprorstmt_parent ref); + +case @expr.kind of +/* literal */ + 1 = @bool_literal_expr +| 2 = @char_literal_expr +| 3 = @decimal_literal_expr +| 4 = @int_literal_expr +| 5 = @long_literal_expr +| 6 = @uint_literal_expr +| 7 = @ulong_literal_expr +| 8 = @float_literal_expr +| 9 = @double_literal_expr +| 10 = @utf16_string_literal_expr +| 11 = @null_literal_expr +/* primary & unary */ +| 12 = @this_access_expr +| 13 = @base_access_expr +| 14 = @local_variable_access_expr +| 15 = @parameter_access_expr +| 16 = @field_access_expr +| 17 = @property_access_expr +| 18 = @method_access_expr +| 19 = @event_access_expr +| 20 = @indexer_access_expr +| 21 = @array_access_expr +| 22 = @type_access_expr +| 23 = @typeof_expr +| 24 = @method_invocation_expr +| 25 = @delegate_invocation_expr +| 26 = @operator_invocation_expr +| 27 = @cast_expr +| 28 = @object_creation_expr +| 29 = @explicit_delegate_creation_expr +| 30 = @implicit_delegate_creation_expr +| 31 = @array_creation_expr +| 32 = @default_expr +| 33 = @plus_expr +| 34 = @minus_expr +| 35 = @bit_not_expr +| 36 = @log_not_expr +| 37 = @post_incr_expr +| 38 = @post_decr_expr +| 39 = @pre_incr_expr +| 40 = @pre_decr_expr +/* multiplicative */ +| 41 = @mul_expr +| 42 = @div_expr +| 43 = @rem_expr +/* additive */ +| 44 = @add_expr +| 45 = @sub_expr +/* shift */ +| 46 = @lshift_expr +| 47 = @rshift_expr +/* relational */ +| 48 = @lt_expr +| 49 = @gt_expr +| 50 = @le_expr +| 51 = @ge_expr +/* equality */ +| 52 = @eq_expr +| 53 = @ne_expr +/* logical */ +| 54 = @bit_and_expr +| 55 = @bit_xor_expr +| 56 = @bit_or_expr +| 57 = @log_and_expr +| 58 = @log_or_expr +/* type testing */ +| 59 = @is_expr +| 60 = @as_expr +/* null coalescing */ +| 61 = @null_coalescing_expr +/* conditional */ +| 62 = @conditional_expr +/* assignment */ +| 63 = @simple_assign_expr +| 64 = @assign_add_expr +| 65 = @assign_sub_expr +| 66 = @assign_mul_expr +| 67 = @assign_div_expr +| 68 = @assign_rem_expr +| 69 = @assign_and_expr +| 70 = @assign_xor_expr +| 71 = @assign_or_expr +| 72 = @assign_lshift_expr +| 73 = @assign_rshift_expr +/* more */ +| 74 = @object_init_expr +| 75 = @collection_init_expr +| 76 = @array_init_expr +| 77 = @checked_expr +| 78 = @unchecked_expr +| 79 = @constructor_init_expr +| 80 = @add_event_expr +| 81 = @remove_event_expr +| 82 = @par_expr +| 83 = @local_var_decl_expr +| 84 = @lambda_expr +| 85 = @anonymous_method_expr +| 86 = @namespace_expr +/* dynamic */ +| 92 = @dynamic_element_access_expr +| 93 = @dynamic_member_access_expr +/* unsafe */ +| 100 = @pointer_indirection_expr +| 101 = @address_of_expr +| 102 = @sizeof_expr +/* async */ +| 103 = @await_expr +/* C# 6.0 */ +| 104 = @nameof_expr +| 105 = @interpolated_string_expr +| 106 = @unknown_expr +/* C# 7.0 */ +| 107 = @throw_expr +| 108 = @tuple_expr +| 109 = @local_function_invocation_expr +| 110 = @ref_expr +| 111 = @discard_expr +/* C# 8.0 */ +| 112 = @range_expr +| 113 = @index_expr +| 114 = @switch_expr +| 115 = @recursive_pattern_expr +| 116 = @property_pattern_expr +| 117 = @positional_pattern_expr +| 118 = @switch_case_expr +| 119 = @assign_coalesce_expr +| 120 = @suppress_nullable_warning_expr +| 121 = @namespace_access_expr +/* C# 9.0 */ +| 122 = @lt_pattern_expr +| 123 = @gt_pattern_expr +| 124 = @le_pattern_expr +| 125 = @ge_pattern_expr +| 126 = @not_pattern_expr +| 127 = @and_pattern_expr +| 128 = @or_pattern_expr +| 129 = @function_pointer_invocation_expr +| 130 = @with_expr +/* C# 11.0 */ +| 131 = @list_pattern_expr +| 132 = @slice_pattern_expr +| 133 = @urshift_expr +| 134 = @assign_urshift_expr +| 135 = @utf8_string_literal_expr +/* C# 12.0 */ +| 136 = @collection_expr +| 137 = @spread_element_expr +| 138 = @interpolated_string_insert_expr +/* Preprocessor */ +| 999 = @define_symbol_expr +; + +@switch = @switch_stmt | @switch_expr; +@case = @case_stmt | @switch_case_expr; +@pattern_match = @case | @is_expr; +@unary_pattern_expr = @not_pattern_expr; +@relational_pattern_expr = @gt_pattern_expr | @lt_pattern_expr | @ge_pattern_expr | @le_pattern_expr; +@binary_pattern_expr = @and_pattern_expr | @or_pattern_expr; + +@integer_literal_expr = @int_literal_expr | @long_literal_expr | @uint_literal_expr | @ulong_literal_expr; +@real_literal_expr = @float_literal_expr | @double_literal_expr | @decimal_literal_expr; +@string_literal_expr = @utf16_string_literal_expr | @utf8_string_literal_expr; +@literal_expr = @bool_literal_expr | @char_literal_expr | @integer_literal_expr | @real_literal_expr + | @string_literal_expr | @null_literal_expr; + +@assign_expr = @simple_assign_expr | @assign_op_expr | @local_var_decl_expr; +@assign_op_expr = @assign_arith_expr | @assign_bitwise_expr | @assign_event_expr | @assign_coalesce_expr; +@assign_event_expr = @add_event_expr | @remove_event_expr; + +@assign_arith_expr = @assign_add_expr | @assign_sub_expr | @assign_mul_expr | @assign_div_expr + | @assign_rem_expr +@assign_bitwise_expr = @assign_and_expr | @assign_or_expr | @assign_xor_expr + | @assign_lshift_expr | @assign_rshift_expr | @assign_urshift_expr; + +@member_access_expr = @field_access_expr | @property_access_expr | @indexer_access_expr | @event_access_expr + | @method_access_expr | @type_access_expr | @dynamic_member_access_expr; +@access_expr = @member_access_expr | @this_access_expr | @base_access_expr | @assignable_access_expr | @namespace_access_expr; +@element_access_expr = @indexer_access_expr | @array_access_expr | @dynamic_element_access_expr; + +@local_variable_access = @local_variable_access_expr | @local_var_decl_expr; +@local_scope_variable_access_expr = @parameter_access_expr | @local_variable_access; +@variable_access_expr = @local_scope_variable_access_expr | @field_access_expr; + +@assignable_access_expr = @variable_access_expr | @property_access_expr | @element_access_expr + | @event_access_expr | @dynamic_member_access_expr; + +@objectorcollection_init_expr = @object_init_expr | @collection_init_expr; + +@delegate_creation_expr = @explicit_delegate_creation_expr | @implicit_delegate_creation_expr; + +@bin_arith_op_expr = @mul_expr | @div_expr | @rem_expr | @add_expr | @sub_expr; +@incr_op_expr = @pre_incr_expr | @post_incr_expr; +@decr_op_expr = @pre_decr_expr | @post_decr_expr; +@mut_op_expr = @incr_op_expr | @decr_op_expr; +@un_arith_op_expr = @plus_expr | @minus_expr | @mut_op_expr; +@arith_op_expr = @bin_arith_op_expr | @un_arith_op_expr; + +@ternary_log_op_expr = @conditional_expr; +@bin_log_op_expr = @log_and_expr | @log_or_expr | @null_coalescing_expr; +@un_log_op_expr = @log_not_expr; +@log_expr = @un_log_op_expr | @bin_log_op_expr | @ternary_log_op_expr; + +@bin_bit_op_expr = @bit_and_expr | @bit_or_expr | @bit_xor_expr | @lshift_expr + | @rshift_expr | @urshift_expr; +@un_bit_op_expr = @bit_not_expr; +@bit_expr = @un_bit_op_expr | @bin_bit_op_expr; + +@equality_op_expr = @eq_expr | @ne_expr; +@rel_op_expr = @gt_expr | @lt_expr| @ge_expr | @le_expr; +@comp_expr = @equality_op_expr | @rel_op_expr; + +@op_expr = @assign_expr | @un_op | @bin_op | @ternary_op; + +@ternary_op = @ternary_log_op_expr; +@bin_op = @bin_arith_op_expr | @bin_log_op_expr | @bin_bit_op_expr | @comp_expr; +@un_op = @un_arith_op_expr | @un_log_op_expr | @un_bit_op_expr | @sizeof_expr + | @pointer_indirection_expr | @address_of_expr; + +@anonymous_function_expr = @lambda_expr | @anonymous_method_expr; + +@call = @method_invocation_expr | @constructor_init_expr | @operator_invocation_expr + | @delegate_invocation_expr | @object_creation_expr | @call_access_expr + | @local_function_invocation_expr | @function_pointer_invocation_expr; + +@call_access_expr = @property_access_expr | @event_access_expr | @indexer_access_expr; + +@late_bindable_expr = @dynamic_element_access_expr | @dynamic_member_access_expr + | @object_creation_expr | @method_invocation_expr | @operator_invocation_expr; + +@throw_element = @throw_expr | @throw_stmt; + +@implicitly_typeable_object_creation_expr = @object_creation_expr | @explicit_delegate_creation_expr; + +implicitly_typed_array_creation( + unique int id: @array_creation_expr ref); + +explicitly_sized_array_creation( + unique int id: @array_creation_expr ref); + +stackalloc_array_creation( + unique int id: @array_creation_expr ref); + +implicitly_typed_object_creation( + unique int id: @implicitly_typeable_object_creation_expr ref); + +mutator_invocation_mode( + unique int id: @operator_invocation_expr ref, + int mode: int ref /* prefix = 1, postfix = 2*/); + +expr_value( + unique int id: @expr ref, + string value: string ref); + +expr_call( + unique int caller_id: @expr ref, + int target_id: @callable ref); + +expr_access( + unique int accesser_id: @access_expr ref, + int target_id: @accessible ref); + +@accessible = @method | @assignable | @local_function | @namespace; + +expr_location( + unique int id: @expr ref, + int loc: @location ref); + +dynamic_member_name( + unique int id: @late_bindable_expr ref, + string name: string ref); + +@qualifiable_expr = @member_access_expr + | @method_invocation_expr + | @element_access_expr; + +conditional_access( + unique int id: @qualifiable_expr ref); + +expr_argument( + unique int id: @expr ref, + int mode: int ref); + /* mode is the same as params: value = 0, ref = 1, out = 2 */ + +expr_argument_name( + unique int id: @expr ref, + string name: string ref); + +lambda_expr_return_type( + unique int id: @lambda_expr ref, + int type_id: @type_or_ref ref); + +/* Compiler generated */ + +compiler_generated(unique int id: @element ref); + +/** CONTROL/DATA FLOW **/ + +@control_flow_element = @stmt | @expr; + +/* 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; + +/* Comments */ + +commentline( + unique int id: @commentline, + int kind: int ref, + string text: string ref, + string rawtext: string ref); + +case @commentline.kind of + 0 = @singlelinecomment +| 1 = @xmldoccomment +| 2 = @multilinecomment; + +commentline_location( + unique int id: @commentline ref, + int loc: @location ref); + +commentblock( + unique int id : @commentblock); + +commentblock_location( + unique int id: @commentblock ref, + int loc: @location ref); + +commentblock_binding( + int id: @commentblock ref, + int entity: @element ref, + int bindtype: int ref); /* 0: Parent, 1: Best, 2: Before, 3: After */ + +commentblock_child( + int id: @commentblock ref, + int commentline: @commentline ref, + int index: int ref); + +/* ASP.NET */ + +case @asp_element.kind of + 0=@asp_close_tag +| 1=@asp_code +| 2=@asp_comment +| 3=@asp_data_binding +| 4=@asp_directive +| 5=@asp_open_tag +| 6=@asp_quoted_string +| 7=@asp_text +| 8=@asp_xml_directive; + +@asp_attribute = @asp_code | @asp_data_binding | @asp_quoted_string; + +asp_elements( + unique int id: @asp_element, + int kind: int ref, + int loc: @location ref); + +asp_comment_server(unique int comment: @asp_comment ref); +asp_code_inline(unique int code: @asp_code ref); +asp_directive_attribute( + int directive: @asp_directive ref, + int index: int ref, + string name: string ref, + int value: @asp_quoted_string ref); +asp_directive_name( + unique int directive: @asp_directive ref, + string name: string ref); +asp_element_body( + unique int element: @asp_element ref, + string body: string ref); +asp_tag_attribute( + int tag: @asp_open_tag ref, + int index: int ref, + string name: string ref, + int attribute: @asp_attribute ref); +asp_tag_name( + unique int tag: @asp_open_tag ref, + string name: string ref); +asp_tag_isempty(int tag: @asp_open_tag ref); diff --git a/csharp/ql/lib/upgrades/68b5aec54e50fe7e375df3777b756a746ca3a37c/upgrade.properties b/csharp/ql/lib/upgrades/68b5aec54e50fe7e375df3777b756a746ca3a37c/upgrade.properties new file mode 100644 index 000000000000..2d18dccf06cd --- /dev/null +++ b/csharp/ql/lib/upgrades/68b5aec54e50fe7e375df3777b756a746ca3a37c/upgrade.properties @@ -0,0 +1,2 @@ +description: Add the relation `extension_receiver_type` and add the `extension_type` type kind. +compatibility: full diff --git a/csharp/ql/src/CHANGELOG.md b/csharp/ql/src/CHANGELOG.md index b3c3276ae5cc..d532951fadc8 100644 --- a/csharp/ql/src/CHANGELOG.md +++ b/csharp/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.6.1 + +No user-facing changes. + ## 1.6.0 ### Query Metadata Changes diff --git a/csharp/ql/src/Security Features/CWE-352/MissingAntiForgeryTokenValidation.ql b/csharp/ql/src/Security Features/CWE-352/MissingAntiForgeryTokenValidation.ql index acdc4637221a..60a022d43d0f 100644 --- a/csharp/ql/src/Security Features/CWE-352/MissingAntiForgeryTokenValidation.ql +++ b/csharp/ql/src/Security Features/CWE-352/MissingAntiForgeryTokenValidation.ql @@ -54,12 +54,12 @@ predicate hasGlobalAntiForgeryFilter() { predicate isUnvalidatedPostMethod(Class c, Method m) { c.(Controller).getAPostActionMethod() = m and not m.getAnAttribute() instanceof ValidateAntiForgeryTokenAttribute and - not c.getAnAttribute() instanceof ValidateAntiForgeryTokenAttribute + not c.getABaseType*().getAnAttribute() instanceof ValidateAntiForgeryTokenAttribute or c.(AspNetCore::MicrosoftAspNetCoreMvcController).getAnActionMethod() = m and m.getAnAttribute() instanceof AspNetCore::MicrosoftAspNetCoreMvcHttpPostAttribute and not m.getAnAttribute() instanceof AspNetCore::ValidateAntiForgeryAttribute and - not c.getAnAttribute() instanceof AspNetCore::ValidateAntiForgeryAttribute + not c.getABaseType*().getAnAttribute() instanceof AspNetCore::ValidateAntiForgeryAttribute } Element getAValidatedElement() { diff --git a/csharp/ql/src/change-notes/2026-02-04-csrf-inherited-attribute.md b/csharp/ql/src/change-notes/2026-02-04-csrf-inherited-attribute.md new file mode 100644 index 000000000000..7c9875fcdfde --- /dev/null +++ b/csharp/ql/src/change-notes/2026-02-04-csrf-inherited-attribute.md @@ -0,0 +1,4 @@ +--- +category: fix +--- +* The `cs/web/missing-token-validation` ("Missing cross-site request forgery token validation") query now recognizes antiforgery attributes on base controller classes, fixing false positives when `[ValidateAntiForgeryToken]` or `[AutoValidateAntiforgeryToken]` is applied to a parent class. diff --git a/csharp/ql/src/change-notes/released/1.6.1.md b/csharp/ql/src/change-notes/released/1.6.1.md new file mode 100644 index 000000000000..898f6201ed73 --- /dev/null +++ b/csharp/ql/src/change-notes/released/1.6.1.md @@ -0,0 +1,3 @@ +## 1.6.1 + +No user-facing changes. diff --git a/csharp/ql/src/codeql-pack.release.yml b/csharp/ql/src/codeql-pack.release.yml index c4f0b07d5336..ef7a789e0cf1 100644 --- a/csharp/ql/src/codeql-pack.release.yml +++ b/csharp/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.6.0 +lastReleaseVersion: 1.6.1 diff --git a/csharp/ql/src/qlpack.yml b/csharp/ql/src/qlpack.yml index 0dbbc39c39d2..492445c23748 100644 --- a/csharp/ql/src/qlpack.yml +++ b/csharp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-queries -version: 1.6.0 +version: 1.6.2-dev groups: - csharp - queries diff --git a/csharp/ql/src/utils/modelgenerator/internal/CaptureModels.qll b/csharp/ql/src/utils/modelgenerator/internal/CaptureModels.qll index f27743fda475..5b1b9e4ae65c 100644 --- a/csharp/ql/src/utils/modelgenerator/internal/CaptureModels.qll +++ b/csharp/ql/src/utils/modelgenerator/internal/CaptureModels.qll @@ -230,7 +230,7 @@ module SummaryModelGeneratorInput implements SummaryModelGeneratorInputSig { } private predicate hasManualSummaryModel(Callable api) { - api = any(FlowSummaryImpl::Public::SummarizedCallable sc | sc.applyManualModel()) or + api = any(FlowSummaryImpl::Public::SummarizedCallable sc | sc.hasManualModel()) or api = any(FlowSummaryImpl::Public::NeutralSummaryCallable sc | sc.hasManualModel()) } diff --git a/csharp/ql/test/library-tests/controlflow/graph/Assignments.cs b/csharp/ql/test/library-tests/controlflow/graph/Assignments.cs index bb8a645427ec..e967904c80cc 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/Assignments.cs +++ b/csharp/ql/test/library-tests/controlflow/graph/Assignments.cs @@ -21,4 +21,26 @@ void M() delegate void EventHandler(object sender, object e); event EventHandler Event; + int IntField; + string StringField; + + void SetParamSingle(out int x) + { + x = 42; + } + + void SetParamMulti(out int x, object o, out string y) + { + x = 42; + y = "Hello"; + } + + void M2() + { + int x1; + SetParamSingle(out x1); + SetParamSingle(out IntField); + SetParamMulti(out var y, null, out StringField); + SetParamMulti(out IntField, null, out StringField); + } } diff --git a/csharp/ql/test/library-tests/controlflow/graph/BasicBlock.expected b/csharp/ql/test/library-tests/controlflow/graph/BasicBlock.expected index 99d89a29c134..30f2b1051551 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/BasicBlock.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/BasicBlock.expected @@ -3,14 +3,14 @@ | AccessorCalls.cs:5:33:5:35 | enter set_Item | AccessorCalls.cs:5:33:5:35 | exit set_Item | 4 | | AccessorCalls.cs:7:32:7:34 | enter add_Event | AccessorCalls.cs:7:32:7:34 | exit add_Event | 4 | | AccessorCalls.cs:7:40:7:45 | enter remove_Event | AccessorCalls.cs:7:40:7:45 | exit remove_Event | 4 | -| AccessorCalls.cs:10:10:10:11 | enter M1 | AccessorCalls.cs:10:10:10:11 | exit M1 | 33 | -| AccessorCalls.cs:19:10:19:11 | enter M2 | AccessorCalls.cs:19:10:19:11 | exit M2 | 41 | +| AccessorCalls.cs:10:10:10:11 | enter M1 | AccessorCalls.cs:10:10:10:11 | exit M1 | 34 | +| AccessorCalls.cs:19:10:19:11 | enter M2 | AccessorCalls.cs:19:10:19:11 | exit M2 | 42 | | AccessorCalls.cs:28:10:28:11 | enter M3 | AccessorCalls.cs:28:10:28:11 | exit M3 | 17 | | AccessorCalls.cs:35:10:35:11 | enter M4 | AccessorCalls.cs:35:10:35:11 | exit M4 | 20 | -| AccessorCalls.cs:42:10:42:11 | enter M5 | AccessorCalls.cs:42:10:42:11 | exit M5 | 33 | -| AccessorCalls.cs:49:10:49:11 | enter M6 | AccessorCalls.cs:49:10:49:11 | exit M6 | 42 | -| AccessorCalls.cs:56:10:56:11 | enter M7 | AccessorCalls.cs:56:10:56:11 | exit M7 | 24 | -| AccessorCalls.cs:61:10:61:11 | enter M8 | AccessorCalls.cs:61:10:61:11 | exit M8 | 30 | +| AccessorCalls.cs:42:10:42:11 | enter M5 | AccessorCalls.cs:42:10:42:11 | exit M5 | 34 | +| AccessorCalls.cs:49:10:49:11 | enter M6 | AccessorCalls.cs:49:10:49:11 | exit M6 | 43 | +| AccessorCalls.cs:56:10:56:11 | enter M7 | AccessorCalls.cs:56:10:56:11 | exit M7 | 25 | +| AccessorCalls.cs:61:10:61:11 | enter M8 | AccessorCalls.cs:61:10:61:11 | exit M8 | 31 | | AccessorCalls.cs:66:10:66:11 | enter M9 | AccessorCalls.cs:66:10:66:11 | exit M9 | 58 | | ArrayCreation.cs:1:7:1:19 | enter ArrayCreation | ArrayCreation.cs:1:7:1:19 | exit ArrayCreation | 7 | | ArrayCreation.cs:3:11:3:12 | enter M1 | ArrayCreation.cs:3:11:3:12 | exit M1 | 5 | @@ -167,6 +167,9 @@ | Assignments.cs:3:10:3:10 | enter M | Assignments.cs:3:10:3:10 | exit M | 34 | | Assignments.cs:14:18:14:35 | enter (...) => ... | Assignments.cs:14:18:14:35 | exit (...) => ... | 4 | | Assignments.cs:17:40:17:40 | enter + | Assignments.cs:17:40:17:40 | exit + | 6 | +| Assignments.cs:27:10:27:23 | enter SetParamSingle | Assignments.cs:27:10:27:23 | exit SetParamSingle | 7 | +| Assignments.cs:32:10:32:22 | enter SetParamMulti | Assignments.cs:32:10:32:22 | exit SetParamMulti | 10 | +| Assignments.cs:38:10:38:11 | enter M2 | Assignments.cs:38:10:38:11 | exit M2 | 28 | | BreakInTry.cs:1:7:1:16 | enter BreakInTry | BreakInTry.cs:1:7:1:16 | exit BreakInTry | 7 | | BreakInTry.cs:3:10:3:11 | enter M1 | BreakInTry.cs:7:33:7:36 | access to parameter args | 5 | | BreakInTry.cs:3:10:3:11 | exit M1 (normal) | BreakInTry.cs:3:10:3:11 | exit M1 | 2 | @@ -244,7 +247,30 @@ | ConditionalAccess.cs:32:10:32:11 | enter M8 | ConditionalAccess.cs:35:9:35:12 | access to property Prop | 8 | | ConditionalAccess.cs:32:10:32:11 | exit M8 (normal) | ConditionalAccess.cs:32:10:32:11 | exit M8 | 2 | | ConditionalAccess.cs:35:9:35:24 | call to method Out | ConditionalAccess.cs:35:9:35:24 | call to method Out | 1 | -| ConditionalAccess.cs:41:26:41:38 | enter CommaJoinWith | ConditionalAccess.cs:41:26:41:38 | exit CommaJoinWith | 8 | +| ConditionalAccess.cs:42:9:42:11 | enter get_Item | ConditionalAccess.cs:42:9:42:11 | exit get_Item | 6 | +| ConditionalAccess.cs:43:9:43:11 | enter set_Item | ConditionalAccess.cs:43:9:43:11 | exit set_Item | 4 | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:48:9:48:10 | access to parameter ca | 4 | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:46:10:46:11 | exit M9 | 2 | +| ConditionalAccess.cs:48:24:48:25 | 42 | ConditionalAccess.cs:48:12:48:25 | ... = ... | 3 | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:49:9:49:10 | access to parameter ca | 2 | +| ConditionalAccess.cs:49:26:49:32 | "Hello" | ConditionalAccess.cs:49:12:49:32 | ... = ... | 3 | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:50:9:50:10 | access to parameter ca | 2 | +| ConditionalAccess.cs:50:13:50:13 | 0 | ConditionalAccess.cs:50:12:50:23 | ... = ... | 4 | +| ConditionalAccess.cs:51:9:51:16 | access to property Prop | ConditionalAccess.cs:51:9:51:16 | access to property Prop | 1 | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:51:9:51:10 | access to parameter ca | 2 | +| ConditionalAccess.cs:51:30:51:31 | 84 | ConditionalAccess.cs:51:18:51:31 | ... = ... | 3 | +| ConditionalAccess.cs:52:9:52:16 | access to property Prop | ConditionalAccess.cs:52:9:52:16 | access to property Prop | 1 | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:52:9:52:10 | access to parameter ca | 2 | +| ConditionalAccess.cs:52:32:52:38 | "World" | ConditionalAccess.cs:52:18:52:38 | ... = ... | 3 | +| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | 1 | +| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:53:9:53:20 | access to field IntField | 1 | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | 2 | +| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:53:12:53:25 | ... = ... | 4 | +| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | 1 | +| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | 1 | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | 2 | +| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:54:12:54:29 | ... = ... | 4 | +| ConditionalAccess.cs:60:26:60:38 | enter CommaJoinWith | ConditionalAccess.cs:60:26:60:38 | exit CommaJoinWith | 8 | | Conditions.cs:1:7:1:16 | enter Conditions | Conditions.cs:1:7:1:16 | exit Conditions | 7 | | Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:5:13:5:15 | access to parameter inc | 4 | | Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | Conditions.cs:3:10:3:19 | exit IncrOrDecr | 2 | @@ -490,8 +516,8 @@ | 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.cs:209:21:209:22 | access to parameter b3 | 3 | | 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:211:13:211:28 | ... = ... | 4 | -| Finally.cs:213:9:213:25 | ...; | Finally.cs:195:10:195:12 | exit M10 (normal) | 5 | +| Finally.cs:211:13:211:29 | ...; | Finally.cs:211:13:211:28 | ... = ... | 5 | +| Finally.cs:213:9:213:25 | ...; | Finally.cs:195:10:195:12 | exit M10 (normal) | 6 | | 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 | @@ -539,21 +565,21 @@ | Foreach.cs:36:10:36:11 | exit M6 (normal) | Foreach.cs:36:10:36:11 | exit M6 | 2 | | Foreach.cs:38:9:39:11 | foreach (... ... in ...) ... | Foreach.cs:38:9:39:11 | foreach (... ... in ...) ... | 1 | | Foreach.cs:38:26:38:26 | String x | Foreach.cs:39:11:39:11 | ; | 4 | -| Initializers.cs:3:7:3:18 | enter | Initializers.cs:3:7:3:18 | exit | 14 | +| Initializers.cs:3:7:3:18 | enter | Initializers.cs:3:7:3:18 | exit | 15 | | Initializers.cs:3:7:3:18 | enter Initializers | Initializers.cs:3:7:3:18 | exit Initializers | 4 | | Initializers.cs:8:5:8:16 | enter Initializers | Initializers.cs:8:5:8:16 | exit Initializers | 7 | | Initializers.cs:10:5:10:16 | enter Initializers | Initializers.cs:10:5:10:16 | exit Initializers | 7 | -| Initializers.cs:12:10:12:10 | enter M | Initializers.cs:12:10:12:10 | exit M | 22 | -| Initializers.cs:18:16:18:16 | enter H | Initializers.cs:18:16:18:16 | exit H | 5 | -| Initializers.cs:20:11:20:23 | enter | Initializers.cs:20:11:20:23 | exit | 9 | +| Initializers.cs:12:10:12:10 | enter M | Initializers.cs:12:10:12:10 | exit M | 23 | +| Initializers.cs:18:16:18:16 | enter H | Initializers.cs:18:16:18:16 | exit H | 6 | +| Initializers.cs:20:11:20:23 | enter | Initializers.cs:20:11:20:23 | exit | 11 | | Initializers.cs:20:11:20:23 | enter NoConstructor | Initializers.cs:20:11:20:23 | exit NoConstructor | 7 | -| Initializers.cs:26:11:26:13 | enter | Initializers.cs:26:11:26:13 | exit | 6 | -| Initializers.cs:31:9:31:11 | enter Sub | Initializers.cs:31:9:31:11 | exit Sub | 11 | -| Initializers.cs:33:9:33:11 | enter Sub | Initializers.cs:33:9:33:11 | exit Sub | 9 | -| Initializers.cs:35:9:35:11 | enter Sub | Initializers.cs:35:9:35:11 | exit Sub | 13 | +| Initializers.cs:26:11:26:13 | enter | Initializers.cs:26:11:26:13 | exit | 7 | +| Initializers.cs:31:9:31:11 | enter Sub | Initializers.cs:31:9:31:11 | exit Sub | 12 | +| Initializers.cs:33:9:33:11 | enter Sub | Initializers.cs:33:9:33:11 | exit Sub | 10 | +| Initializers.cs:35:9:35:11 | enter Sub | Initializers.cs:35:9:35:11 | exit Sub | 14 | | Initializers.cs:39:7:39:23 | enter IndexInitializers | Initializers.cs:39:7:39:23 | exit IndexInitializers | 7 | | Initializers.cs:41:11:41:18 | enter Compound | Initializers.cs:41:11:41:18 | exit Compound | 7 | -| Initializers.cs:51:10:51:13 | enter Test | Initializers.cs:51:10:51:13 | exit Test | 105 | +| Initializers.cs:51:10:51:13 | enter Test | Initializers.cs:51:10:51:13 | exit Test | 116 | | LoopUnrolling.cs:5:7:5:19 | enter LoopUnrolling | LoopUnrolling.cs:5:7:5:19 | exit LoopUnrolling | 7 | | LoopUnrolling.cs:7:10:7:11 | enter M1 | LoopUnrolling.cs:9:13:9:28 | ... == ... | 7 | | LoopUnrolling.cs:7:10:7:11 | exit M1 (normal) | LoopUnrolling.cs:7:10:7:11 | exit M1 | 2 | @@ -629,7 +655,7 @@ | MultiImplementationA.cs:8:29:8:32 | null | MultiImplementationA.cs:8:16:8:16 | exit M (abnormal) | 3 | | MultiImplementationA.cs:11:7:11:8 | enter | MultiImplementationA.cs:11:7:11:8 | enter | 1 | | MultiImplementationA.cs:11:7:11:8 | exit (normal) | MultiImplementationA.cs:11:7:11:8 | exit | 2 | -| MultiImplementationA.cs:13:16:13:16 | this access | MultiImplementationA.cs:24:32:24:34 | ... = ... | 7 | +| MultiImplementationA.cs:13:16:13:16 | this access | MultiImplementationA.cs:24:32:24:34 | ... = ... | 8 | | MultiImplementationA.cs:14:31:14:31 | access to parameter i | MultiImplementationA.cs:14:31:14:31 | exit get_Item (normal) | 2 | | MultiImplementationA.cs:14:31:14:31 | enter get_Item | MultiImplementationA.cs:14:31:14:31 | enter get_Item | 1 | | MultiImplementationA.cs:14:31:14:31 | exit get_Item | MultiImplementationA.cs:14:31:14:31 | exit get_Item | 1 | @@ -645,7 +671,7 @@ | MultiImplementationA.cs:18:9:18:22 | enter M2 | MultiImplementationA.cs:18:9:18:22 | exit M2 | 4 | | MultiImplementationA.cs:20:12:20:13 | enter C2 | MultiImplementationA.cs:20:12:20:13 | enter C2 | 1 | | MultiImplementationA.cs:20:12:20:13 | exit C2 | MultiImplementationA.cs:20:12:20:13 | exit C2 | 1 | -| MultiImplementationA.cs:20:12:20:13 | this access | MultiImplementationA.cs:20:12:20:13 | exit C2 (normal) | 9 | +| MultiImplementationA.cs:20:12:20:13 | this access | MultiImplementationA.cs:20:12:20:13 | exit C2 (normal) | 10 | | MultiImplementationA.cs:21:12:21:13 | enter C2 | MultiImplementationA.cs:21:12:21:13 | enter C2 | 1 | | MultiImplementationA.cs:21:12:21:13 | exit C2 (normal) | MultiImplementationA.cs:21:12:21:13 | exit C2 | 2 | | MultiImplementationA.cs:21:24:21:24 | 0 | MultiImplementationA.cs:21:27:21:29 | {...} | 3 | @@ -671,7 +697,7 @@ | MultiImplementationB.cs:4:25:4:37 | {...} | MultiImplementationA.cs:7:21:7:23 | exit get_P2 (normal) | 4 | | MultiImplementationB.cs:4:43:4:45 | {...} | MultiImplementationA.cs:7:41:7:43 | exit set_P2 (normal) | 2 | | MultiImplementationB.cs:5:23:5:23 | 2 | MultiImplementationA.cs:8:16:8:16 | exit M (normal) | 2 | -| MultiImplementationB.cs:11:16:11:16 | this access | MultiImplementationB.cs:22:32:22:34 | ... = ... | 7 | +| MultiImplementationB.cs:11:16:11:16 | this access | MultiImplementationB.cs:22:32:22:34 | ... = ... | 8 | | MultiImplementationB.cs:12:37:12:40 | null | MultiImplementationA.cs:14:31:14:31 | exit get_Item (abnormal) | 3 | | MultiImplementationB.cs:13:40:13:54 | {...} | MultiImplementationA.cs:15:36:15:38 | exit get_Item (abnormal) | 4 | | MultiImplementationB.cs:13:60:13:62 | {...} | MultiImplementationB.cs:13:60:13:62 | {...} | 1 | @@ -722,7 +748,7 @@ | NullCoalescing.cs:15:31:15:31 | 0 | NullCoalescing.cs:16:17:16:18 | "" | 5 | | NullCoalescing.cs:16:17:16:25 | ... ?? ... | NullCoalescing.cs:17:13:17:19 | (...) ... | 5 | | NullCoalescing.cs:17:13:17:24 | ... ?? ... | NullCoalescing.cs:13:10:13:11 | exit M6 | 4 | -| PartialImplementationA.cs:1:15:1:21 | enter | PartialImplementationA.cs:1:15:1:21 | exit | 10 | +| PartialImplementationA.cs:1:15:1:21 | enter | PartialImplementationA.cs:1:15:1:21 | exit | 11 | | PartialImplementationA.cs:3:12:3:18 | enter Partial | PartialImplementationA.cs:3:12:3:18 | exit Partial | 7 | | PartialImplementationB.cs:4:12:4:18 | enter Partial | PartialImplementationB.cs:4:12:4:18 | exit Partial | 7 | | Patterns.cs:3:7:3:14 | enter Patterns | Patterns.cs:3:7:3:14 | exit Patterns | 7 | @@ -1041,8 +1067,8 @@ | cflow.cs:127:32:127:57 | ... ? ... : ... | cflow.cs:127:19:127:21 | exit get_Prop | 4 | | cflow.cs:127:48:127:49 | "" | cflow.cs:127:48:127:49 | "" | 1 | | cflow.cs:127:53:127:57 | this access | cflow.cs:127:53:127:57 | access to field Field | 2 | -| cflow.cs:127:62:127:64 | enter set_Prop | cflow.cs:127:62:127:64 | exit set_Prop | 8 | -| cflow.cs:129:5:129:15 | enter ControlFlow | cflow.cs:129:5:129:15 | exit ControlFlow | 11 | +| cflow.cs:127:62:127:64 | enter set_Prop | cflow.cs:127:62:127:64 | exit set_Prop | 9 | +| cflow.cs:129:5:129:15 | enter ControlFlow | cflow.cs:129:5:129:15 | exit ControlFlow | 12 | | cflow.cs:134:5:134:15 | enter ControlFlow | cflow.cs:134:5:134:15 | exit ControlFlow | 9 | | cflow.cs:136:12:136:22 | enter ControlFlow | cflow.cs:136:12:136:22 | exit ControlFlow | 8 | | cflow.cs:138:40:138:40 | enter + | cflow.cs:138:40:138:40 | exit + | 9 | @@ -1104,7 +1130,7 @@ | cflow.cs:201:9:205:9 | {...} | cflow.cs:193:10:193:17 | exit Booleans (abnormal) | 5 | | cflow.cs:208:10:208:11 | enter Do | cflow.cs:210:9:221:36 | do ... while (...); | 3 | | cflow.cs:208:10:208:11 | exit Do (normal) | cflow.cs:208:10:208:11 | exit Do | 2 | -| cflow.cs:211:9:221:9 | {...} | cflow.cs:213:17:213:32 | ... > ... | 14 | +| cflow.cs:211:9:221:9 | {...} | cflow.cs:213:17:213:32 | ... > ... | 15 | | cflow.cs:214:13:216:13 | {...} | cflow.cs:215:17:215:25 | continue; | 2 | | cflow.cs:217:13:220:13 | if (...) ... | cflow.cs:217:17:217:32 | ... < ... | 6 | | cflow.cs:218:13:220:13 | {...} | cflow.cs:219:17:219:22 | break; | 2 | @@ -1112,7 +1138,7 @@ | cflow.cs:224:10:224:16 | enter Foreach | cflow.cs:226:27:226:64 | call to method Repeat | 5 | | cflow.cs:224:10:224:16 | exit Foreach (normal) | cflow.cs:224:10:224:16 | exit Foreach | 2 | | cflow.cs:226:9:237:9 | foreach (... ... in ...) ... | cflow.cs:226:9:237:9 | foreach (... ... in ...) ... | 1 | -| cflow.cs:226:22:226:22 | String x | cflow.cs:229:17:229:32 | ... > ... | 15 | +| cflow.cs:226:22:226:22 | String x | cflow.cs:229:17:229:32 | ... > ... | 16 | | cflow.cs:230:13:232:13 | {...} | cflow.cs:231:17:231:25 | continue; | 2 | | cflow.cs:233:13:236:13 | if (...) ... | cflow.cs:233:17:233:32 | ... < ... | 6 | | cflow.cs:234:13:236:13 | {...} | cflow.cs:235:17:235:22 | break; | 2 | diff --git a/csharp/ql/test/library-tests/controlflow/graph/Condition.expected b/csharp/ql/test/library-tests/controlflow/graph/Condition.expected index 2c2f3dbb018b..3ef1d481abe8 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/Condition.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/Condition.expected @@ -91,6 +91,23 @@ conditionBlock | ConditionalAccess.cs:23:13:23:38 | Nullable j = ... | ConditionalAccess.cs:25:31:25:31 | access to local variable s | false | | ConditionalAccess.cs:24:17:24:37 | call to method ToString | ConditionalAccess.cs:25:31:25:31 | access to local variable s | false | | ConditionalAccess.cs:32:10:32:11 | enter M8 | ConditionalAccess.cs:35:9:35:24 | call to method Out | false | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:48:24:48:25 | 42 | false | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:49:26:49:32 | "Hello" | false | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:50:13:50:13 | 0 | false | +| ConditionalAccess.cs:51:9:51:16 | access to property Prop | ConditionalAccess.cs:51:30:51:31 | 84 | false | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:51:9:51:16 | access to property Prop | false | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:51:30:51:31 | 84 | false | +| ConditionalAccess.cs:52:9:52:16 | access to property Prop | ConditionalAccess.cs:52:32:52:38 | "World" | false | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:52:9:52:16 | access to property Prop | false | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:52:32:52:38 | "World" | false | +| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:20 | access to field IntField | false | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | false | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:53:9:53:20 | access to field IntField | false | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:53:25:53:25 | 1 | false | +| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | false | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | false | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | false | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:54:27:54:29 | "!" | false | | Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:6:13:6:16 | ...; | true | | Conditions.cs:7:9:8:16 | if (...) ... | Conditions.cs:7:13:7:16 | [false] !... | true | | Conditions.cs:7:9:8:16 | if (...) ... | Conditions.cs:7:13:7:16 | [true] !... | false | diff --git a/csharp/ql/test/library-tests/controlflow/graph/ConditionalAccess.cs b/csharp/ql/test/library-tests/controlflow/graph/ConditionalAccess.cs index a03564b529f5..b99e940f88b5 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/ConditionalAccess.cs +++ b/csharp/ql/test/library-tests/controlflow/graph/ConditionalAccess.cs @@ -34,6 +34,25 @@ void M8(bool b, out int i) i = 0; Prop?.Out(out i); } + + string StringProp { get; set; } + int IntField; + string this[int index] + { + get { return null; } + set { } + } + + void M9(ConditionalAccess ca) + { + ca?.IntField = 42; + ca?.StringProp = "Hello"; + ca?[0] = "Set0"; + ca?.Prop?.IntField = 84; + ca?.Prop?.StringProp = "World"; + ca?.IntField -= 1; + ca?.StringProp += "!"; + } } static class Ext diff --git a/csharp/ql/test/library-tests/controlflow/graph/Dominance.expected b/csharp/ql/test/library-tests/controlflow/graph/Dominance.expected index 8240e61a4199..204092c6df23 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/Dominance.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/Dominance.expected @@ -21,10 +21,11 @@ dominance | AccessorCalls.cs:10:10:10:11 | exit M1 (normal) | AccessorCalls.cs:10:10:10:11 | exit M1 | | AccessorCalls.cs:11:5:17:5 | {...} | AccessorCalls.cs:12:9:12:32 | ...; | | AccessorCalls.cs:12:9:12:12 | this access | AccessorCalls.cs:12:22:12:25 | this access | +| AccessorCalls.cs:12:9:12:18 | access to field Field | AccessorCalls.cs:12:9:12:31 | ... = ... | | AccessorCalls.cs:12:9:12:31 | ... = ... | AccessorCalls.cs:13:9:13:30 | ...; | | AccessorCalls.cs:12:9:12:32 | ...; | AccessorCalls.cs:12:9:12:12 | this access | | AccessorCalls.cs:12:22:12:25 | this access | AccessorCalls.cs:12:22:12:31 | access to field Field | -| AccessorCalls.cs:12:22:12:31 | access to field Field | AccessorCalls.cs:12:9:12:31 | ... = ... | +| AccessorCalls.cs:12:22:12:31 | access to field Field | AccessorCalls.cs:12:9:12:18 | access to field Field | | AccessorCalls.cs:13:9:13:12 | this access | AccessorCalls.cs:13:21:13:24 | this access | | AccessorCalls.cs:13:9:13:17 | access to property Prop | AccessorCalls.cs:13:9:13:29 | ... = ... | | AccessorCalls.cs:13:9:13:29 | ... = ... | AccessorCalls.cs:14:9:14:26 | ...; | @@ -54,11 +55,12 @@ dominance | AccessorCalls.cs:20:5:26:5 | {...} | AccessorCalls.cs:21:9:21:36 | ...; | | AccessorCalls.cs:21:9:21:12 | this access | AccessorCalls.cs:21:9:21:14 | access to field x | | AccessorCalls.cs:21:9:21:14 | access to field x | AccessorCalls.cs:21:24:21:27 | this access | +| AccessorCalls.cs:21:9:21:20 | access to field Field | AccessorCalls.cs:21:9:21:35 | ... = ... | | AccessorCalls.cs:21:9:21:35 | ... = ... | AccessorCalls.cs:22:9:22:34 | ...; | | AccessorCalls.cs:21:9:21:36 | ...; | AccessorCalls.cs:21:9:21:12 | this access | | AccessorCalls.cs:21:24:21:27 | this access | AccessorCalls.cs:21:24:21:29 | access to field x | | AccessorCalls.cs:21:24:21:29 | access to field x | AccessorCalls.cs:21:24:21:35 | access to field Field | -| AccessorCalls.cs:21:24:21:35 | access to field Field | AccessorCalls.cs:21:9:21:35 | ... = ... | +| AccessorCalls.cs:21:24:21:35 | access to field Field | AccessorCalls.cs:21:9:21:20 | access to field Field | | AccessorCalls.cs:22:9:22:12 | this access | AccessorCalls.cs:22:9:22:14 | access to field x | | AccessorCalls.cs:22:9:22:14 | access to field x | AccessorCalls.cs:22:23:22:26 | this access | | AccessorCalls.cs:22:9:22:19 | access to property Prop | AccessorCalls.cs:22:9:22:33 | ... = ... | @@ -129,8 +131,9 @@ dominance | AccessorCalls.cs:43:5:47:5 | {...} | AccessorCalls.cs:44:9:44:33 | ...; | | AccessorCalls.cs:44:9:44:12 | this access | AccessorCalls.cs:44:9:44:12 | this access | | AccessorCalls.cs:44:9:44:12 | this access | AccessorCalls.cs:44:9:44:18 | access to field Field | +| AccessorCalls.cs:44:9:44:18 | access to field Field | AccessorCalls.cs:44:9:44:32 | ... = ... | | AccessorCalls.cs:44:9:44:18 | access to field Field | AccessorCalls.cs:44:23:44:26 | this access | -| AccessorCalls.cs:44:9:44:32 | ... + ... | AccessorCalls.cs:44:9:44:32 | ... = ... | +| AccessorCalls.cs:44:9:44:32 | ... + ... | AccessorCalls.cs:44:9:44:18 | access to field Field | | AccessorCalls.cs:44:9:44:32 | ... = ... | AccessorCalls.cs:45:9:45:31 | ...; | | AccessorCalls.cs:44:9:44:33 | ...; | AccessorCalls.cs:44:9:44:12 | this access | | AccessorCalls.cs:44:23:44:26 | this access | AccessorCalls.cs:44:23:44:32 | access to field Field | @@ -163,8 +166,9 @@ dominance | AccessorCalls.cs:51:9:51:12 | this access | AccessorCalls.cs:51:9:51:14 | access to field x | | AccessorCalls.cs:51:9:51:14 | access to field x | AccessorCalls.cs:51:9:51:12 | this access | | AccessorCalls.cs:51:9:51:14 | access to field x | AccessorCalls.cs:51:9:51:20 | access to field Field | +| AccessorCalls.cs:51:9:51:20 | access to field Field | AccessorCalls.cs:51:9:51:36 | ... = ... | | AccessorCalls.cs:51:9:51:20 | access to field Field | AccessorCalls.cs:51:25:51:28 | this access | -| AccessorCalls.cs:51:9:51:36 | ... + ... | AccessorCalls.cs:51:9:51:36 | ... = ... | +| AccessorCalls.cs:51:9:51:36 | ... + ... | AccessorCalls.cs:51:9:51:20 | access to field Field | | AccessorCalls.cs:51:9:51:36 | ... = ... | AccessorCalls.cs:52:9:52:35 | ...; | | AccessorCalls.cs:51:9:51:37 | ...; | AccessorCalls.cs:51:9:51:12 | this access | | AccessorCalls.cs:51:25:51:28 | this access | AccessorCalls.cs:51:25:51:30 | access to field x | @@ -204,13 +208,14 @@ dominance | AccessorCalls.cs:58:9:58:85 | ... = ... | AccessorCalls.cs:56:10:56:11 | exit M7 (normal) | | AccessorCalls.cs:58:9:58:86 | ...; | AccessorCalls.cs:58:10:58:13 | this access | | AccessorCalls.cs:58:10:58:13 | this access | AccessorCalls.cs:58:22:58:25 | this access | +| AccessorCalls.cs:58:10:58:19 | access to field Field | AccessorCalls.cs:58:22:58:30 | access to property Prop | | AccessorCalls.cs:58:22:58:25 | this access | AccessorCalls.cs:58:37:58:40 | this access | | AccessorCalls.cs:58:22:58:30 | access to property Prop | AccessorCalls.cs:58:37:58:43 | access to indexer | | AccessorCalls.cs:58:33:58:44 | (..., ...) | AccessorCalls.cs:58:9:58:45 | (..., ...) | | AccessorCalls.cs:58:37:58:40 | this access | AccessorCalls.cs:58:42:58:42 | 0 | | AccessorCalls.cs:58:37:58:43 | access to indexer | AccessorCalls.cs:58:9:58:85 | ... = ... | | AccessorCalls.cs:58:42:58:42 | 0 | AccessorCalls.cs:58:33:58:44 | (..., ...) | -| AccessorCalls.cs:58:49:58:85 | (..., ...) | AccessorCalls.cs:58:22:58:30 | access to property Prop | +| AccessorCalls.cs:58:49:58:85 | (..., ...) | AccessorCalls.cs:58:10:58:19 | access to field Field | | AccessorCalls.cs:58:50:58:53 | this access | AccessorCalls.cs:58:50:58:59 | access to field Field | | AccessorCalls.cs:58:50:58:59 | access to field Field | AccessorCalls.cs:58:62:58:65 | this access | | AccessorCalls.cs:58:62:58:65 | this access | AccessorCalls.cs:58:62:58:70 | access to property Prop | @@ -228,6 +233,7 @@ dominance | AccessorCalls.cs:63:9:63:98 | ...; | AccessorCalls.cs:63:10:63:13 | this access | | AccessorCalls.cs:63:10:63:13 | this access | AccessorCalls.cs:63:10:63:15 | access to field x | | AccessorCalls.cs:63:10:63:15 | access to field x | AccessorCalls.cs:63:24:63:27 | this access | +| AccessorCalls.cs:63:10:63:21 | access to field Field | AccessorCalls.cs:63:24:63:34 | access to property Prop | | AccessorCalls.cs:63:24:63:27 | this access | AccessorCalls.cs:63:24:63:29 | access to field x | | AccessorCalls.cs:63:24:63:29 | access to field x | AccessorCalls.cs:63:41:63:44 | this access | | AccessorCalls.cs:63:24:63:34 | access to property Prop | AccessorCalls.cs:63:41:63:49 | access to indexer | @@ -236,7 +242,7 @@ dominance | AccessorCalls.cs:63:41:63:46 | access to field x | AccessorCalls.cs:63:48:63:48 | 0 | | AccessorCalls.cs:63:41:63:49 | access to indexer | AccessorCalls.cs:63:9:63:97 | ... = ... | | AccessorCalls.cs:63:48:63:48 | 0 | AccessorCalls.cs:63:37:63:50 | (..., ...) | -| AccessorCalls.cs:63:55:63:97 | (..., ...) | AccessorCalls.cs:63:24:63:34 | access to property Prop | +| AccessorCalls.cs:63:55:63:97 | (..., ...) | AccessorCalls.cs:63:10:63:21 | access to field Field | | AccessorCalls.cs:63:56:63:59 | this access | AccessorCalls.cs:63:56:63:61 | access to field x | | AccessorCalls.cs:63:56:63:61 | access to field x | AccessorCalls.cs:63:56:63:67 | access to field Field | | AccessorCalls.cs:63:56:63:67 | access to field Field | AccessorCalls.cs:63:70:63:73 | this access | @@ -760,6 +766,48 @@ dominance | Assignments.cs:18:5:20:5 | {...} | Assignments.cs:19:16:19:16 | access to parameter x | | Assignments.cs:19:9:19:17 | return ...; | Assignments.cs:17:40:17:40 | exit + (normal) | | Assignments.cs:19:16:19:16 | access to parameter x | Assignments.cs:19:9:19:17 | return ...; | +| Assignments.cs:27:10:27:23 | enter SetParamSingle | Assignments.cs:28:5:30:5 | {...} | +| Assignments.cs:27:10:27:23 | exit SetParamSingle (normal) | Assignments.cs:27:10:27:23 | exit SetParamSingle | +| Assignments.cs:28:5:30:5 | {...} | Assignments.cs:29:9:29:15 | ...; | +| Assignments.cs:29:9:29:14 | ... = ... | Assignments.cs:27:10:27:23 | exit SetParamSingle (normal) | +| Assignments.cs:29:9:29:15 | ...; | Assignments.cs:29:13:29:14 | 42 | +| Assignments.cs:29:13:29:14 | 42 | Assignments.cs:29:9:29:14 | ... = ... | +| Assignments.cs:32:10:32:22 | enter SetParamMulti | Assignments.cs:33:5:36:5 | {...} | +| Assignments.cs:32:10:32:22 | exit SetParamMulti (normal) | Assignments.cs:32:10:32:22 | exit SetParamMulti | +| Assignments.cs:33:5:36:5 | {...} | Assignments.cs:34:9:34:15 | ...; | +| Assignments.cs:34:9:34:14 | ... = ... | Assignments.cs:35:9:35:20 | ...; | +| Assignments.cs:34:9:34:15 | ...; | Assignments.cs:34:13:34:14 | 42 | +| Assignments.cs:34:13:34:14 | 42 | Assignments.cs:34:9:34:14 | ... = ... | +| Assignments.cs:35:9:35:19 | ... = ... | Assignments.cs:32:10:32:22 | exit SetParamMulti (normal) | +| Assignments.cs:35:9:35:20 | ...; | Assignments.cs:35:13:35:19 | "Hello" | +| Assignments.cs:35:13:35:19 | "Hello" | Assignments.cs:35:9:35:19 | ... = ... | +| Assignments.cs:38:10:38:11 | enter M2 | Assignments.cs:39:5:45:5 | {...} | +| Assignments.cs:38:10:38:11 | exit M2 (normal) | Assignments.cs:38:10:38:11 | exit M2 | +| Assignments.cs:39:5:45:5 | {...} | Assignments.cs:40:9:40:15 | ... ...; | +| Assignments.cs:40:9:40:15 | ... ...; | Assignments.cs:40:13:40:14 | Int32 x1 | +| Assignments.cs:40:13:40:14 | Int32 x1 | Assignments.cs:41:9:41:31 | ...; | +| Assignments.cs:41:9:41:30 | call to method SetParamSingle | Assignments.cs:42:9:42:37 | ...; | +| Assignments.cs:41:9:41:30 | this access | Assignments.cs:41:9:41:30 | call to method SetParamSingle | +| Assignments.cs:41:9:41:31 | ...; | Assignments.cs:41:9:41:30 | this access | +| Assignments.cs:42:9:42:36 | call to method SetParamSingle | Assignments.cs:43:9:43:56 | ...; | +| Assignments.cs:42:9:42:36 | this access | Assignments.cs:42:28:42:35 | this access | +| Assignments.cs:42:9:42:37 | ...; | Assignments.cs:42:9:42:36 | this access | +| Assignments.cs:42:28:42:35 | access to field IntField | Assignments.cs:42:9:42:36 | call to method SetParamSingle | +| Assignments.cs:42:28:42:35 | this access | Assignments.cs:42:28:42:35 | access to field IntField | +| Assignments.cs:43:9:43:55 | call to method SetParamMulti | Assignments.cs:44:9:44:59 | ...; | +| Assignments.cs:43:9:43:55 | this access | Assignments.cs:43:34:43:37 | null | +| Assignments.cs:43:9:43:56 | ...; | Assignments.cs:43:9:43:55 | this access | +| Assignments.cs:43:34:43:37 | null | Assignments.cs:43:44:43:54 | this access | +| Assignments.cs:43:44:43:54 | access to field StringField | Assignments.cs:43:9:43:55 | call to method SetParamMulti | +| Assignments.cs:43:44:43:54 | this access | Assignments.cs:43:44:43:54 | access to field StringField | +| Assignments.cs:44:9:44:58 | call to method SetParamMulti | Assignments.cs:38:10:38:11 | exit M2 (normal) | +| Assignments.cs:44:9:44:58 | this access | Assignments.cs:44:27:44:34 | this access | +| Assignments.cs:44:9:44:59 | ...; | Assignments.cs:44:9:44:58 | this access | +| Assignments.cs:44:27:44:34 | access to field IntField | Assignments.cs:44:37:44:40 | null | +| Assignments.cs:44:27:44:34 | this access | Assignments.cs:44:27:44:34 | access to field IntField | +| Assignments.cs:44:37:44:40 | null | Assignments.cs:44:47:44:57 | this access | +| Assignments.cs:44:47:44:57 | access to field StringField | Assignments.cs:44:9:44:58 | call to method SetParamMulti | +| Assignments.cs:44:47:44:57 | this access | Assignments.cs:44:47:44:57 | access to field StringField | | BreakInTry.cs:1:7:1:16 | call to constructor Object | BreakInTry.cs:1:7:1:16 | {...} | | BreakInTry.cs:1:7:1:16 | call to method | BreakInTry.cs:1:7:1:16 | call to constructor Object | | BreakInTry.cs:1:7:1:16 | enter BreakInTry | BreakInTry.cs:1:7:1:16 | this access | @@ -971,13 +1019,68 @@ dominance | ConditionalAccess.cs:35:9:35:12 | access to property Prop | ConditionalAccess.cs:35:9:35:24 | call to method Out | | ConditionalAccess.cs:35:9:35:12 | this access | ConditionalAccess.cs:35:9:35:12 | access to property Prop | | ConditionalAccess.cs:35:9:35:25 | ...; | ConditionalAccess.cs:35:9:35:12 | this access | -| ConditionalAccess.cs:41:26:41:38 | enter CommaJoinWith | ConditionalAccess.cs:41:70:41:71 | access to parameter s1 | -| ConditionalAccess.cs:41:26:41:38 | exit CommaJoinWith (normal) | ConditionalAccess.cs:41:26:41:38 | exit CommaJoinWith | -| ConditionalAccess.cs:41:70:41:71 | access to parameter s1 | ConditionalAccess.cs:41:75:41:78 | ", " | -| ConditionalAccess.cs:41:70:41:78 | ... + ... | ConditionalAccess.cs:41:82:41:83 | access to parameter s2 | -| ConditionalAccess.cs:41:70:41:83 | ... + ... | ConditionalAccess.cs:41:26:41:38 | exit CommaJoinWith (normal) | -| ConditionalAccess.cs:41:75:41:78 | ", " | ConditionalAccess.cs:41:70:41:78 | ... + ... | -| ConditionalAccess.cs:41:82:41:83 | access to parameter s2 | ConditionalAccess.cs:41:70:41:83 | ... + ... | +| ConditionalAccess.cs:42:9:42:11 | enter get_Item | ConditionalAccess.cs:42:13:42:28 | {...} | +| ConditionalAccess.cs:42:9:42:11 | exit get_Item (normal) | ConditionalAccess.cs:42:9:42:11 | exit get_Item | +| ConditionalAccess.cs:42:13:42:28 | {...} | ConditionalAccess.cs:42:22:42:25 | null | +| ConditionalAccess.cs:42:15:42:26 | return ...; | ConditionalAccess.cs:42:9:42:11 | exit get_Item (normal) | +| ConditionalAccess.cs:42:22:42:25 | null | ConditionalAccess.cs:42:15:42:26 | return ...; | +| ConditionalAccess.cs:43:9:43:11 | enter set_Item | ConditionalAccess.cs:43:13:43:15 | {...} | +| ConditionalAccess.cs:43:9:43:11 | exit set_Item (normal) | ConditionalAccess.cs:43:9:43:11 | exit set_Item | +| ConditionalAccess.cs:43:13:43:15 | {...} | ConditionalAccess.cs:43:9:43:11 | exit set_Item (normal) | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:47:5:55:5 | {...} | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:46:10:46:11 | exit M9 | +| ConditionalAccess.cs:47:5:55:5 | {...} | ConditionalAccess.cs:48:9:48:26 | ...; | +| ConditionalAccess.cs:48:9:48:10 | access to parameter ca | ConditionalAccess.cs:48:24:48:25 | 42 | +| ConditionalAccess.cs:48:9:48:10 | access to parameter ca | ConditionalAccess.cs:49:9:49:33 | ...; | +| ConditionalAccess.cs:48:9:48:20 | access to field IntField | ConditionalAccess.cs:48:12:48:25 | ... = ... | +| ConditionalAccess.cs:48:9:48:26 | ...; | ConditionalAccess.cs:48:9:48:10 | access to parameter ca | +| ConditionalAccess.cs:48:24:48:25 | 42 | ConditionalAccess.cs:48:9:48:20 | access to field IntField | +| ConditionalAccess.cs:49:9:49:10 | access to parameter ca | ConditionalAccess.cs:49:26:49:32 | "Hello" | +| ConditionalAccess.cs:49:9:49:10 | access to parameter ca | ConditionalAccess.cs:50:9:50:24 | ...; | +| ConditionalAccess.cs:49:9:49:22 | access to property StringProp | ConditionalAccess.cs:49:12:49:32 | ... = ... | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:49:9:49:10 | access to parameter ca | +| ConditionalAccess.cs:49:26:49:32 | "Hello" | ConditionalAccess.cs:49:9:49:22 | access to property StringProp | +| ConditionalAccess.cs:50:9:50:10 | access to parameter ca | ConditionalAccess.cs:50:13:50:13 | 0 | +| ConditionalAccess.cs:50:9:50:10 | access to parameter ca | ConditionalAccess.cs:51:9:51:32 | ...; | +| ConditionalAccess.cs:50:9:50:14 | access to indexer | ConditionalAccess.cs:50:12:50:23 | ... = ... | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:50:9:50:10 | access to parameter ca | +| ConditionalAccess.cs:50:13:50:13 | 0 | ConditionalAccess.cs:50:18:50:23 | "Set0" | +| ConditionalAccess.cs:50:18:50:23 | "Set0" | ConditionalAccess.cs:50:9:50:14 | access to indexer | +| ConditionalAccess.cs:51:9:51:10 | access to parameter ca | ConditionalAccess.cs:51:9:51:16 | access to property Prop | +| ConditionalAccess.cs:51:9:51:10 | access to parameter ca | ConditionalAccess.cs:52:9:52:39 | ...; | +| ConditionalAccess.cs:51:9:51:16 | access to property Prop | ConditionalAccess.cs:51:30:51:31 | 84 | +| ConditionalAccess.cs:51:9:51:26 | access to field IntField | ConditionalAccess.cs:51:18:51:31 | ... = ... | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:51:9:51:10 | access to parameter ca | +| ConditionalAccess.cs:51:30:51:31 | 84 | ConditionalAccess.cs:51:9:51:26 | access to field IntField | +| ConditionalAccess.cs:52:9:52:10 | access to parameter ca | ConditionalAccess.cs:52:9:52:16 | access to property Prop | +| ConditionalAccess.cs:52:9:52:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:26 | ...; | +| ConditionalAccess.cs:52:9:52:16 | access to property Prop | ConditionalAccess.cs:52:32:52:38 | "World" | +| ConditionalAccess.cs:52:9:52:28 | access to property StringProp | ConditionalAccess.cs:52:18:52:38 | ... = ... | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:52:9:52:10 | access to parameter ca | +| ConditionalAccess.cs:52:32:52:38 | "World" | ConditionalAccess.cs:52:9:52:28 | access to property StringProp | +| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | +| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:20 | access to field IntField | +| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:25:53:25 | 1 | +| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:30 | ...; | +| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:53:12:53:25 | ... = ... | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | +| ConditionalAccess.cs:53:12:53:25 | ... - ... | ConditionalAccess.cs:53:9:53:20 | access to field IntField | +| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:53:12:53:25 | ... - ... | +| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | +| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | +| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | +| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:27:54:29 | "!" | +| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:54:12:54:29 | ... = ... | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | +| ConditionalAccess.cs:54:12:54:29 | ... + ... | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | +| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:54:12:54:29 | ... + ... | +| ConditionalAccess.cs:60:26:60:38 | enter CommaJoinWith | ConditionalAccess.cs:60:70:60:71 | access to parameter s1 | +| ConditionalAccess.cs:60:26:60:38 | exit CommaJoinWith (normal) | ConditionalAccess.cs:60:26:60:38 | exit CommaJoinWith | +| ConditionalAccess.cs:60:70:60:71 | access to parameter s1 | ConditionalAccess.cs:60:75:60:78 | ", " | +| ConditionalAccess.cs:60:70:60:78 | ... + ... | ConditionalAccess.cs:60:82:60:83 | access to parameter s2 | +| ConditionalAccess.cs:60:70:60:83 | ... + ... | ConditionalAccess.cs:60:26:60:38 | exit CommaJoinWith (normal) | +| ConditionalAccess.cs:60:75:60:78 | ", " | ConditionalAccess.cs:60:70:60:78 | ... + ... | +| ConditionalAccess.cs:60:82:60:83 | access to parameter s2 | ConditionalAccess.cs:60:70:60:83 | ... + ... | | Conditions.cs:1:7:1:16 | call to constructor Object | Conditions.cs:1:7:1:16 | {...} | | Conditions.cs:1:7:1:16 | call to method | Conditions.cs:1:7:1:16 | call to constructor Object | | Conditions.cs:1:7:1:16 | enter Conditions | Conditions.cs:1:7:1:16 | this access | @@ -1763,13 +1866,15 @@ dominance | Finally.cs:209:21:209:22 | access to parameter b3 | Finally.cs:211:13:211:29 | ...; | | Finally.cs:209:31:209:46 | object creation of type ExceptionC | Finally.cs:209:25:209:47 | throw ...; | | Finally.cs:211:13:211:16 | this access | Finally.cs:211:26:211:28 | "0" | +| Finally.cs:211:13:211:22 | access to field Field | Finally.cs:211:13:211:28 | ... = ... | | 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:26:211:28 | "0" | Finally.cs:211:13:211:28 | ... = ... | +| Finally.cs:211:26:211:28 | "0" | Finally.cs:211:13:211:22 | access to field Field | | Finally.cs:213:9:213:12 | this access | Finally.cs:213:22:213:24 | "1" | +| Finally.cs:213:9:213:18 | access to field Field | Finally.cs:213:9:213:24 | ... = ... | | 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 | -| Finally.cs:213:22:213:24 | "1" | Finally.cs:213:9:213:24 | ... = ... | +| Finally.cs:213:22:213:24 | "1" | Finally.cs:213:9:213:18 | access to field Field | | Finally.cs:216:10:216:12 | enter M11 | Finally.cs:217:5:231:5 | {...} | | Finally.cs:216:10:216:12 | exit M11 (normal) | Finally.cs:216:10:216:12 | exit M11 | | Finally.cs:217:5:231:5 | {...} | Finally.cs:218:9:229:9 | try {...} ... | @@ -1900,10 +2005,11 @@ dominance | Initializers.cs:3:7:3:18 | exit (normal) | Initializers.cs:3:7:3:18 | exit | | Initializers.cs:3:7:3:18 | exit Initializers (normal) | Initializers.cs:3:7:3:18 | exit Initializers | | Initializers.cs:3:7:3:18 | {...} | Initializers.cs:3:7:3:18 | exit Initializers (normal) | +| Initializers.cs:5:9:5:9 | access to field F | Initializers.cs:5:9:5:17 | ... = ... | | Initializers.cs:5:9:5:9 | this access | Initializers.cs:5:13:5:13 | access to field H | | Initializers.cs:5:9:5:17 | ... = ... | Initializers.cs:6:9:6:9 | this access | | Initializers.cs:5:13:5:13 | access to field H | Initializers.cs:5:17:5:17 | 1 | -| Initializers.cs:5:13:5:17 | ... + ... | Initializers.cs:5:9:5:17 | ... = ... | +| Initializers.cs:5:13:5:17 | ... + ... | Initializers.cs:5:9:5:9 | access to field F | | Initializers.cs:5:17:5:17 | 1 | Initializers.cs:5:13:5:17 | ... + ... | | Initializers.cs:6:9:6:9 | access to property G | Initializers.cs:6:25:6:31 | ... = ... | | Initializers.cs:6:9:6:9 | this access | Initializers.cs:6:27:6:27 | access to field H | @@ -1931,8 +2037,9 @@ dominance | Initializers.cs:14:17:14:53 | object creation of type Initializers | Initializers.cs:14:44:14:44 | 0 | | Initializers.cs:14:34:14:35 | "" | Initializers.cs:14:17:14:53 | object creation of type Initializers | | Initializers.cs:14:38:14:53 | { ..., ... } | Initializers.cs:14:13:14:53 | Initializers i = ... | +| Initializers.cs:14:40:14:40 | access to field F | Initializers.cs:14:40:14:44 | ... = ... | | Initializers.cs:14:40:14:44 | ... = ... | Initializers.cs:14:51:14:51 | 1 | -| Initializers.cs:14:44:14:44 | 0 | Initializers.cs:14:40:14:44 | ... = ... | +| Initializers.cs:14:44:14:44 | 0 | Initializers.cs:14:40:14:40 | access to field F | | Initializers.cs:14:47:14:47 | access to property G | Initializers.cs:14:47:14:51 | ... = ... | | Initializers.cs:14:47:14:51 | ... = ... | Initializers.cs:14:38:14:53 | { ..., ... } | | Initializers.cs:14:51:14:51 | 1 | Initializers.cs:14:47:14:47 | access to property G | @@ -1944,10 +2051,11 @@ dominance | Initializers.cs:15:39:15:39 | access to local variable i | Initializers.cs:15:59:15:60 | "" | | Initializers.cs:15:42:15:61 | object creation of type Initializers | Initializers.cs:15:37:15:63 | { ..., ... } | | Initializers.cs:15:59:15:60 | "" | Initializers.cs:15:42:15:61 | object creation of type Initializers | +| Initializers.cs:18:16:18:16 | access to field H | Initializers.cs:18:16:18:20 | ... = ... | | Initializers.cs:18:16:18:16 | enter H | Initializers.cs:18:20:18:20 | 1 | | Initializers.cs:18:16:18:16 | exit H (normal) | Initializers.cs:18:16:18:16 | exit H | | Initializers.cs:18:16:18:20 | ... = ... | Initializers.cs:18:16:18:16 | exit H (normal) | -| Initializers.cs:18:20:18:20 | 1 | Initializers.cs:18:16:18:20 | ... = ... | +| Initializers.cs:18:20:18:20 | 1 | Initializers.cs:18:16:18:16 | access to field H | | Initializers.cs:20:11:20:23 | call to constructor Object | Initializers.cs:20:11:20:23 | {...} | | Initializers.cs:20:11:20:23 | call to method | Initializers.cs:20:11:20:23 | call to constructor Object | | Initializers.cs:20:11:20:23 | enter | Initializers.cs:22:23:22:23 | this access | @@ -1956,46 +2064,52 @@ dominance | Initializers.cs:20:11:20:23 | exit NoConstructor (normal) | Initializers.cs:20:11:20:23 | exit NoConstructor | | Initializers.cs:20:11:20:23 | this access | Initializers.cs:20:11:20:23 | call to method | | Initializers.cs:20:11:20:23 | {...} | Initializers.cs:20:11:20:23 | exit NoConstructor (normal) | +| Initializers.cs:22:23:22:23 | access to field F | Initializers.cs:22:23:22:27 | ... = ... | | Initializers.cs:22:23:22:23 | this access | Initializers.cs:22:27:22:27 | 0 | | Initializers.cs:22:23:22:27 | ... = ... | Initializers.cs:23:23:23:23 | this access | -| Initializers.cs:22:27:22:27 | 0 | Initializers.cs:22:23:22:27 | ... = ... | +| Initializers.cs:22:27:22:27 | 0 | Initializers.cs:22:23:22:23 | access to field F | +| Initializers.cs:23:23:23:23 | access to field G | Initializers.cs:23:23:23:27 | ... = ... | | Initializers.cs:23:23:23:23 | this access | Initializers.cs:23:27:23:27 | 1 | | Initializers.cs:23:23:23:27 | ... = ... | Initializers.cs:20:11:20:23 | exit (normal) | -| Initializers.cs:23:27:23:27 | 1 | Initializers.cs:23:23:23:27 | ... = ... | +| Initializers.cs:23:27:23:27 | 1 | Initializers.cs:23:23:23:23 | access to field G | | Initializers.cs:26:11:26:13 | enter | Initializers.cs:28:13:28:13 | this access | | Initializers.cs:26:11:26:13 | exit (normal) | Initializers.cs:26:11:26:13 | exit | +| Initializers.cs:28:13:28:13 | access to field H | Initializers.cs:28:13:28:17 | ... = ... | | Initializers.cs:28:13:28:13 | this access | Initializers.cs:28:17:28:17 | 2 | | Initializers.cs:28:13:28:17 | ... = ... | Initializers.cs:26:11:26:13 | exit (normal) | -| Initializers.cs:28:17:28:17 | 2 | Initializers.cs:28:13:28:17 | ... = ... | +| Initializers.cs:28:17:28:17 | 2 | Initializers.cs:28:13:28:13 | access to field H | | Initializers.cs:31:9:31:11 | call to method | Initializers.cs:31:17:31:20 | call to constructor NoConstructor | | Initializers.cs:31:9:31:11 | enter Sub | Initializers.cs:31:9:31:11 | this access | | Initializers.cs:31:9:31:11 | exit Sub (normal) | Initializers.cs:31:9:31:11 | exit Sub | | Initializers.cs:31:9:31:11 | this access | Initializers.cs:31:9:31:11 | call to method | | Initializers.cs:31:17:31:20 | call to constructor NoConstructor | Initializers.cs:31:24:31:33 | {...} | | Initializers.cs:31:24:31:33 | {...} | Initializers.cs:31:26:31:31 | ...; | +| Initializers.cs:31:26:31:26 | access to field I | Initializers.cs:31:26:31:30 | ... = ... | | Initializers.cs:31:26:31:26 | this access | Initializers.cs:31:30:31:30 | 3 | | Initializers.cs:31:26:31:30 | ... = ... | Initializers.cs:31:9:31:11 | exit Sub (normal) | | Initializers.cs:31:26:31:31 | ...; | Initializers.cs:31:26:31:26 | this access | -| Initializers.cs:31:30:31:30 | 3 | Initializers.cs:31:26:31:30 | ... = ... | +| Initializers.cs:31:30:31:30 | 3 | Initializers.cs:31:26:31:26 | access to field I | | Initializers.cs:33:9:33:11 | enter Sub | Initializers.cs:33:22:33:25 | call to constructor Sub | | Initializers.cs:33:9:33:11 | exit Sub (normal) | Initializers.cs:33:9:33:11 | exit Sub | | Initializers.cs:33:22:33:25 | call to constructor Sub | Initializers.cs:33:29:33:38 | {...} | | Initializers.cs:33:29:33:38 | {...} | Initializers.cs:33:31:33:36 | ...; | +| Initializers.cs:33:31:33:31 | access to field I | Initializers.cs:33:31:33:35 | ... = ... | | Initializers.cs:33:31:33:31 | this access | Initializers.cs:33:35:33:35 | access to parameter i | | Initializers.cs:33:31:33:35 | ... = ... | Initializers.cs:33:9:33:11 | exit Sub (normal) | | Initializers.cs:33:31:33:36 | ...; | Initializers.cs:33:31:33:31 | this access | -| Initializers.cs:33:35:33:35 | access to parameter i | Initializers.cs:33:31:33:35 | ... = ... | +| Initializers.cs:33:35:33:35 | access to parameter i | Initializers.cs:33:31:33:31 | access to field I | | Initializers.cs:35:9:35:11 | call to constructor NoConstructor | Initializers.cs:35:27:35:40 | {...} | | Initializers.cs:35:9:35:11 | call to method | Initializers.cs:35:9:35:11 | call to constructor NoConstructor | | Initializers.cs:35:9:35:11 | enter Sub | Initializers.cs:35:9:35:11 | this access | | Initializers.cs:35:9:35:11 | exit Sub (normal) | Initializers.cs:35:9:35:11 | exit Sub | | Initializers.cs:35:9:35:11 | this access | Initializers.cs:35:9:35:11 | call to method | | Initializers.cs:35:27:35:40 | {...} | Initializers.cs:35:29:35:38 | ...; | +| Initializers.cs:35:29:35:29 | access to field I | Initializers.cs:35:29:35:37 | ... = ... | | Initializers.cs:35:29:35:29 | this access | Initializers.cs:35:33:35:33 | access to parameter i | | Initializers.cs:35:29:35:37 | ... = ... | Initializers.cs:35:9:35:11 | exit Sub (normal) | | Initializers.cs:35:29:35:38 | ...; | Initializers.cs:35:29:35:29 | this access | | Initializers.cs:35:33:35:33 | access to parameter i | Initializers.cs:35:37:35:37 | access to parameter j | -| Initializers.cs:35:33:35:37 | ... + ... | Initializers.cs:35:29:35:37 | ... = ... | +| Initializers.cs:35:33:35:37 | ... + ... | Initializers.cs:35:29:35:29 | access to field I | | Initializers.cs:35:37:35:37 | access to parameter j | Initializers.cs:35:33:35:37 | ... + ... | | Initializers.cs:39:7:39:23 | call to constructor Object | Initializers.cs:39:7:39:23 | {...} | | Initializers.cs:39:7:39:23 | call to method | Initializers.cs:39:7:39:23 | call to constructor Object | @@ -2034,8 +2148,9 @@ dominance | Initializers.cs:57:13:65:9 | Compound compound = ... | Initializers.cs:51:10:51:13 | exit Test (normal) | | Initializers.cs:57:24:65:9 | object creation of type Compound | Initializers.cs:59:34:59:34 | 0 | | Initializers.cs:58:9:65:9 | { ..., ... } | Initializers.cs:57:13:65:9 | Compound compound = ... | +| Initializers.cs:59:13:59:27 | access to field DictionaryField | Initializers.cs:59:13:59:76 | ... = ... | | Initializers.cs:59:13:59:76 | ... = ... | Initializers.cs:60:37:60:37 | 3 | -| Initializers.cs:59:31:59:76 | { ..., ... } | Initializers.cs:59:13:59:76 | ... = ... | +| Initializers.cs:59:31:59:76 | { ..., ... } | Initializers.cs:59:13:59:27 | access to field DictionaryField | | Initializers.cs:59:33:59:35 | access to indexer | Initializers.cs:59:33:59:44 | ... = ... | | Initializers.cs:59:33:59:44 | ... = ... | Initializers.cs:59:48:59:48 | 1 | | Initializers.cs:59:34:59:34 | 0 | Initializers.cs:59:39:59:44 | "Zero" | @@ -2067,52 +2182,62 @@ dominance | Initializers.cs:60:65:60:69 | ... + ... | Initializers.cs:60:74:60:78 | "One" | | Initializers.cs:60:69:60:69 | 1 | Initializers.cs:60:65:60:69 | ... + ... | | Initializers.cs:60:74:60:78 | "One" | Initializers.cs:60:64:60:70 | access to indexer | +| Initializers.cs:61:13:61:22 | access to field ArrayField | Initializers.cs:61:13:61:58 | ... = ... | | Initializers.cs:61:13:61:58 | ... = ... | Initializers.cs:62:30:62:30 | 0 | -| Initializers.cs:61:26:61:58 | { ..., ... } | Initializers.cs:61:13:61:58 | ... = ... | +| Initializers.cs:61:26:61:58 | { ..., ... } | Initializers.cs:61:13:61:22 | access to field ArrayField | +| Initializers.cs:61:28:61:30 | access to array element | Initializers.cs:61:28:61:39 | ... = ... | | Initializers.cs:61:28:61:39 | ... = ... | Initializers.cs:61:43:61:43 | access to parameter i | | Initializers.cs:61:29:61:29 | 0 | Initializers.cs:61:34:61:39 | "Zero" | -| Initializers.cs:61:34:61:39 | "Zero" | Initializers.cs:61:28:61:39 | ... = ... | +| Initializers.cs:61:34:61:39 | "Zero" | Initializers.cs:61:28:61:30 | access to array element | +| Initializers.cs:61:42:61:48 | access to array element | Initializers.cs:61:42:61:56 | ... = ... | | Initializers.cs:61:42:61:56 | ... = ... | Initializers.cs:61:26:61:58 | { ..., ... } | | Initializers.cs:61:43:61:43 | access to parameter i | Initializers.cs:61:47:61:47 | 1 | | Initializers.cs:61:43:61:47 | ... + ... | Initializers.cs:61:52:61:56 | "One" | | Initializers.cs:61:47:61:47 | 1 | Initializers.cs:61:43:61:47 | ... + ... | -| Initializers.cs:61:52:61:56 | "One" | Initializers.cs:61:42:61:56 | ... = ... | +| Initializers.cs:61:52:61:56 | "One" | Initializers.cs:61:42:61:48 | access to array element | +| Initializers.cs:62:13:62:23 | access to field ArrayField2 | Initializers.cs:62:13:62:60 | ... = ... | | Initializers.cs:62:13:62:60 | ... = ... | Initializers.cs:63:32:63:32 | 1 | -| Initializers.cs:62:27:62:60 | { ..., ... } | Initializers.cs:62:13:62:60 | ... = ... | +| Initializers.cs:62:27:62:60 | { ..., ... } | Initializers.cs:62:13:62:23 | access to field ArrayField2 | +| Initializers.cs:62:29:62:34 | access to array element | Initializers.cs:62:29:62:40 | ... = ... | | Initializers.cs:62:29:62:40 | ... = ... | Initializers.cs:62:44:62:44 | 1 | | Initializers.cs:62:30:62:30 | 0 | Initializers.cs:62:33:62:33 | 1 | | Initializers.cs:62:33:62:33 | 1 | Initializers.cs:62:38:62:40 | "i" | -| Initializers.cs:62:38:62:40 | "i" | Initializers.cs:62:29:62:40 | ... = ... | +| Initializers.cs:62:38:62:40 | "i" | Initializers.cs:62:29:62:34 | access to array element | +| Initializers.cs:62:43:62:52 | access to array element | Initializers.cs:62:43:62:58 | ... = ... | | Initializers.cs:62:43:62:58 | ... = ... | Initializers.cs:62:27:62:60 | { ..., ... } | | Initializers.cs:62:44:62:44 | 1 | Initializers.cs:62:47:62:47 | access to parameter i | | Initializers.cs:62:47:62:47 | access to parameter i | Initializers.cs:62:51:62:51 | 0 | | Initializers.cs:62:47:62:51 | ... + ... | Initializers.cs:62:56:62:58 | "1" | | Initializers.cs:62:51:62:51 | 0 | Initializers.cs:62:47:62:51 | ... + ... | -| Initializers.cs:62:56:62:58 | "1" | Initializers.cs:62:43:62:58 | ... = ... | +| Initializers.cs:62:56:62:58 | "1" | Initializers.cs:62:43:62:52 | access to array element | | Initializers.cs:63:13:63:25 | access to property ArrayProperty | Initializers.cs:63:13:63:60 | ... = ... | | Initializers.cs:63:13:63:60 | ... = ... | Initializers.cs:64:33:64:33 | 0 | | Initializers.cs:63:29:63:60 | { ..., ... } | Initializers.cs:63:13:63:25 | access to property ArrayProperty | +| Initializers.cs:63:31:63:33 | access to array element | Initializers.cs:63:31:63:41 | ... = ... | | Initializers.cs:63:31:63:41 | ... = ... | Initializers.cs:63:45:63:45 | access to parameter i | | Initializers.cs:63:32:63:32 | 1 | Initializers.cs:63:37:63:41 | "One" | -| Initializers.cs:63:37:63:41 | "One" | Initializers.cs:63:31:63:41 | ... = ... | +| Initializers.cs:63:37:63:41 | "One" | Initializers.cs:63:31:63:33 | access to array element | +| Initializers.cs:63:44:63:50 | access to array element | Initializers.cs:63:44:63:58 | ... = ... | | Initializers.cs:63:44:63:58 | ... = ... | Initializers.cs:63:29:63:60 | { ..., ... } | | Initializers.cs:63:45:63:45 | access to parameter i | Initializers.cs:63:49:63:49 | 2 | | Initializers.cs:63:45:63:49 | ... + ... | Initializers.cs:63:54:63:58 | "Two" | | Initializers.cs:63:49:63:49 | 2 | Initializers.cs:63:45:63:49 | ... + ... | -| Initializers.cs:63:54:63:58 | "Two" | Initializers.cs:63:44:63:58 | ... = ... | +| Initializers.cs:63:54:63:58 | "Two" | Initializers.cs:63:44:63:50 | access to array element | | Initializers.cs:64:13:64:26 | access to property ArrayProperty2 | Initializers.cs:64:13:64:63 | ... = ... | | Initializers.cs:64:13:64:63 | ... = ... | Initializers.cs:58:9:65:9 | { ..., ... } | | Initializers.cs:64:30:64:63 | { ..., ... } | Initializers.cs:64:13:64:26 | access to property ArrayProperty2 | +| Initializers.cs:64:32:64:37 | access to array element | Initializers.cs:64:32:64:43 | ... = ... | | Initializers.cs:64:32:64:43 | ... = ... | Initializers.cs:64:47:64:47 | 1 | | Initializers.cs:64:33:64:33 | 0 | Initializers.cs:64:36:64:36 | 1 | | Initializers.cs:64:36:64:36 | 1 | Initializers.cs:64:41:64:43 | "i" | -| Initializers.cs:64:41:64:43 | "i" | Initializers.cs:64:32:64:43 | ... = ... | +| Initializers.cs:64:41:64:43 | "i" | Initializers.cs:64:32:64:37 | access to array element | +| Initializers.cs:64:46:64:55 | access to array element | Initializers.cs:64:46:64:61 | ... = ... | | Initializers.cs:64:46:64:61 | ... = ... | Initializers.cs:64:30:64:63 | { ..., ... } | | Initializers.cs:64:47:64:47 | 1 | Initializers.cs:64:50:64:50 | access to parameter i | | Initializers.cs:64:50:64:50 | access to parameter i | Initializers.cs:64:54:64:54 | 0 | | Initializers.cs:64:50:64:54 | ... + ... | Initializers.cs:64:59:64:61 | "1" | | Initializers.cs:64:54:64:54 | 0 | Initializers.cs:64:50:64:54 | ... + ... | -| Initializers.cs:64:59:64:61 | "1" | Initializers.cs:64:46:64:61 | ... = ... | +| Initializers.cs:64:59:64:61 | "1" | Initializers.cs:64:46:64:55 | access to array element | | LoopUnrolling.cs:5:7:5:19 | call to constructor Object | LoopUnrolling.cs:5:7:5:19 | {...} | | LoopUnrolling.cs:5:7:5:19 | call to method | LoopUnrolling.cs:5:7:5:19 | call to constructor Object | | LoopUnrolling.cs:5:7:5:19 | enter LoopUnrolling | LoopUnrolling.cs:5:7:5:19 | this access | @@ -2339,9 +2464,10 @@ dominance | MultiImplementationA.cs:11:7:11:8 | enter | MultiImplementationA.cs:13:16:13:16 | this access | | MultiImplementationA.cs:11:7:11:8 | enter | MultiImplementationB.cs:11:16:11:16 | this access | | MultiImplementationA.cs:11:7:11:8 | exit (normal) | MultiImplementationA.cs:11:7:11:8 | exit | +| MultiImplementationA.cs:13:16:13:16 | access to field F | MultiImplementationA.cs:13:16:13:20 | ... = ... | | 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 | -| MultiImplementationA.cs:13:20:13:20 | 0 | MultiImplementationA.cs:13:16:13:20 | ... = ... | +| MultiImplementationA.cs:13:20:13:20 | 0 | MultiImplementationA.cs:13:16:13:16 | access to field F | | MultiImplementationA.cs:14:31:14:31 | access to parameter i | MultiImplementationA.cs:14:31:14:31 | exit get_Item (normal) | | MultiImplementationA.cs:14:31:14:31 | enter get_Item | MultiImplementationA.cs:14:31:14:31 | access to parameter i | | MultiImplementationA.cs:14:31:14:31 | enter get_Item | MultiImplementationB.cs:12:37:12:40 | null | @@ -2366,10 +2492,11 @@ dominance | MultiImplementationA.cs:20:12:20:13 | enter C2 | MultiImplementationB.cs:18:12:18:13 | this access | | MultiImplementationA.cs:20:12:20:13 | this access | MultiImplementationA.cs:20:12:20:13 | call to method | | MultiImplementationA.cs:20:22:20:31 | {...} | MultiImplementationA.cs:20:24:20:29 | ...; | +| MultiImplementationA.cs:20:24:20:24 | access to field F | MultiImplementationA.cs:20:24:20:28 | ... = ... | | MultiImplementationA.cs:20:24:20:24 | this access | MultiImplementationA.cs:20:28:20:28 | access to parameter i | | MultiImplementationA.cs:20:24:20:28 | ... = ... | MultiImplementationA.cs:20:12:20:13 | exit C2 (normal) | | MultiImplementationA.cs:20:24:20:29 | ...; | MultiImplementationA.cs:20:24:20:24 | this access | -| MultiImplementationA.cs:20:28:20:28 | access to parameter i | MultiImplementationA.cs:20:24:20:28 | ... = ... | +| MultiImplementationA.cs:20:28:20:28 | access to parameter i | MultiImplementationA.cs:20:24:20:24 | access to field F | | MultiImplementationA.cs:21:12:21:13 | enter C2 | MultiImplementationA.cs:21:24:21:24 | 0 | | MultiImplementationA.cs:21:12:21:13 | enter C2 | MultiImplementationB.cs:19:24:19:24 | 1 | | MultiImplementationA.cs:21:12:21:13 | exit C2 (normal) | MultiImplementationA.cs:21:12:21:13 | exit C2 | @@ -2419,9 +2546,10 @@ dominance | MultiImplementationB.cs:4:34:4:34 | 1 | MultiImplementationB.cs:4:27:4:35 | return ...; | | MultiImplementationB.cs:4:43:4:45 | {...} | MultiImplementationA.cs:7:41:7:43 | exit set_P2 (normal) | | MultiImplementationB.cs:5:23:5:23 | 2 | MultiImplementationA.cs:8:16:8:16 | exit M (normal) | +| MultiImplementationB.cs:11:16:11:16 | access to field F | MultiImplementationB.cs:11:16:11:20 | ... = ... | | 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:11:20:11:20 | 1 | MultiImplementationB.cs:11:16:11:16 | access to field F | | MultiImplementationB.cs:12:31:12:40 | throw ... | MultiImplementationA.cs:14:31:14:31 | exit get_Item (abnormal) | | 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 | @@ -2525,9 +2653,10 @@ dominance | PartialImplementationA.cs:3:12:3:18 | exit Partial (normal) | PartialImplementationA.cs:3:12:3:18 | exit Partial | | PartialImplementationA.cs:3:12:3:18 | this access | PartialImplementationA.cs:3:12:3:18 | call to method | | PartialImplementationA.cs:3:27:3:29 | {...} | PartialImplementationA.cs:3:12:3:18 | exit Partial (normal) | +| PartialImplementationB.cs:3:16:3:16 | access to field F | PartialImplementationB.cs:3:16:3:20 | ... = ... | | PartialImplementationB.cs:3:16:3:16 | this access | PartialImplementationB.cs:3:20:3:20 | 0 | | PartialImplementationB.cs:3:16:3:20 | ... = ... | PartialImplementationB.cs:5:16:5:16 | this access | -| PartialImplementationB.cs:3:20:3:20 | 0 | PartialImplementationB.cs:3:16:3:20 | ... = ... | +| PartialImplementationB.cs:3:20:3:20 | 0 | PartialImplementationB.cs:3:16:3:16 | access to field F | | PartialImplementationB.cs:4:12:4:18 | call to constructor Object | PartialImplementationB.cs:4:22:4:24 | {...} | | PartialImplementationB.cs:4:12:4:18 | call to method | PartialImplementationB.cs:4:12:4:18 | call to constructor Object | | PartialImplementationB.cs:4:12:4:18 | enter Partial | PartialImplementationB.cs:4:12:4:18 | this access | @@ -3462,20 +3591,22 @@ dominance | cflow.cs:127:62:127:64 | enter set_Prop | cflow.cs:127:66:127:83 | {...} | | cflow.cs:127:62:127:64 | exit set_Prop (normal) | cflow.cs:127:62:127:64 | exit set_Prop | | cflow.cs:127:66:127:83 | {...} | cflow.cs:127:68:127:81 | ...; | +| cflow.cs:127:68:127:72 | access to field Field | cflow.cs:127:68:127:80 | ... = ... | | cflow.cs:127:68:127:72 | this access | cflow.cs:127:76:127:80 | access to parameter value | | cflow.cs:127:68:127:80 | ... = ... | cflow.cs:127:62:127:64 | exit set_Prop (normal) | | cflow.cs:127:68:127:81 | ...; | cflow.cs:127:68:127:72 | this access | -| cflow.cs:127:76:127:80 | access to parameter value | cflow.cs:127:68:127:80 | ... = ... | +| cflow.cs:127:76:127:80 | access to parameter value | cflow.cs:127:68:127:72 | access to field Field | | cflow.cs:129:5:129:15 | call to constructor Object | cflow.cs:130:5:132:5 | {...} | | cflow.cs:129:5:129:15 | call to method | cflow.cs:129:5:129:15 | call to constructor Object | | cflow.cs:129:5:129:15 | enter ControlFlow | cflow.cs:129:5:129:15 | this access | | cflow.cs:129:5:129:15 | exit ControlFlow (normal) | cflow.cs:129:5:129:15 | exit ControlFlow | | cflow.cs:129:5:129:15 | this access | cflow.cs:129:5:129:15 | call to method | | cflow.cs:130:5:132:5 | {...} | cflow.cs:131:9:131:18 | ...; | +| cflow.cs:131:9:131:13 | access to field Field | cflow.cs:131:9:131:17 | ... = ... | | cflow.cs:131:9:131:13 | this access | cflow.cs:131:17:131:17 | access to parameter s | | cflow.cs:131:9:131:17 | ... = ... | cflow.cs:129:5:129:15 | exit ControlFlow (normal) | | cflow.cs:131:9:131:18 | ...; | cflow.cs:131:9:131:13 | this access | -| cflow.cs:131:17:131:17 | access to parameter s | cflow.cs:131:9:131:17 | ... = ... | +| cflow.cs:131:17:131:17 | access to parameter s | cflow.cs:131:9:131:13 | access to field Field | | cflow.cs:134:5:134:15 | enter ControlFlow | cflow.cs:134:31:134:31 | access to parameter i | | cflow.cs:134:5:134:15 | exit ControlFlow (normal) | cflow.cs:134:5:134:15 | exit ControlFlow | | cflow.cs:134:26:134:29 | call to constructor ControlFlow | cflow.cs:134:39:134:41 | {...} | @@ -3688,10 +3819,11 @@ dominance | cflow.cs:209:5:222:5 | {...} | cflow.cs:210:9:221:36 | do ... while (...); | | cflow.cs:210:9:221:36 | do ... while (...); | cflow.cs:211:9:221:9 | {...} | | cflow.cs:211:9:221:9 | {...} | cflow.cs:212:13:212:25 | ...; | +| cflow.cs:212:13:212:17 | access to field Field | cflow.cs:212:13:212:24 | ... = ... | | cflow.cs:212:13:212:17 | access to field Field | cflow.cs:212:22:212:24 | "a" | | cflow.cs:212:13:212:17 | this access | cflow.cs:212:13:212:17 | access to field Field | | cflow.cs:212:13:212:17 | this access | cflow.cs:212:13:212:17 | this access | -| cflow.cs:212:13:212:24 | ... + ... | cflow.cs:212:13:212:24 | ... = ... | +| cflow.cs:212:13:212:24 | ... + ... | cflow.cs:212:13:212:17 | access to field Field | | cflow.cs:212:13:212:24 | ... = ... | cflow.cs:213:13:216:13 | if (...) ... | | cflow.cs:212:13:212:25 | ...; | cflow.cs:212:13:212:17 | this access | | cflow.cs:212:22:212:24 | "a" | cflow.cs:212:13:212:24 | ... + ... | @@ -3724,10 +3856,11 @@ dominance | cflow.cs:226:57:226:59 | "a" | cflow.cs:226:62:226:63 | 10 | | cflow.cs:226:62:226:63 | 10 | cflow.cs:226:27:226:64 | call to method Repeat | | cflow.cs:227:9:237:9 | {...} | cflow.cs:228:13:228:23 | ...; | +| cflow.cs:228:13:228:17 | access to field Field | cflow.cs:228:13:228:22 | ... = ... | | cflow.cs:228:13:228:17 | access to field Field | cflow.cs:228:22:228:22 | access to local variable x | | cflow.cs:228:13:228:17 | this access | cflow.cs:228:13:228:17 | access to field Field | | cflow.cs:228:13:228:17 | this access | cflow.cs:228:13:228:17 | this access | -| cflow.cs:228:13:228:22 | ... + ... | cflow.cs:228:13:228:22 | ... = ... | +| cflow.cs:228:13:228:22 | ... + ... | cflow.cs:228:13:228:17 | access to field Field | | cflow.cs:228:13:228:22 | ... = ... | cflow.cs:229:13:232:13 | if (...) ... | | cflow.cs:228:13:228:23 | ...; | cflow.cs:228:13:228:17 | this access | | cflow.cs:228:22:228:22 | access to local variable x | cflow.cs:228:13:228:22 | ... + ... | @@ -3899,7 +4032,8 @@ postDominance | AccessorCalls.cs:10:10:10:11 | exit M1 (normal) | AccessorCalls.cs:16:9:16:23 | ... -= ... | | AccessorCalls.cs:11:5:17:5 | {...} | AccessorCalls.cs:10:10:10:11 | enter M1 | | AccessorCalls.cs:12:9:12:12 | this access | AccessorCalls.cs:12:9:12:32 | ...; | -| AccessorCalls.cs:12:9:12:31 | ... = ... | AccessorCalls.cs:12:22:12:31 | access to field Field | +| AccessorCalls.cs:12:9:12:18 | access to field Field | AccessorCalls.cs:12:22:12:31 | access to field Field | +| AccessorCalls.cs:12:9:12:31 | ... = ... | AccessorCalls.cs:12:9:12:18 | access to field Field | | AccessorCalls.cs:12:9:12:32 | ...; | AccessorCalls.cs:11:5:17:5 | {...} | | AccessorCalls.cs:12:22:12:25 | this access | AccessorCalls.cs:12:9:12:12 | this access | | AccessorCalls.cs:12:22:12:31 | access to field Field | AccessorCalls.cs:12:22:12:25 | this access | @@ -3932,7 +4066,8 @@ postDominance | AccessorCalls.cs:20:5:26:5 | {...} | AccessorCalls.cs:19:10:19:11 | enter M2 | | AccessorCalls.cs:21:9:21:12 | this access | AccessorCalls.cs:21:9:21:36 | ...; | | AccessorCalls.cs:21:9:21:14 | access to field x | AccessorCalls.cs:21:9:21:12 | this access | -| AccessorCalls.cs:21:9:21:35 | ... = ... | AccessorCalls.cs:21:24:21:35 | access to field Field | +| AccessorCalls.cs:21:9:21:20 | access to field Field | AccessorCalls.cs:21:24:21:35 | access to field Field | +| AccessorCalls.cs:21:9:21:35 | ... = ... | AccessorCalls.cs:21:9:21:20 | access to field Field | | AccessorCalls.cs:21:9:21:36 | ...; | AccessorCalls.cs:20:5:26:5 | {...} | | AccessorCalls.cs:21:24:21:27 | this access | AccessorCalls.cs:21:9:21:14 | access to field x | | AccessorCalls.cs:21:24:21:29 | access to field x | AccessorCalls.cs:21:24:21:27 | this access | @@ -4008,8 +4143,9 @@ postDominance | AccessorCalls.cs:44:9:44:12 | this access | AccessorCalls.cs:44:9:44:12 | this access | | AccessorCalls.cs:44:9:44:12 | this access | AccessorCalls.cs:44:9:44:33 | ...; | | AccessorCalls.cs:44:9:44:18 | access to field Field | AccessorCalls.cs:44:9:44:12 | this access | +| AccessorCalls.cs:44:9:44:18 | access to field Field | AccessorCalls.cs:44:9:44:32 | ... + ... | | AccessorCalls.cs:44:9:44:32 | ... + ... | AccessorCalls.cs:44:23:44:32 | access to field Field | -| AccessorCalls.cs:44:9:44:32 | ... = ... | AccessorCalls.cs:44:9:44:32 | ... + ... | +| AccessorCalls.cs:44:9:44:32 | ... = ... | AccessorCalls.cs:44:9:44:18 | access to field Field | | AccessorCalls.cs:44:9:44:33 | ...; | AccessorCalls.cs:43:5:47:5 | {...} | | AccessorCalls.cs:44:23:44:26 | this access | AccessorCalls.cs:44:9:44:18 | access to field Field | | AccessorCalls.cs:44:23:44:32 | access to field Field | AccessorCalls.cs:44:23:44:26 | this access | @@ -4042,8 +4178,9 @@ postDominance | AccessorCalls.cs:51:9:51:14 | access to field x | AccessorCalls.cs:51:9:51:12 | this access | | AccessorCalls.cs:51:9:51:14 | access to field x | AccessorCalls.cs:51:9:51:12 | this access | | AccessorCalls.cs:51:9:51:20 | access to field Field | AccessorCalls.cs:51:9:51:14 | access to field x | +| AccessorCalls.cs:51:9:51:20 | access to field Field | AccessorCalls.cs:51:9:51:36 | ... + ... | | AccessorCalls.cs:51:9:51:36 | ... + ... | AccessorCalls.cs:51:25:51:36 | access to field Field | -| AccessorCalls.cs:51:9:51:36 | ... = ... | AccessorCalls.cs:51:9:51:36 | ... + ... | +| AccessorCalls.cs:51:9:51:36 | ... = ... | AccessorCalls.cs:51:9:51:20 | access to field Field | | AccessorCalls.cs:51:9:51:37 | ...; | AccessorCalls.cs:50:5:54:5 | {...} | | AccessorCalls.cs:51:25:51:28 | this access | AccessorCalls.cs:51:9:51:20 | access to field Field | | AccessorCalls.cs:51:25:51:30 | access to field x | AccessorCalls.cs:51:25:51:28 | this access | @@ -4082,8 +4219,9 @@ postDominance | AccessorCalls.cs:58:9:58:85 | ... = ... | AccessorCalls.cs:58:37:58:43 | access to indexer | | AccessorCalls.cs:58:9:58:86 | ...; | AccessorCalls.cs:57:5:59:5 | {...} | | AccessorCalls.cs:58:10:58:13 | this access | AccessorCalls.cs:58:9:58:86 | ...; | +| AccessorCalls.cs:58:10:58:19 | access to field Field | AccessorCalls.cs:58:49:58:85 | (..., ...) | | AccessorCalls.cs:58:22:58:25 | this access | AccessorCalls.cs:58:10:58:13 | this access | -| AccessorCalls.cs:58:22:58:30 | access to property Prop | AccessorCalls.cs:58:49:58:85 | (..., ...) | +| AccessorCalls.cs:58:22:58:30 | access to property Prop | AccessorCalls.cs:58:10:58:19 | access to field Field | | AccessorCalls.cs:58:33:58:44 | (..., ...) | AccessorCalls.cs:58:42:58:42 | 0 | | AccessorCalls.cs:58:37:58:40 | this access | AccessorCalls.cs:58:22:58:25 | this access | | AccessorCalls.cs:58:37:58:43 | access to indexer | AccessorCalls.cs:58:22:58:30 | access to property Prop | @@ -4106,9 +4244,10 @@ postDominance | AccessorCalls.cs:63:9:63:98 | ...; | AccessorCalls.cs:62:5:64:5 | {...} | | AccessorCalls.cs:63:10:63:13 | this access | AccessorCalls.cs:63:9:63:98 | ...; | | AccessorCalls.cs:63:10:63:15 | access to field x | AccessorCalls.cs:63:10:63:13 | this access | +| AccessorCalls.cs:63:10:63:21 | access to field Field | AccessorCalls.cs:63:55:63:97 | (..., ...) | | AccessorCalls.cs:63:24:63:27 | this access | AccessorCalls.cs:63:10:63:15 | access to field x | | AccessorCalls.cs:63:24:63:29 | access to field x | AccessorCalls.cs:63:24:63:27 | this access | -| AccessorCalls.cs:63:24:63:34 | access to property Prop | AccessorCalls.cs:63:55:63:97 | (..., ...) | +| AccessorCalls.cs:63:24:63:34 | access to property Prop | AccessorCalls.cs:63:10:63:21 | access to field Field | | AccessorCalls.cs:63:37:63:50 | (..., ...) | AccessorCalls.cs:63:48:63:48 | 0 | | AccessorCalls.cs:63:41:63:44 | this access | AccessorCalls.cs:63:24:63:29 | access to field x | | AccessorCalls.cs:63:41:63:46 | access to field x | AccessorCalls.cs:63:41:63:44 | this access | @@ -4625,6 +4764,48 @@ postDominance | Assignments.cs:18:5:20:5 | {...} | Assignments.cs:17:40:17:40 | enter + | | Assignments.cs:19:9:19:17 | return ...; | Assignments.cs:19:16:19:16 | access to parameter x | | Assignments.cs:19:16:19:16 | access to parameter x | Assignments.cs:18:5:20:5 | {...} | +| Assignments.cs:27:10:27:23 | exit SetParamSingle | Assignments.cs:27:10:27:23 | exit SetParamSingle (normal) | +| Assignments.cs:27:10:27:23 | exit SetParamSingle (normal) | Assignments.cs:29:9:29:14 | ... = ... | +| Assignments.cs:28:5:30:5 | {...} | Assignments.cs:27:10:27:23 | enter SetParamSingle | +| Assignments.cs:29:9:29:14 | ... = ... | Assignments.cs:29:13:29:14 | 42 | +| Assignments.cs:29:9:29:15 | ...; | Assignments.cs:28:5:30:5 | {...} | +| Assignments.cs:29:13:29:14 | 42 | Assignments.cs:29:9:29:15 | ...; | +| Assignments.cs:32:10:32:22 | exit SetParamMulti | Assignments.cs:32:10:32:22 | exit SetParamMulti (normal) | +| Assignments.cs:32:10:32:22 | exit SetParamMulti (normal) | Assignments.cs:35:9:35:19 | ... = ... | +| Assignments.cs:33:5:36:5 | {...} | Assignments.cs:32:10:32:22 | enter SetParamMulti | +| Assignments.cs:34:9:34:14 | ... = ... | Assignments.cs:34:13:34:14 | 42 | +| Assignments.cs:34:9:34:15 | ...; | Assignments.cs:33:5:36:5 | {...} | +| Assignments.cs:34:13:34:14 | 42 | Assignments.cs:34:9:34:15 | ...; | +| Assignments.cs:35:9:35:19 | ... = ... | Assignments.cs:35:13:35:19 | "Hello" | +| Assignments.cs:35:9:35:20 | ...; | Assignments.cs:34:9:34:14 | ... = ... | +| Assignments.cs:35:13:35:19 | "Hello" | Assignments.cs:35:9:35:20 | ...; | +| Assignments.cs:38:10:38:11 | exit M2 | Assignments.cs:38:10:38:11 | exit M2 (normal) | +| Assignments.cs:38:10:38:11 | exit M2 (normal) | Assignments.cs:44:9:44:58 | call to method SetParamMulti | +| Assignments.cs:39:5:45:5 | {...} | Assignments.cs:38:10:38:11 | enter M2 | +| Assignments.cs:40:9:40:15 | ... ...; | Assignments.cs:39:5:45:5 | {...} | +| Assignments.cs:40:13:40:14 | Int32 x1 | Assignments.cs:40:9:40:15 | ... ...; | +| Assignments.cs:41:9:41:30 | call to method SetParamSingle | Assignments.cs:41:9:41:30 | this access | +| Assignments.cs:41:9:41:30 | this access | Assignments.cs:41:9:41:31 | ...; | +| Assignments.cs:41:9:41:31 | ...; | Assignments.cs:40:13:40:14 | Int32 x1 | +| Assignments.cs:42:9:42:36 | call to method SetParamSingle | Assignments.cs:42:28:42:35 | access to field IntField | +| Assignments.cs:42:9:42:36 | this access | Assignments.cs:42:9:42:37 | ...; | +| Assignments.cs:42:9:42:37 | ...; | Assignments.cs:41:9:41:30 | call to method SetParamSingle | +| Assignments.cs:42:28:42:35 | access to field IntField | Assignments.cs:42:28:42:35 | this access | +| Assignments.cs:42:28:42:35 | this access | Assignments.cs:42:9:42:36 | this access | +| Assignments.cs:43:9:43:55 | call to method SetParamMulti | Assignments.cs:43:44:43:54 | access to field StringField | +| Assignments.cs:43:9:43:55 | this access | Assignments.cs:43:9:43:56 | ...; | +| Assignments.cs:43:9:43:56 | ...; | Assignments.cs:42:9:42:36 | call to method SetParamSingle | +| Assignments.cs:43:34:43:37 | null | Assignments.cs:43:9:43:55 | this access | +| Assignments.cs:43:44:43:54 | access to field StringField | Assignments.cs:43:44:43:54 | this access | +| Assignments.cs:43:44:43:54 | this access | Assignments.cs:43:34:43:37 | null | +| Assignments.cs:44:9:44:58 | call to method SetParamMulti | Assignments.cs:44:47:44:57 | access to field StringField | +| Assignments.cs:44:9:44:58 | this access | Assignments.cs:44:9:44:59 | ...; | +| Assignments.cs:44:9:44:59 | ...; | Assignments.cs:43:9:43:55 | call to method SetParamMulti | +| Assignments.cs:44:27:44:34 | access to field IntField | Assignments.cs:44:27:44:34 | this access | +| Assignments.cs:44:27:44:34 | this access | Assignments.cs:44:9:44:58 | this access | +| Assignments.cs:44:37:44:40 | null | Assignments.cs:44:27:44:34 | access to field IntField | +| Assignments.cs:44:47:44:57 | access to field StringField | Assignments.cs:44:47:44:57 | this access | +| Assignments.cs:44:47:44:57 | this access | Assignments.cs:44:37:44:40 | null | | BreakInTry.cs:1:7:1:16 | call to constructor Object | BreakInTry.cs:1:7:1:16 | call to method | | BreakInTry.cs:1:7:1:16 | call to method | BreakInTry.cs:1:7:1:16 | this access | | BreakInTry.cs:1:7:1:16 | exit BreakInTry | BreakInTry.cs:1:7:1:16 | exit BreakInTry (normal) | @@ -4832,13 +5013,68 @@ postDominance | ConditionalAccess.cs:35:9:35:12 | access to property Prop | ConditionalAccess.cs:35:9:35:12 | this access | | ConditionalAccess.cs:35:9:35:12 | this access | ConditionalAccess.cs:35:9:35:25 | ...; | | ConditionalAccess.cs:35:9:35:25 | ...; | ConditionalAccess.cs:34:9:34:13 | ... = ... | -| ConditionalAccess.cs:41:26:41:38 | exit CommaJoinWith | ConditionalAccess.cs:41:26:41:38 | exit CommaJoinWith (normal) | -| ConditionalAccess.cs:41:26:41:38 | exit CommaJoinWith (normal) | ConditionalAccess.cs:41:70:41:83 | ... + ... | -| ConditionalAccess.cs:41:70:41:71 | access to parameter s1 | ConditionalAccess.cs:41:26:41:38 | enter CommaJoinWith | -| ConditionalAccess.cs:41:70:41:78 | ... + ... | ConditionalAccess.cs:41:75:41:78 | ", " | -| ConditionalAccess.cs:41:70:41:83 | ... + ... | ConditionalAccess.cs:41:82:41:83 | access to parameter s2 | -| ConditionalAccess.cs:41:75:41:78 | ", " | ConditionalAccess.cs:41:70:41:71 | access to parameter s1 | -| ConditionalAccess.cs:41:82:41:83 | access to parameter s2 | ConditionalAccess.cs:41:70:41:78 | ... + ... | +| ConditionalAccess.cs:42:9:42:11 | exit get_Item | ConditionalAccess.cs:42:9:42:11 | exit get_Item (normal) | +| ConditionalAccess.cs:42:9:42:11 | exit get_Item (normal) | ConditionalAccess.cs:42:15:42:26 | return ...; | +| ConditionalAccess.cs:42:13:42:28 | {...} | ConditionalAccess.cs:42:9:42:11 | enter get_Item | +| ConditionalAccess.cs:42:15:42:26 | return ...; | ConditionalAccess.cs:42:22:42:25 | null | +| ConditionalAccess.cs:42:22:42:25 | null | ConditionalAccess.cs:42:13:42:28 | {...} | +| ConditionalAccess.cs:43:9:43:11 | exit set_Item | ConditionalAccess.cs:43:9:43:11 | exit set_Item (normal) | +| ConditionalAccess.cs:43:9:43:11 | exit set_Item (normal) | ConditionalAccess.cs:43:13:43:15 | {...} | +| ConditionalAccess.cs:43:13:43:15 | {...} | ConditionalAccess.cs:43:9:43:11 | enter set_Item | +| ConditionalAccess.cs:46:10:46:11 | exit M9 | ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:54:12:54:29 | ... = ... | +| ConditionalAccess.cs:47:5:55:5 | {...} | ConditionalAccess.cs:46:10:46:11 | enter M9 | +| ConditionalAccess.cs:48:9:48:10 | access to parameter ca | ConditionalAccess.cs:48:9:48:26 | ...; | +| ConditionalAccess.cs:48:9:48:20 | access to field IntField | ConditionalAccess.cs:48:24:48:25 | 42 | +| ConditionalAccess.cs:48:9:48:26 | ...; | ConditionalAccess.cs:47:5:55:5 | {...} | +| ConditionalAccess.cs:48:12:48:25 | ... = ... | ConditionalAccess.cs:48:9:48:20 | access to field IntField | +| ConditionalAccess.cs:49:9:49:10 | access to parameter ca | ConditionalAccess.cs:49:9:49:33 | ...; | +| ConditionalAccess.cs:49:9:49:22 | access to property StringProp | ConditionalAccess.cs:49:26:49:32 | "Hello" | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:48:9:48:10 | access to parameter ca | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:48:12:48:25 | ... = ... | +| ConditionalAccess.cs:49:12:49:32 | ... = ... | ConditionalAccess.cs:49:9:49:22 | access to property StringProp | +| ConditionalAccess.cs:50:9:50:10 | access to parameter ca | ConditionalAccess.cs:50:9:50:24 | ...; | +| ConditionalAccess.cs:50:9:50:14 | access to indexer | ConditionalAccess.cs:50:18:50:23 | "Set0" | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:49:9:49:10 | access to parameter ca | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:49:12:49:32 | ... = ... | +| ConditionalAccess.cs:50:12:50:23 | ... = ... | ConditionalAccess.cs:50:9:50:14 | access to indexer | +| ConditionalAccess.cs:50:18:50:23 | "Set0" | ConditionalAccess.cs:50:13:50:13 | 0 | +| ConditionalAccess.cs:51:9:51:10 | access to parameter ca | ConditionalAccess.cs:51:9:51:32 | ...; | +| ConditionalAccess.cs:51:9:51:26 | access to field IntField | ConditionalAccess.cs:51:30:51:31 | 84 | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:50:9:50:10 | access to parameter ca | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:50:12:50:23 | ... = ... | +| ConditionalAccess.cs:51:18:51:31 | ... = ... | ConditionalAccess.cs:51:9:51:26 | access to field IntField | +| ConditionalAccess.cs:52:9:52:10 | access to parameter ca | ConditionalAccess.cs:52:9:52:39 | ...; | +| ConditionalAccess.cs:52:9:52:28 | access to property StringProp | ConditionalAccess.cs:52:32:52:38 | "World" | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:51:9:51:10 | access to parameter ca | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:51:9:51:16 | access to property Prop | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:51:18:51:31 | ... = ... | +| ConditionalAccess.cs:52:18:52:38 | ... = ... | ConditionalAccess.cs:52:9:52:28 | access to property StringProp | +| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:26 | ...; | +| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:53:12:53:25 | ... - ... | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:52:9:52:10 | access to parameter ca | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:52:9:52:16 | access to property Prop | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:52:18:52:38 | ... = ... | +| ConditionalAccess.cs:53:12:53:25 | ... - ... | ConditionalAccess.cs:53:25:53:25 | 1 | +| ConditionalAccess.cs:53:12:53:25 | ... = ... | ConditionalAccess.cs:53:9:53:20 | access to field IntField | +| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | +| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:53:9:53:20 | access to field IntField | +| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:30 | ...; | +| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:54:12:54:29 | ... + ... | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:53:12:53:25 | ... = ... | +| ConditionalAccess.cs:54:12:54:29 | ... + ... | ConditionalAccess.cs:54:27:54:29 | "!" | +| ConditionalAccess.cs:54:12:54:29 | ... = ... | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | +| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | +| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | +| ConditionalAccess.cs:60:26:60:38 | exit CommaJoinWith | ConditionalAccess.cs:60:26:60:38 | exit CommaJoinWith (normal) | +| ConditionalAccess.cs:60:26:60:38 | exit CommaJoinWith (normal) | ConditionalAccess.cs:60:70:60:83 | ... + ... | +| ConditionalAccess.cs:60:70:60:71 | access to parameter s1 | ConditionalAccess.cs:60:26:60:38 | enter CommaJoinWith | +| ConditionalAccess.cs:60:70:60:78 | ... + ... | ConditionalAccess.cs:60:75:60:78 | ", " | +| ConditionalAccess.cs:60:70:60:83 | ... + ... | ConditionalAccess.cs:60:82:60:83 | access to parameter s2 | +| ConditionalAccess.cs:60:75:60:78 | ", " | ConditionalAccess.cs:60:70:60:71 | access to parameter s1 | +| ConditionalAccess.cs:60:82:60:83 | access to parameter s2 | ConditionalAccess.cs:60:70:60:78 | ... + ... | | Conditions.cs:1:7:1:16 | call to constructor Object | Conditions.cs:1:7:1:16 | call to method | | Conditions.cs:1:7:1:16 | call to method | Conditions.cs:1:7:1:16 | this access | | Conditions.cs:1:7:1:16 | exit Conditions | Conditions.cs:1:7:1:16 | exit Conditions (normal) | @@ -5594,11 +5830,13 @@ postDominance | Finally.cs:209:21:209:22 | access to parameter b3 | Finally.cs:209:17:209:47 | if (...) ... | | Finally.cs:209:25:209:47 | throw ...; | Finally.cs:209:31:209:46 | object creation of type ExceptionC | | 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:22 | access to field Field | Finally.cs:211:26:211:28 | "0" | +| Finally.cs:211:13:211:28 | ... = ... | Finally.cs:211:13:211:22 | access to field Field | | 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: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:18 | access to field Field | Finally.cs:213:22:213:24 | "1" | +| Finally.cs:213:9:213:24 | ... = ... | Finally.cs:213:9:213:18 | access to field Field | | Finally.cs:213:9:213:25 | ...; | Finally.cs:211:13:211:28 | ... = ... | | Finally.cs:213:22:213:24 | "1" | Finally.cs:213:9:213:12 | this access | | Finally.cs:216:10:216:12 | exit M11 | Finally.cs:216:10:216:12 | exit M11 (normal) | @@ -5729,8 +5967,9 @@ postDominance | Initializers.cs:3:7:3:18 | exit Initializers | Initializers.cs:3:7:3:18 | exit Initializers (normal) | | Initializers.cs:3:7:3:18 | exit Initializers (normal) | Initializers.cs:3:7:3:18 | {...} | | Initializers.cs:3:7:3:18 | {...} | Initializers.cs:3:7:3:18 | enter Initializers | +| Initializers.cs:5:9:5:9 | access to field F | Initializers.cs:5:13:5:17 | ... + ... | | Initializers.cs:5:9:5:9 | this access | Initializers.cs:3:7:3:18 | enter | -| Initializers.cs:5:9:5:17 | ... = ... | Initializers.cs:5:13:5:17 | ... + ... | +| Initializers.cs:5:9:5:17 | ... = ... | Initializers.cs:5:9:5:9 | access to field F | | Initializers.cs:5:13:5:13 | access to field H | Initializers.cs:5:9:5:9 | this access | | Initializers.cs:5:13:5:17 | ... + ... | Initializers.cs:5:17:5:17 | 1 | | Initializers.cs:5:17:5:17 | 1 | Initializers.cs:5:13:5:13 | access to field H | @@ -5760,7 +5999,8 @@ postDominance | Initializers.cs:14:17:14:53 | object creation of type Initializers | Initializers.cs:14:34:14:35 | "" | | Initializers.cs:14:34:14:35 | "" | Initializers.cs:14:9:14:54 | ... ...; | | Initializers.cs:14:38:14:53 | { ..., ... } | Initializers.cs:14:47:14:51 | ... = ... | -| Initializers.cs:14:40:14:44 | ... = ... | Initializers.cs:14:44:14:44 | 0 | +| Initializers.cs:14:40:14:40 | access to field F | Initializers.cs:14:44:14:44 | 0 | +| Initializers.cs:14:40:14:44 | ... = ... | Initializers.cs:14:40:14:40 | access to field F | | Initializers.cs:14:44:14:44 | 0 | Initializers.cs:14:17:14:53 | object creation of type Initializers | | Initializers.cs:14:47:14:47 | access to property G | Initializers.cs:14:51:14:51 | 1 | | Initializers.cs:14:47:14:51 | ... = ... | Initializers.cs:14:47:14:47 | access to property G | @@ -5773,9 +6013,10 @@ postDominance | Initializers.cs:15:39:15:39 | access to local variable i | Initializers.cs:15:18:15:63 | array creation of type Initializers[] | | Initializers.cs:15:42:15:61 | object creation of type Initializers | Initializers.cs:15:59:15:60 | "" | | Initializers.cs:15:59:15:60 | "" | Initializers.cs:15:39:15:39 | access to local variable i | +| Initializers.cs:18:16:18:16 | access to field H | Initializers.cs:18:20:18:20 | 1 | | Initializers.cs:18:16:18:16 | exit H | Initializers.cs:18:16:18:16 | exit H (normal) | | Initializers.cs:18:16:18:16 | exit H (normal) | Initializers.cs:18:16:18:20 | ... = ... | -| Initializers.cs:18:16:18:20 | ... = ... | Initializers.cs:18:20:18:20 | 1 | +| Initializers.cs:18:16:18:20 | ... = ... | Initializers.cs:18:16:18:16 | access to field H | | Initializers.cs:18:20:18:20 | 1 | Initializers.cs:18:16:18:16 | enter H | | Initializers.cs:20:11:20:23 | call to constructor Object | Initializers.cs:20:11:20:23 | call to method | | Initializers.cs:20:11:20:23 | call to method | Initializers.cs:20:11:20:23 | this access | @@ -5785,16 +6026,19 @@ postDominance | Initializers.cs:20:11:20:23 | exit NoConstructor (normal) | Initializers.cs:20:11:20:23 | {...} | | Initializers.cs:20:11:20:23 | this access | Initializers.cs:20:11:20:23 | enter NoConstructor | | Initializers.cs:20:11:20:23 | {...} | Initializers.cs:20:11:20:23 | call to constructor Object | +| Initializers.cs:22:23:22:23 | access to field F | Initializers.cs:22:27:22:27 | 0 | | Initializers.cs:22:23:22:23 | this access | Initializers.cs:20:11:20:23 | enter | -| Initializers.cs:22:23:22:27 | ... = ... | Initializers.cs:22:27:22:27 | 0 | +| Initializers.cs:22:23:22:27 | ... = ... | Initializers.cs:22:23:22:23 | access to field F | | Initializers.cs:22:27:22:27 | 0 | Initializers.cs:22:23:22:23 | this access | +| Initializers.cs:23:23:23:23 | access to field G | Initializers.cs:23:27:23:27 | 1 | | Initializers.cs:23:23:23:23 | this access | Initializers.cs:22:23:22:27 | ... = ... | -| Initializers.cs:23:23:23:27 | ... = ... | Initializers.cs:23:27:23:27 | 1 | +| Initializers.cs:23:23:23:27 | ... = ... | Initializers.cs:23:23:23:23 | access to field G | | Initializers.cs:23:27:23:27 | 1 | Initializers.cs:23:23:23:23 | this access | | Initializers.cs:26:11:26:13 | exit | Initializers.cs:26:11:26:13 | exit (normal) | | Initializers.cs:26:11:26:13 | exit (normal) | Initializers.cs:28:13:28:17 | ... = ... | +| Initializers.cs:28:13:28:13 | access to field H | Initializers.cs:28:17:28:17 | 2 | | Initializers.cs:28:13:28:13 | this access | Initializers.cs:26:11:26:13 | enter | -| Initializers.cs:28:13:28:17 | ... = ... | Initializers.cs:28:17:28:17 | 2 | +| Initializers.cs:28:13:28:17 | ... = ... | Initializers.cs:28:13:28:13 | access to field H | | Initializers.cs:28:17:28:17 | 2 | Initializers.cs:28:13:28:13 | this access | | Initializers.cs:31:9:31:11 | call to method | Initializers.cs:31:9:31:11 | this access | | Initializers.cs:31:9:31:11 | exit Sub | Initializers.cs:31:9:31:11 | exit Sub (normal) | @@ -5802,16 +6046,18 @@ postDominance | Initializers.cs:31:9:31:11 | this access | Initializers.cs:31:9:31:11 | enter Sub | | Initializers.cs:31:17:31:20 | call to constructor NoConstructor | Initializers.cs:31:9:31:11 | call to method | | Initializers.cs:31:24:31:33 | {...} | Initializers.cs:31:17:31:20 | call to constructor NoConstructor | +| Initializers.cs:31:26:31:26 | access to field I | Initializers.cs:31:30:31:30 | 3 | | Initializers.cs:31:26:31:26 | this access | Initializers.cs:31:26:31:31 | ...; | -| Initializers.cs:31:26:31:30 | ... = ... | Initializers.cs:31:30:31:30 | 3 | +| Initializers.cs:31:26:31:30 | ... = ... | Initializers.cs:31:26:31:26 | access to field I | | Initializers.cs:31:26:31:31 | ...; | Initializers.cs:31:24:31:33 | {...} | | Initializers.cs:31:30:31:30 | 3 | Initializers.cs:31:26:31:26 | this access | | Initializers.cs:33:9:33:11 | exit Sub | Initializers.cs:33:9:33:11 | exit Sub (normal) | | Initializers.cs:33:9:33:11 | exit Sub (normal) | Initializers.cs:33:31:33:35 | ... = ... | | Initializers.cs:33:22:33:25 | call to constructor Sub | Initializers.cs:33:9:33:11 | enter Sub | | Initializers.cs:33:29:33:38 | {...} | Initializers.cs:33:22:33:25 | call to constructor Sub | +| Initializers.cs:33:31:33:31 | access to field I | Initializers.cs:33:35:33:35 | access to parameter i | | Initializers.cs:33:31:33:31 | this access | Initializers.cs:33:31:33:36 | ...; | -| Initializers.cs:33:31:33:35 | ... = ... | Initializers.cs:33:35:33:35 | access to parameter i | +| Initializers.cs:33:31:33:35 | ... = ... | Initializers.cs:33:31:33:31 | access to field I | | Initializers.cs:33:31:33:36 | ...; | Initializers.cs:33:29:33:38 | {...} | | Initializers.cs:33:35:33:35 | access to parameter i | Initializers.cs:33:31:33:31 | this access | | Initializers.cs:35:9:35:11 | call to constructor NoConstructor | Initializers.cs:35:9:35:11 | call to method | @@ -5820,8 +6066,9 @@ postDominance | Initializers.cs:35:9:35:11 | exit Sub (normal) | Initializers.cs:35:29:35:37 | ... = ... | | Initializers.cs:35:9:35:11 | this access | Initializers.cs:35:9:35:11 | enter Sub | | Initializers.cs:35:27:35:40 | {...} | Initializers.cs:35:9:35:11 | call to constructor NoConstructor | +| Initializers.cs:35:29:35:29 | access to field I | Initializers.cs:35:33:35:37 | ... + ... | | Initializers.cs:35:29:35:29 | this access | Initializers.cs:35:29:35:38 | ...; | -| Initializers.cs:35:29:35:37 | ... = ... | Initializers.cs:35:33:35:37 | ... + ... | +| Initializers.cs:35:29:35:37 | ... = ... | Initializers.cs:35:29:35:29 | access to field I | | Initializers.cs:35:29:35:38 | ...; | Initializers.cs:35:27:35:40 | {...} | | Initializers.cs:35:33:35:33 | access to parameter i | Initializers.cs:35:29:35:29 | this access | | Initializers.cs:35:33:35:37 | ... + ... | Initializers.cs:35:37:35:37 | access to parameter j | @@ -5863,7 +6110,8 @@ postDominance | Initializers.cs:57:13:65:9 | Compound compound = ... | Initializers.cs:58:9:65:9 | { ..., ... } | | Initializers.cs:57:24:65:9 | object creation of type Compound | Initializers.cs:57:9:65:10 | ... ...; | | Initializers.cs:58:9:65:9 | { ..., ... } | Initializers.cs:64:13:64:63 | ... = ... | -| Initializers.cs:59:13:59:76 | ... = ... | Initializers.cs:59:31:59:76 | { ..., ... } | +| Initializers.cs:59:13:59:27 | access to field DictionaryField | Initializers.cs:59:31:59:76 | { ..., ... } | +| Initializers.cs:59:13:59:76 | ... = ... | Initializers.cs:59:13:59:27 | access to field DictionaryField | | Initializers.cs:59:31:59:76 | { ..., ... } | Initializers.cs:59:60:59:74 | ... = ... | | Initializers.cs:59:33:59:35 | access to indexer | Initializers.cs:59:39:59:44 | "Zero" | | Initializers.cs:59:33:59:44 | ... = ... | Initializers.cs:59:33:59:35 | access to indexer | @@ -5896,23 +6144,29 @@ postDominance | Initializers.cs:60:65:60:69 | ... + ... | Initializers.cs:60:69:60:69 | 1 | | Initializers.cs:60:69:60:69 | 1 | Initializers.cs:60:65:60:65 | access to parameter i | | Initializers.cs:60:74:60:78 | "One" | Initializers.cs:60:65:60:69 | ... + ... | -| Initializers.cs:61:13:61:58 | ... = ... | Initializers.cs:61:26:61:58 | { ..., ... } | +| Initializers.cs:61:13:61:22 | access to field ArrayField | Initializers.cs:61:26:61:58 | { ..., ... } | +| Initializers.cs:61:13:61:58 | ... = ... | Initializers.cs:61:13:61:22 | access to field ArrayField | | Initializers.cs:61:26:61:58 | { ..., ... } | Initializers.cs:61:42:61:56 | ... = ... | -| Initializers.cs:61:28:61:39 | ... = ... | Initializers.cs:61:34:61:39 | "Zero" | +| Initializers.cs:61:28:61:30 | access to array element | Initializers.cs:61:34:61:39 | "Zero" | +| Initializers.cs:61:28:61:39 | ... = ... | Initializers.cs:61:28:61:30 | access to array element | | Initializers.cs:61:29:61:29 | 0 | Initializers.cs:60:13:60:80 | ... = ... | | Initializers.cs:61:34:61:39 | "Zero" | Initializers.cs:61:29:61:29 | 0 | -| Initializers.cs:61:42:61:56 | ... = ... | Initializers.cs:61:52:61:56 | "One" | +| Initializers.cs:61:42:61:48 | access to array element | Initializers.cs:61:52:61:56 | "One" | +| Initializers.cs:61:42:61:56 | ... = ... | Initializers.cs:61:42:61:48 | access to array element | | Initializers.cs:61:43:61:43 | access to parameter i | Initializers.cs:61:28:61:39 | ... = ... | | Initializers.cs:61:43:61:47 | ... + ... | Initializers.cs:61:47:61:47 | 1 | | Initializers.cs:61:47:61:47 | 1 | Initializers.cs:61:43:61:43 | access to parameter i | | Initializers.cs:61:52:61:56 | "One" | Initializers.cs:61:43:61:47 | ... + ... | -| Initializers.cs:62:13:62:60 | ... = ... | Initializers.cs:62:27:62:60 | { ..., ... } | +| Initializers.cs:62:13:62:23 | access to field ArrayField2 | Initializers.cs:62:27:62:60 | { ..., ... } | +| Initializers.cs:62:13:62:60 | ... = ... | Initializers.cs:62:13:62:23 | access to field ArrayField2 | | Initializers.cs:62:27:62:60 | { ..., ... } | Initializers.cs:62:43:62:58 | ... = ... | -| Initializers.cs:62:29:62:40 | ... = ... | Initializers.cs:62:38:62:40 | "i" | +| Initializers.cs:62:29:62:34 | access to array element | Initializers.cs:62:38:62:40 | "i" | +| Initializers.cs:62:29:62:40 | ... = ... | Initializers.cs:62:29:62:34 | access to array element | | Initializers.cs:62:30:62:30 | 0 | Initializers.cs:61:13:61:58 | ... = ... | | Initializers.cs:62:33:62:33 | 1 | Initializers.cs:62:30:62:30 | 0 | | Initializers.cs:62:38:62:40 | "i" | Initializers.cs:62:33:62:33 | 1 | -| Initializers.cs:62:43:62:58 | ... = ... | Initializers.cs:62:56:62:58 | "1" | +| Initializers.cs:62:43:62:52 | access to array element | Initializers.cs:62:56:62:58 | "1" | +| Initializers.cs:62:43:62:58 | ... = ... | Initializers.cs:62:43:62:52 | access to array element | | Initializers.cs:62:44:62:44 | 1 | Initializers.cs:62:29:62:40 | ... = ... | | Initializers.cs:62:47:62:47 | access to parameter i | Initializers.cs:62:44:62:44 | 1 | | Initializers.cs:62:47:62:51 | ... + ... | Initializers.cs:62:51:62:51 | 0 | @@ -5921,10 +6175,12 @@ postDominance | Initializers.cs:63:13:63:25 | access to property ArrayProperty | Initializers.cs:63:29:63:60 | { ..., ... } | | Initializers.cs:63:13:63:60 | ... = ... | Initializers.cs:63:13:63:25 | access to property ArrayProperty | | Initializers.cs:63:29:63:60 | { ..., ... } | Initializers.cs:63:44:63:58 | ... = ... | -| Initializers.cs:63:31:63:41 | ... = ... | Initializers.cs:63:37:63:41 | "One" | +| Initializers.cs:63:31:63:33 | access to array element | Initializers.cs:63:37:63:41 | "One" | +| Initializers.cs:63:31:63:41 | ... = ... | Initializers.cs:63:31:63:33 | access to array element | | Initializers.cs:63:32:63:32 | 1 | Initializers.cs:62:13:62:60 | ... = ... | | Initializers.cs:63:37:63:41 | "One" | Initializers.cs:63:32:63:32 | 1 | -| Initializers.cs:63:44:63:58 | ... = ... | Initializers.cs:63:54:63:58 | "Two" | +| Initializers.cs:63:44:63:50 | access to array element | Initializers.cs:63:54:63:58 | "Two" | +| Initializers.cs:63:44:63:58 | ... = ... | Initializers.cs:63:44:63:50 | access to array element | | Initializers.cs:63:45:63:45 | access to parameter i | Initializers.cs:63:31:63:41 | ... = ... | | Initializers.cs:63:45:63:49 | ... + ... | Initializers.cs:63:49:63:49 | 2 | | Initializers.cs:63:49:63:49 | 2 | Initializers.cs:63:45:63:45 | access to parameter i | @@ -5932,11 +6188,13 @@ postDominance | Initializers.cs:64:13:64:26 | access to property ArrayProperty2 | Initializers.cs:64:30:64:63 | { ..., ... } | | Initializers.cs:64:13:64:63 | ... = ... | Initializers.cs:64:13:64:26 | access to property ArrayProperty2 | | Initializers.cs:64:30:64:63 | { ..., ... } | Initializers.cs:64:46:64:61 | ... = ... | -| Initializers.cs:64:32:64:43 | ... = ... | Initializers.cs:64:41:64:43 | "i" | +| Initializers.cs:64:32:64:37 | access to array element | Initializers.cs:64:41:64:43 | "i" | +| Initializers.cs:64:32:64:43 | ... = ... | Initializers.cs:64:32:64:37 | access to array element | | Initializers.cs:64:33:64:33 | 0 | Initializers.cs:63:13:63:60 | ... = ... | | Initializers.cs:64:36:64:36 | 1 | Initializers.cs:64:33:64:33 | 0 | | Initializers.cs:64:41:64:43 | "i" | Initializers.cs:64:36:64:36 | 1 | -| Initializers.cs:64:46:64:61 | ... = ... | Initializers.cs:64:59:64:61 | "1" | +| Initializers.cs:64:46:64:55 | access to array element | Initializers.cs:64:59:64:61 | "1" | +| Initializers.cs:64:46:64:61 | ... = ... | Initializers.cs:64:46:64:55 | access to array element | | Initializers.cs:64:47:64:47 | 1 | Initializers.cs:64:32:64:43 | ... = ... | | Initializers.cs:64:50:64:50 | access to parameter i | Initializers.cs:64:47:64:47 | 1 | | Initializers.cs:64:50:64:54 | ... + ... | Initializers.cs:64:54:64:54 | 0 | @@ -6162,7 +6420,8 @@ postDominance | MultiImplementationA.cs:11:7:11:8 | exit | MultiImplementationA.cs:11:7:11:8 | exit (normal) | | MultiImplementationA.cs:11:7:11:8 | exit (normal) | MultiImplementationA.cs:24:32:24:34 | ... = ... | | MultiImplementationA.cs:11:7:11:8 | exit (normal) | MultiImplementationB.cs:22:32:22:34 | ... = ... | -| MultiImplementationA.cs:13:16:13:20 | ... = ... | MultiImplementationA.cs:13:20:13:20 | 0 | +| MultiImplementationA.cs:13:16:13:16 | access to field F | MultiImplementationA.cs:13:20:13:20 | 0 | +| MultiImplementationA.cs:13:16:13:20 | ... = ... | MultiImplementationA.cs:13:16:13:16 | access to field F | | MultiImplementationA.cs:13:20:13:20 | 0 | MultiImplementationA.cs:13:16:13:16 | this access | | MultiImplementationA.cs:14:31:14:31 | access to parameter i | MultiImplementationA.cs:14:31:14:31 | enter get_Item | | MultiImplementationA.cs:14:31:14:31 | exit get_Item (abnormal) | MultiImplementationB.cs:12:31:12:40 | throw ... | @@ -6188,8 +6447,9 @@ postDominance | MultiImplementationA.cs:20:12:20:13 | exit C2 (normal) | MultiImplementationA.cs:20:24:20:28 | ... = ... | | MultiImplementationA.cs:20:12:20:13 | this access | MultiImplementationA.cs:20:12:20:13 | enter C2 | | MultiImplementationA.cs:20:22:20:31 | {...} | MultiImplementationA.cs:20:12:20:13 | call to constructor Object | +| MultiImplementationA.cs:20:24:20:24 | access to field F | MultiImplementationA.cs:20:28:20:28 | access to parameter i | | MultiImplementationA.cs:20:24:20:24 | this access | MultiImplementationA.cs:20:24:20:29 | ...; | -| MultiImplementationA.cs:20:24:20:28 | ... = ... | MultiImplementationA.cs:20:28:20:28 | access to parameter i | +| MultiImplementationA.cs:20:24:20:28 | ... = ... | MultiImplementationA.cs:20:24:20:24 | access to field F | | MultiImplementationA.cs:20:24:20:29 | ...; | MultiImplementationA.cs:20:22:20:31 | {...} | | MultiImplementationA.cs:20:28:20:28 | access to parameter i | MultiImplementationA.cs:20:24:20:24 | this access | | MultiImplementationA.cs:21:12:21:13 | exit C2 | MultiImplementationA.cs:21:12:21:13 | exit C2 (normal) | @@ -6241,7 +6501,8 @@ postDominance | MultiImplementationB.cs:4:34:4:34 | 1 | MultiImplementationB.cs:4:25:4:37 | {...} | | MultiImplementationB.cs:4:43:4:45 | {...} | MultiImplementationA.cs:7:41:7:43 | enter set_P2 | | MultiImplementationB.cs:5:23:5:23 | 2 | MultiImplementationA.cs:8:16:8:16 | enter M | -| MultiImplementationB.cs:11:16:11:20 | ... = ... | MultiImplementationB.cs:11:20:11:20 | 1 | +| MultiImplementationB.cs:11:16:11:16 | access to field F | MultiImplementationB.cs:11:20:11:20 | 1 | +| MultiImplementationB.cs:11:16:11:20 | ... = ... | MultiImplementationB.cs:11:16:11:16 | access to field F | | MultiImplementationB.cs:11:20:11:20 | 1 | MultiImplementationB.cs:11:16:11:16 | this access | | MultiImplementationB.cs:12:31:12:40 | throw ... | MultiImplementationB.cs:12:37:12:40 | null | | MultiImplementationB.cs:13:42:13:52 | throw ...; | MultiImplementationB.cs:13:48:13:51 | null | @@ -6340,8 +6601,9 @@ postDominance | PartialImplementationA.cs:3:12:3:18 | exit Partial (normal) | PartialImplementationA.cs:3:27:3:29 | {...} | | PartialImplementationA.cs:3:12:3:18 | this access | PartialImplementationA.cs:3:12:3:18 | enter Partial | | PartialImplementationA.cs:3:27:3:29 | {...} | PartialImplementationA.cs:3:12:3:18 | call to constructor Object | +| PartialImplementationB.cs:3:16:3:16 | access to field F | PartialImplementationB.cs:3:20:3:20 | 0 | | PartialImplementationB.cs:3:16:3:16 | this access | PartialImplementationA.cs:1:15:1:21 | enter | -| PartialImplementationB.cs:3:16:3:20 | ... = ... | PartialImplementationB.cs:3:20:3:20 | 0 | +| PartialImplementationB.cs:3:16:3:20 | ... = ... | PartialImplementationB.cs:3:16:3:16 | access to field F | | PartialImplementationB.cs:3:20:3:20 | 0 | PartialImplementationB.cs:3:16:3:16 | this access | | PartialImplementationB.cs:4:12:4:18 | call to constructor Object | PartialImplementationB.cs:4:12:4:18 | call to method | | PartialImplementationB.cs:4:12:4:18 | call to method | PartialImplementationB.cs:4:12:4:18 | this access | @@ -7233,8 +7495,9 @@ postDominance | cflow.cs:127:62:127:64 | exit set_Prop | cflow.cs:127:62:127:64 | exit set_Prop (normal) | | cflow.cs:127:62:127:64 | exit set_Prop (normal) | cflow.cs:127:68:127:80 | ... = ... | | cflow.cs:127:66:127:83 | {...} | cflow.cs:127:62:127:64 | enter set_Prop | +| cflow.cs:127:68:127:72 | access to field Field | cflow.cs:127:76:127:80 | access to parameter value | | cflow.cs:127:68:127:72 | this access | cflow.cs:127:68:127:81 | ...; | -| cflow.cs:127:68:127:80 | ... = ... | cflow.cs:127:76:127:80 | access to parameter value | +| cflow.cs:127:68:127:80 | ... = ... | cflow.cs:127:68:127:72 | access to field Field | | cflow.cs:127:68:127:81 | ...; | cflow.cs:127:66:127:83 | {...} | | cflow.cs:127:76:127:80 | access to parameter value | cflow.cs:127:68:127:72 | this access | | cflow.cs:129:5:129:15 | call to constructor Object | cflow.cs:129:5:129:15 | call to method | @@ -7243,8 +7506,9 @@ postDominance | cflow.cs:129:5:129:15 | exit ControlFlow (normal) | cflow.cs:131:9:131:17 | ... = ... | | cflow.cs:129:5:129:15 | this access | cflow.cs:129:5:129:15 | enter ControlFlow | | cflow.cs:130:5:132:5 | {...} | cflow.cs:129:5:129:15 | call to constructor Object | +| cflow.cs:131:9:131:13 | access to field Field | cflow.cs:131:17:131:17 | access to parameter s | | cflow.cs:131:9:131:13 | this access | cflow.cs:131:9:131:18 | ...; | -| cflow.cs:131:9:131:17 | ... = ... | cflow.cs:131:17:131:17 | access to parameter s | +| cflow.cs:131:9:131:17 | ... = ... | cflow.cs:131:9:131:13 | access to field Field | | cflow.cs:131:9:131:18 | ...; | cflow.cs:130:5:132:5 | {...} | | cflow.cs:131:17:131:17 | access to parameter s | cflow.cs:131:9:131:13 | this access | | cflow.cs:134:5:134:15 | exit ControlFlow | cflow.cs:134:5:134:15 | exit ControlFlow (normal) | @@ -7456,10 +7720,11 @@ postDominance | cflow.cs:210:9:221:36 | do ... while (...); | cflow.cs:209:5:222:5 | {...} | | cflow.cs:211:9:221:9 | {...} | cflow.cs:210:9:221:36 | do ... while (...); | | cflow.cs:212:13:212:17 | access to field Field | cflow.cs:212:13:212:17 | this access | +| cflow.cs:212:13:212:17 | access to field Field | cflow.cs:212:13:212:24 | ... + ... | | cflow.cs:212:13:212:17 | this access | cflow.cs:212:13:212:17 | this access | | cflow.cs:212:13:212:17 | this access | cflow.cs:212:13:212:25 | ...; | | cflow.cs:212:13:212:24 | ... + ... | cflow.cs:212:22:212:24 | "a" | -| cflow.cs:212:13:212:24 | ... = ... | cflow.cs:212:13:212:24 | ... + ... | +| cflow.cs:212:13:212:24 | ... = ... | cflow.cs:212:13:212:17 | access to field Field | | cflow.cs:212:13:212:25 | ...; | cflow.cs:211:9:221:9 | {...} | | cflow.cs:212:22:212:24 | "a" | cflow.cs:212:13:212:17 | access to field Field | | cflow.cs:213:13:216:13 | if (...) ... | cflow.cs:212:13:212:24 | ... = ... | @@ -7491,10 +7756,11 @@ postDominance | cflow.cs:226:62:226:63 | 10 | cflow.cs:226:57:226:59 | "a" | | cflow.cs:227:9:237:9 | {...} | cflow.cs:226:22:226:22 | String x | | cflow.cs:228:13:228:17 | access to field Field | cflow.cs:228:13:228:17 | this access | +| cflow.cs:228:13:228:17 | access to field Field | cflow.cs:228:13:228:22 | ... + ... | | cflow.cs:228:13:228:17 | this access | cflow.cs:228:13:228:17 | this access | | cflow.cs:228:13:228:17 | this access | cflow.cs:228:13:228:23 | ...; | | cflow.cs:228:13:228:22 | ... + ... | cflow.cs:228:22:228:22 | access to local variable x | -| cflow.cs:228:13:228:22 | ... = ... | cflow.cs:228:13:228:22 | ... + ... | +| cflow.cs:228:13:228:22 | ... = ... | cflow.cs:228:13:228:17 | access to field Field | | cflow.cs:228:13:228:23 | ...; | cflow.cs:227:9:237:9 | {...} | | cflow.cs:228:22:228:22 | access to local variable x | cflow.cs:228:13:228:17 | access to field Field | | cflow.cs:229:13:232:13 | if (...) ... | cflow.cs:228:13:228:22 | ... = ... | @@ -8629,6 +8895,9 @@ blockDominance | Assignments.cs:3:10:3:10 | enter M | Assignments.cs:3:10:3:10 | enter M | | Assignments.cs:14:18:14:35 | enter (...) => ... | Assignments.cs:14:18:14:35 | enter (...) => ... | | Assignments.cs:17:40:17:40 | enter + | Assignments.cs:17:40:17:40 | enter + | +| Assignments.cs:27:10:27:23 | enter SetParamSingle | Assignments.cs:27:10:27:23 | enter SetParamSingle | +| Assignments.cs:32:10:32:22 | enter SetParamMulti | Assignments.cs:32:10:32:22 | enter SetParamMulti | +| Assignments.cs:38:10:38:11 | enter M2 | Assignments.cs:38:10:38:11 | enter M2 | | BreakInTry.cs:1:7:1:16 | enter BreakInTry | BreakInTry.cs:1:7:1:16 | enter BreakInTry | | BreakInTry.cs:3:10:3:11 | enter M1 | BreakInTry.cs:3:10:3:11 | enter M1 | | BreakInTry.cs:3:10:3:11 | enter M1 | BreakInTry.cs:3:10:3:11 | exit M1 (normal) | @@ -8805,7 +9074,127 @@ blockDominance | ConditionalAccess.cs:32:10:32:11 | enter M8 | ConditionalAccess.cs:35:9:35:24 | call to method Out | | ConditionalAccess.cs:32:10:32:11 | exit M8 (normal) | ConditionalAccess.cs:32:10:32:11 | exit M8 (normal) | | ConditionalAccess.cs:35:9:35:24 | call to method Out | ConditionalAccess.cs:35:9:35:24 | call to method Out | -| ConditionalAccess.cs:41:26:41:38 | enter CommaJoinWith | ConditionalAccess.cs:41:26:41:38 | enter CommaJoinWith | +| ConditionalAccess.cs:42:9:42:11 | enter get_Item | ConditionalAccess.cs:42:9:42:11 | enter get_Item | +| ConditionalAccess.cs:43:9:43:11 | enter set_Item | ConditionalAccess.cs:43:9:43:11 | enter set_Item | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:46:10:46:11 | enter M9 | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:48:24:48:25 | 42 | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:49:9:49:33 | ...; | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:49:26:49:32 | "Hello" | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:50:9:50:24 | ...; | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:50:13:50:13 | 0 | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:51:9:51:16 | access to property Prop | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:51:9:51:32 | ...; | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:51:30:51:31 | 84 | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:52:9:52:16 | access to property Prop | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:52:9:52:39 | ...; | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:52:32:52:38 | "World" | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:53:9:53:20 | access to field IntField | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:53:9:53:26 | ...; | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:53:25:53:25 | 1 | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:54:9:54:30 | ...; | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:54:27:54:29 | "!" | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | +| ConditionalAccess.cs:48:24:48:25 | 42 | ConditionalAccess.cs:48:24:48:25 | 42 | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:49:9:49:33 | ...; | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:49:26:49:32 | "Hello" | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:50:9:50:24 | ...; | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:50:13:50:13 | 0 | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:51:9:51:16 | access to property Prop | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:51:9:51:32 | ...; | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:51:30:51:31 | 84 | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:52:9:52:16 | access to property Prop | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:52:9:52:39 | ...; | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:52:32:52:38 | "World" | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:53:9:53:20 | access to field IntField | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:53:9:53:26 | ...; | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:53:25:53:25 | 1 | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:54:9:54:30 | ...; | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:54:27:54:29 | "!" | +| ConditionalAccess.cs:49:26:49:32 | "Hello" | ConditionalAccess.cs:49:26:49:32 | "Hello" | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:50:9:50:24 | ...; | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:50:13:50:13 | 0 | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:51:9:51:16 | access to property Prop | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:51:9:51:32 | ...; | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:51:30:51:31 | 84 | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:52:9:52:16 | access to property Prop | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:52:9:52:39 | ...; | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:52:32:52:38 | "World" | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:53:9:53:20 | access to field IntField | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:53:9:53:26 | ...; | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:53:25:53:25 | 1 | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:54:9:54:30 | ...; | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:54:27:54:29 | "!" | +| ConditionalAccess.cs:50:13:50:13 | 0 | ConditionalAccess.cs:50:13:50:13 | 0 | +| ConditionalAccess.cs:51:9:51:16 | access to property Prop | ConditionalAccess.cs:51:9:51:16 | access to property Prop | +| ConditionalAccess.cs:51:9:51:16 | access to property Prop | ConditionalAccess.cs:51:30:51:31 | 84 | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:51:9:51:16 | access to property Prop | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:51:9:51:32 | ...; | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:51:30:51:31 | 84 | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:52:9:52:16 | access to property Prop | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:52:9:52:39 | ...; | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:52:32:52:38 | "World" | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:53:9:53:20 | access to field IntField | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:53:9:53:26 | ...; | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:53:25:53:25 | 1 | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:54:9:54:30 | ...; | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:54:27:54:29 | "!" | +| ConditionalAccess.cs:51:30:51:31 | 84 | ConditionalAccess.cs:51:30:51:31 | 84 | +| ConditionalAccess.cs:52:9:52:16 | access to property Prop | ConditionalAccess.cs:52:9:52:16 | access to property Prop | +| ConditionalAccess.cs:52:9:52:16 | access to property Prop | ConditionalAccess.cs:52:32:52:38 | "World" | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:52:9:52:16 | access to property Prop | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:52:9:52:39 | ...; | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:52:32:52:38 | "World" | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:53:9:53:20 | access to field IntField | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:53:9:53:26 | ...; | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:53:25:53:25 | 1 | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:54:9:54:30 | ...; | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:54:27:54:29 | "!" | +| ConditionalAccess.cs:52:32:52:38 | "World" | ConditionalAccess.cs:52:32:52:38 | "World" | +| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | +| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:20 | access to field IntField | +| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:25:53:25 | 1 | +| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:53:9:53:20 | access to field IntField | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:53:9:53:20 | access to field IntField | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:53:9:53:26 | ...; | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:53:25:53:25 | 1 | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:54:9:54:30 | ...; | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:54:27:54:29 | "!" | +| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:53:25:53:25 | 1 | +| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | +| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | +| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:27:54:29 | "!" | +| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:54:9:54:30 | ...; | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:54:27:54:29 | "!" | +| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:54:27:54:29 | "!" | +| ConditionalAccess.cs:60:26:60:38 | enter CommaJoinWith | ConditionalAccess.cs:60:26:60:38 | enter CommaJoinWith | | Conditions.cs:1:7:1:16 | enter Conditions | Conditions.cs:1:7:1:16 | enter Conditions | | Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:3:10:3:19 | enter IncrOrDecr | | Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | @@ -12456,6 +12845,9 @@ postBlockDominance | Assignments.cs:3:10:3:10 | enter M | Assignments.cs:3:10:3:10 | enter M | | Assignments.cs:14:18:14:35 | enter (...) => ... | Assignments.cs:14:18:14:35 | enter (...) => ... | | Assignments.cs:17:40:17:40 | enter + | Assignments.cs:17:40:17:40 | enter + | +| Assignments.cs:27:10:27:23 | enter SetParamSingle | Assignments.cs:27:10:27:23 | enter SetParamSingle | +| Assignments.cs:32:10:32:22 | enter SetParamMulti | Assignments.cs:32:10:32:22 | enter SetParamMulti | +| Assignments.cs:38:10:38:11 | enter M2 | Assignments.cs:38:10:38:11 | enter M2 | | BreakInTry.cs:1:7:1:16 | enter BreakInTry | BreakInTry.cs:1:7:1:16 | enter BreakInTry | | BreakInTry.cs:3:10:3:11 | enter M1 | BreakInTry.cs:3:10:3:11 | enter M1 | | BreakInTry.cs:3:10:3:11 | exit M1 (normal) | BreakInTry.cs:3:10:3:11 | enter M1 | @@ -12610,7 +13002,103 @@ postBlockDominance | ConditionalAccess.cs:32:10:32:11 | exit M8 (normal) | ConditionalAccess.cs:32:10:32:11 | exit M8 (normal) | | ConditionalAccess.cs:32:10:32:11 | exit M8 (normal) | ConditionalAccess.cs:35:9:35:24 | call to method Out | | ConditionalAccess.cs:35:9:35:24 | call to method Out | ConditionalAccess.cs:35:9:35:24 | call to method Out | -| ConditionalAccess.cs:41:26:41:38 | enter CommaJoinWith | ConditionalAccess.cs:41:26:41:38 | enter CommaJoinWith | +| ConditionalAccess.cs:42:9:42:11 | enter get_Item | ConditionalAccess.cs:42:9:42:11 | enter get_Item | +| ConditionalAccess.cs:43:9:43:11 | enter set_Item | ConditionalAccess.cs:43:9:43:11 | enter set_Item | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:46:10:46:11 | enter M9 | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:46:10:46:11 | enter M9 | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:48:24:48:25 | 42 | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:49:9:49:33 | ...; | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:49:26:49:32 | "Hello" | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:50:9:50:24 | ...; | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:50:13:50:13 | 0 | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:51:9:51:16 | access to property Prop | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:51:9:51:32 | ...; | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:51:30:51:31 | 84 | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:52:9:52:16 | access to property Prop | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:52:9:52:39 | ...; | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:52:32:52:38 | "World" | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:53:9:53:20 | access to field IntField | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:53:9:53:26 | ...; | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:53:25:53:25 | 1 | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:54:9:54:30 | ...; | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:54:27:54:29 | "!" | +| ConditionalAccess.cs:48:24:48:25 | 42 | ConditionalAccess.cs:48:24:48:25 | 42 | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:46:10:46:11 | enter M9 | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:48:24:48:25 | 42 | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:49:9:49:33 | ...; | +| ConditionalAccess.cs:49:26:49:32 | "Hello" | ConditionalAccess.cs:49:26:49:32 | "Hello" | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:46:10:46:11 | enter M9 | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:48:24:48:25 | 42 | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:49:9:49:33 | ...; | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:49:26:49:32 | "Hello" | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:50:9:50:24 | ...; | +| ConditionalAccess.cs:50:13:50:13 | 0 | ConditionalAccess.cs:50:13:50:13 | 0 | +| ConditionalAccess.cs:51:9:51:16 | access to property Prop | ConditionalAccess.cs:51:9:51:16 | access to property Prop | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:46:10:46:11 | enter M9 | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:48:24:48:25 | 42 | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:49:9:49:33 | ...; | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:49:26:49:32 | "Hello" | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:50:9:50:24 | ...; | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:50:13:50:13 | 0 | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:51:9:51:32 | ...; | +| ConditionalAccess.cs:51:30:51:31 | 84 | ConditionalAccess.cs:51:30:51:31 | 84 | +| ConditionalAccess.cs:52:9:52:16 | access to property Prop | ConditionalAccess.cs:52:9:52:16 | access to property Prop | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:46:10:46:11 | enter M9 | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:48:24:48:25 | 42 | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:49:9:49:33 | ...; | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:49:26:49:32 | "Hello" | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:50:9:50:24 | ...; | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:50:13:50:13 | 0 | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:51:9:51:16 | access to property Prop | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:51:9:51:32 | ...; | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:51:30:51:31 | 84 | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:52:9:52:39 | ...; | +| ConditionalAccess.cs:52:32:52:38 | "World" | ConditionalAccess.cs:52:32:52:38 | "World" | +| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | +| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:53:9:53:20 | access to field IntField | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:46:10:46:11 | enter M9 | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:48:24:48:25 | 42 | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:49:9:49:33 | ...; | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:49:26:49:32 | "Hello" | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:50:9:50:24 | ...; | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:50:13:50:13 | 0 | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:51:9:51:16 | access to property Prop | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:51:9:51:32 | ...; | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:51:30:51:31 | 84 | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:52:9:52:16 | access to property Prop | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:52:9:52:39 | ...; | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:52:32:52:38 | "World" | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:53:9:53:26 | ...; | +| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | +| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:53:9:53:20 | access to field IntField | +| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:53:25:53:25 | 1 | +| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | +| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:46:10:46:11 | enter M9 | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:48:24:48:25 | 42 | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:49:9:49:33 | ...; | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:49:26:49:32 | "Hello" | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:50:9:50:24 | ...; | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:50:13:50:13 | 0 | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:51:9:51:16 | access to property Prop | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:51:9:51:32 | ...; | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:51:30:51:31 | 84 | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:52:9:52:16 | access to property Prop | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:52:9:52:39 | ...; | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:52:32:52:38 | "World" | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:53:9:53:20 | access to field IntField | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:53:9:53:26 | ...; | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:53:25:53:25 | 1 | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:54:9:54:30 | ...; | +| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | +| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | +| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:54:27:54:29 | "!" | +| ConditionalAccess.cs:60:26:60:38 | enter CommaJoinWith | ConditionalAccess.cs:60:26:60:38 | enter CommaJoinWith | | Conditions.cs:1:7:1:16 | enter Conditions | Conditions.cs:1:7:1:16 | enter Conditions | | Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:3:10:3:19 | enter IncrOrDecr | | Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | Conditions.cs:3:10:3:19 | enter IncrOrDecr | diff --git a/csharp/ql/test/library-tests/controlflow/graph/EnclosingCallable.expected b/csharp/ql/test/library-tests/controlflow/graph/EnclosingCallable.expected index 14dcdb56b269..8f48cd46fc3b 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/EnclosingCallable.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/EnclosingCallable.expected @@ -27,6 +27,7 @@ nodeEnclosing | AccessorCalls.cs:10:10:10:11 | exit M1 (normal) | AccessorCalls.cs:10:10:10:11 | M1 | | AccessorCalls.cs:11:5:17:5 | {...} | AccessorCalls.cs:10:10:10:11 | M1 | | AccessorCalls.cs:12:9:12:12 | this access | AccessorCalls.cs:10:10:10:11 | M1 | +| AccessorCalls.cs:12:9:12:18 | access to field Field | AccessorCalls.cs:10:10:10:11 | M1 | | AccessorCalls.cs:12:9:12:31 | ... = ... | AccessorCalls.cs:10:10:10:11 | M1 | | AccessorCalls.cs:12:9:12:32 | ...; | AccessorCalls.cs:10:10:10:11 | M1 | | AccessorCalls.cs:12:22:12:25 | this access | AccessorCalls.cs:10:10:10:11 | M1 | @@ -61,6 +62,7 @@ nodeEnclosing | AccessorCalls.cs:20:5:26:5 | {...} | AccessorCalls.cs:19:10:19:11 | M2 | | AccessorCalls.cs:21:9:21:12 | this access | AccessorCalls.cs:19:10:19:11 | M2 | | AccessorCalls.cs:21:9:21:14 | access to field x | AccessorCalls.cs:19:10:19:11 | M2 | +| AccessorCalls.cs:21:9:21:20 | access to field Field | AccessorCalls.cs:19:10:19:11 | M2 | | AccessorCalls.cs:21:9:21:35 | ... = ... | AccessorCalls.cs:19:10:19:11 | M2 | | AccessorCalls.cs:21:9:21:36 | ...; | AccessorCalls.cs:19:10:19:11 | M2 | | AccessorCalls.cs:21:24:21:27 | this access | AccessorCalls.cs:19:10:19:11 | M2 | @@ -140,6 +142,7 @@ nodeEnclosing | AccessorCalls.cs:44:9:44:12 | this access | AccessorCalls.cs:42:10:42:11 | M5 | | AccessorCalls.cs:44:9:44:12 | this access | AccessorCalls.cs:42:10:42:11 | M5 | | AccessorCalls.cs:44:9:44:18 | access to field Field | AccessorCalls.cs:42:10:42:11 | M5 | +| AccessorCalls.cs:44:9:44:18 | access to field Field | AccessorCalls.cs:42:10:42:11 | M5 | | AccessorCalls.cs:44:9:44:32 | ... + ... | AccessorCalls.cs:42:10:42:11 | M5 | | AccessorCalls.cs:44:9:44:32 | ... = ... | AccessorCalls.cs:42:10:42:11 | M5 | | AccessorCalls.cs:44:9:44:33 | ...; | AccessorCalls.cs:42:10:42:11 | M5 | @@ -175,6 +178,7 @@ nodeEnclosing | AccessorCalls.cs:51:9:51:14 | access to field x | AccessorCalls.cs:49:10:49:11 | M6 | | AccessorCalls.cs:51:9:51:14 | access to field x | AccessorCalls.cs:49:10:49:11 | M6 | | AccessorCalls.cs:51:9:51:20 | access to field Field | AccessorCalls.cs:49:10:49:11 | M6 | +| AccessorCalls.cs:51:9:51:20 | access to field Field | AccessorCalls.cs:49:10:49:11 | M6 | | AccessorCalls.cs:51:9:51:36 | ... + ... | AccessorCalls.cs:49:10:49:11 | M6 | | AccessorCalls.cs:51:9:51:36 | ... = ... | AccessorCalls.cs:49:10:49:11 | M6 | | AccessorCalls.cs:51:9:51:37 | ...; | AccessorCalls.cs:49:10:49:11 | M6 | @@ -216,6 +220,7 @@ nodeEnclosing | AccessorCalls.cs:58:9:58:85 | ... = ... | AccessorCalls.cs:56:10:56:11 | M7 | | AccessorCalls.cs:58:9:58:86 | ...; | AccessorCalls.cs:56:10:56:11 | M7 | | AccessorCalls.cs:58:10:58:13 | this access | AccessorCalls.cs:56:10:56:11 | M7 | +| AccessorCalls.cs:58:10:58:19 | access to field Field | AccessorCalls.cs:56:10:56:11 | M7 | | AccessorCalls.cs:58:22:58:25 | this access | AccessorCalls.cs:56:10:56:11 | M7 | | AccessorCalls.cs:58:22:58:30 | access to property Prop | AccessorCalls.cs:56:10:56:11 | M7 | | AccessorCalls.cs:58:33:58:44 | (..., ...) | AccessorCalls.cs:56:10:56:11 | M7 | @@ -241,6 +246,7 @@ nodeEnclosing | AccessorCalls.cs:63:9:63:98 | ...; | AccessorCalls.cs:61:10:61:11 | M8 | | AccessorCalls.cs:63:10:63:13 | this access | AccessorCalls.cs:61:10:61:11 | M8 | | AccessorCalls.cs:63:10:63:15 | access to field x | AccessorCalls.cs:61:10:61:11 | M8 | +| AccessorCalls.cs:63:10:63:21 | access to field Field | AccessorCalls.cs:61:10:61:11 | M8 | | AccessorCalls.cs:63:24:63:27 | this access | AccessorCalls.cs:61:10:61:11 | M8 | | AccessorCalls.cs:63:24:63:29 | access to field x | AccessorCalls.cs:61:10:61:11 | M8 | | AccessorCalls.cs:63:24:63:34 | access to property Prop | AccessorCalls.cs:61:10:61:11 | M8 | @@ -833,6 +839,51 @@ nodeEnclosing | Assignments.cs:18:5:20:5 | {...} | Assignments.cs:17:40:17:40 | + | | Assignments.cs:19:9:19:17 | return ...; | Assignments.cs:17:40:17:40 | + | | Assignments.cs:19:16:19:16 | access to parameter x | Assignments.cs:17:40:17:40 | + | +| Assignments.cs:27:10:27:23 | enter SetParamSingle | Assignments.cs:27:10:27:23 | SetParamSingle | +| Assignments.cs:27:10:27:23 | exit SetParamSingle | Assignments.cs:27:10:27:23 | SetParamSingle | +| Assignments.cs:27:10:27:23 | exit SetParamSingle (normal) | Assignments.cs:27:10:27:23 | SetParamSingle | +| Assignments.cs:28:5:30:5 | {...} | Assignments.cs:27:10:27:23 | SetParamSingle | +| Assignments.cs:29:9:29:14 | ... = ... | Assignments.cs:27:10:27:23 | SetParamSingle | +| Assignments.cs:29:9:29:15 | ...; | Assignments.cs:27:10:27:23 | SetParamSingle | +| Assignments.cs:29:13:29:14 | 42 | Assignments.cs:27:10:27:23 | SetParamSingle | +| Assignments.cs:32:10:32:22 | enter SetParamMulti | Assignments.cs:32:10:32:22 | SetParamMulti | +| Assignments.cs:32:10:32:22 | exit SetParamMulti | Assignments.cs:32:10:32:22 | SetParamMulti | +| Assignments.cs:32:10:32:22 | exit SetParamMulti (normal) | Assignments.cs:32:10:32:22 | SetParamMulti | +| Assignments.cs:33:5:36:5 | {...} | Assignments.cs:32:10:32:22 | SetParamMulti | +| Assignments.cs:34:9:34:14 | ... = ... | Assignments.cs:32:10:32:22 | SetParamMulti | +| Assignments.cs:34:9:34:15 | ...; | Assignments.cs:32:10:32:22 | SetParamMulti | +| Assignments.cs:34:13:34:14 | 42 | Assignments.cs:32:10:32:22 | SetParamMulti | +| Assignments.cs:35:9:35:19 | ... = ... | Assignments.cs:32:10:32:22 | SetParamMulti | +| Assignments.cs:35:9:35:20 | ...; | Assignments.cs:32:10:32:22 | SetParamMulti | +| Assignments.cs:35:13:35:19 | "Hello" | Assignments.cs:32:10:32:22 | SetParamMulti | +| Assignments.cs:38:10:38:11 | enter M2 | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:38:10:38:11 | exit M2 | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:38:10:38:11 | exit M2 (normal) | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:39:5:45:5 | {...} | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:40:9:40:15 | ... ...; | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:40:13:40:14 | Int32 x1 | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:41:9:41:30 | call to method SetParamSingle | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:41:9:41:30 | this access | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:41:9:41:31 | ...; | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:42:9:42:36 | call to method SetParamSingle | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:42:9:42:36 | this access | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:42:9:42:37 | ...; | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:42:28:42:35 | access to field IntField | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:42:28:42:35 | this access | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:43:9:43:55 | call to method SetParamMulti | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:43:9:43:55 | this access | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:43:9:43:56 | ...; | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:43:34:43:37 | null | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:43:44:43:54 | access to field StringField | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:43:44:43:54 | this access | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:44:9:44:58 | call to method SetParamMulti | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:44:9:44:58 | this access | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:44:9:44:59 | ...; | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:44:27:44:34 | access to field IntField | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:44:27:44:34 | this access | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:44:37:44:40 | null | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:44:47:44:57 | access to field StringField | Assignments.cs:38:10:38:11 | M2 | +| Assignments.cs:44:47:44:57 | this access | Assignments.cs:38:10:38:11 | M2 | | BreakInTry.cs:1:7:1:16 | call to constructor Object | BreakInTry.cs:1:7:1:16 | BreakInTry | | BreakInTry.cs:1:7:1:16 | call to method | BreakInTry.cs:1:7:1:16 | BreakInTry | | BreakInTry.cs:1:7:1:16 | enter BreakInTry | BreakInTry.cs:1:7:1:16 | BreakInTry | @@ -1071,14 +1122,72 @@ nodeEnclosing | ConditionalAccess.cs:35:9:35:12 | this access | ConditionalAccess.cs:32:10:32:11 | M8 | | ConditionalAccess.cs:35:9:35:24 | call to method Out | ConditionalAccess.cs:32:10:32:11 | M8 | | ConditionalAccess.cs:35:9:35:25 | ...; | ConditionalAccess.cs:32:10:32:11 | M8 | -| ConditionalAccess.cs:41:26:41:38 | enter CommaJoinWith | ConditionalAccess.cs:41:26:41:38 | CommaJoinWith | -| ConditionalAccess.cs:41:26:41:38 | exit CommaJoinWith | ConditionalAccess.cs:41:26:41:38 | CommaJoinWith | -| ConditionalAccess.cs:41:26:41:38 | exit CommaJoinWith (normal) | ConditionalAccess.cs:41:26:41:38 | CommaJoinWith | -| ConditionalAccess.cs:41:70:41:71 | access to parameter s1 | ConditionalAccess.cs:41:26:41:38 | CommaJoinWith | -| ConditionalAccess.cs:41:70:41:78 | ... + ... | ConditionalAccess.cs:41:26:41:38 | CommaJoinWith | -| ConditionalAccess.cs:41:70:41:83 | ... + ... | ConditionalAccess.cs:41:26:41:38 | CommaJoinWith | -| ConditionalAccess.cs:41:75:41:78 | ", " | ConditionalAccess.cs:41:26:41:38 | CommaJoinWith | -| ConditionalAccess.cs:41:82:41:83 | access to parameter s2 | ConditionalAccess.cs:41:26:41:38 | CommaJoinWith | +| ConditionalAccess.cs:42:9:42:11 | enter get_Item | ConditionalAccess.cs:42:9:42:11 | get_Item | +| ConditionalAccess.cs:42:9:42:11 | exit get_Item | ConditionalAccess.cs:42:9:42:11 | get_Item | +| ConditionalAccess.cs:42:9:42:11 | exit get_Item (normal) | ConditionalAccess.cs:42:9:42:11 | get_Item | +| ConditionalAccess.cs:42:13:42:28 | {...} | ConditionalAccess.cs:42:9:42:11 | get_Item | +| ConditionalAccess.cs:42:15:42:26 | return ...; | ConditionalAccess.cs:42:9:42:11 | get_Item | +| ConditionalAccess.cs:42:22:42:25 | null | ConditionalAccess.cs:42:9:42:11 | get_Item | +| ConditionalAccess.cs:43:9:43:11 | enter set_Item | ConditionalAccess.cs:43:9:43:11 | set_Item | +| ConditionalAccess.cs:43:9:43:11 | exit set_Item | ConditionalAccess.cs:43:9:43:11 | set_Item | +| ConditionalAccess.cs:43:9:43:11 | exit set_Item (normal) | ConditionalAccess.cs:43:9:43:11 | set_Item | +| ConditionalAccess.cs:43:13:43:15 | {...} | ConditionalAccess.cs:43:9:43:11 | set_Item | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:46:10:46:11 | exit M9 | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:47:5:55:5 | {...} | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:48:9:48:10 | access to parameter ca | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:48:9:48:20 | access to field IntField | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:48:9:48:26 | ...; | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:48:12:48:25 | ... = ... | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:48:24:48:25 | 42 | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:49:9:49:10 | access to parameter ca | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:49:9:49:22 | access to property StringProp | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:49:12:49:32 | ... = ... | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:49:26:49:32 | "Hello" | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:50:9:50:10 | access to parameter ca | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:50:9:50:14 | access to indexer | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:50:12:50:23 | ... = ... | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:50:13:50:13 | 0 | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:50:18:50:23 | "Set0" | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:51:9:51:10 | access to parameter ca | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:51:9:51:16 | access to property Prop | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:51:9:51:26 | access to field IntField | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:51:18:51:31 | ... = ... | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:51:30:51:31 | 84 | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:52:9:52:10 | access to parameter ca | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:52:9:52:16 | access to property Prop | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:52:9:52:28 | access to property StringProp | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:52:18:52:38 | ... = ... | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:52:32:52:38 | "World" | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:53:12:53:25 | ... - ... | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:53:12:53:25 | ... = ... | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:54:12:54:29 | ... + ... | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:54:12:54:29 | ... = ... | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:60:26:60:38 | enter CommaJoinWith | ConditionalAccess.cs:60:26:60:38 | CommaJoinWith | +| ConditionalAccess.cs:60:26:60:38 | exit CommaJoinWith | ConditionalAccess.cs:60:26:60:38 | CommaJoinWith | +| ConditionalAccess.cs:60:26:60:38 | exit CommaJoinWith (normal) | ConditionalAccess.cs:60:26:60:38 | CommaJoinWith | +| ConditionalAccess.cs:60:70:60:71 | access to parameter s1 | ConditionalAccess.cs:60:26:60:38 | CommaJoinWith | +| ConditionalAccess.cs:60:70:60:78 | ... + ... | ConditionalAccess.cs:60:26:60:38 | CommaJoinWith | +| ConditionalAccess.cs:60:70:60:83 | ... + ... | ConditionalAccess.cs:60:26:60:38 | CommaJoinWith | +| ConditionalAccess.cs:60:75:60:78 | ", " | ConditionalAccess.cs:60:26:60:38 | CommaJoinWith | +| ConditionalAccess.cs:60:82:60:83 | access to parameter s2 | ConditionalAccess.cs:60:26:60:38 | CommaJoinWith | | Conditions.cs:1:7:1:16 | call to constructor Object | Conditions.cs:1:7:1:16 | Conditions | | Conditions.cs:1:7:1:16 | call to method | Conditions.cs:1:7:1:16 | Conditions | | Conditions.cs:1:7:1:16 | enter Conditions | Conditions.cs:1:7:1:16 | Conditions | @@ -1943,10 +2052,12 @@ nodeEnclosing | Finally.cs:209:25:209:47 | throw ...; | 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 | this access | Finally.cs:195:10:195:12 | M10 | +| Finally.cs:211:13:211:22 | access to field Field | 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:29 | ...; | Finally.cs:195:10:195:12 | M10 | | Finally.cs:211:26:211:28 | "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:18 | access to field Field | 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 | | Finally.cs:213:22:213:24 | "1" | Finally.cs:195:10:195:12 | M10 | @@ -2095,6 +2206,7 @@ nodeEnclosing | Initializers.cs:3:7:3:18 | exit Initializers | Initializers.cs:3:7:3:18 | Initializers | | Initializers.cs:3:7:3:18 | exit Initializers (normal) | Initializers.cs:3:7:3:18 | Initializers | | Initializers.cs:3:7:3:18 | {...} | Initializers.cs:3:7:3:18 | Initializers | +| Initializers.cs:5:9:5:9 | access to field F | Initializers.cs:3:7:3:18 | | | Initializers.cs:5:9:5:9 | this access | Initializers.cs:3:7:3:18 | | | Initializers.cs:5:9:5:17 | ... = ... | Initializers.cs:3:7:3:18 | | | Initializers.cs:5:13:5:13 | access to field H | Initializers.cs:3:7:3:18 | | @@ -2129,6 +2241,7 @@ nodeEnclosing | Initializers.cs:14:17:14:53 | object creation of type Initializers | Initializers.cs:12:10:12:10 | M | | Initializers.cs:14:34:14:35 | "" | Initializers.cs:12:10:12:10 | M | | Initializers.cs:14:38:14:53 | { ..., ... } | Initializers.cs:12:10:12:10 | M | +| Initializers.cs:14:40:14:40 | access to field F | Initializers.cs:12:10:12:10 | M | | Initializers.cs:14:40:14:44 | ... = ... | Initializers.cs:12:10:12:10 | M | | Initializers.cs:14:44:14:44 | 0 | Initializers.cs:12:10:12:10 | M | | Initializers.cs:14:47:14:47 | access to property G | Initializers.cs:12:10:12:10 | M | @@ -2152,15 +2265,18 @@ nodeEnclosing | Initializers.cs:20:11:20:23 | exit NoConstructor (normal) | Initializers.cs:20:11:20:23 | NoConstructor | | Initializers.cs:20:11:20:23 | this access | Initializers.cs:20:11:20:23 | NoConstructor | | Initializers.cs:20:11:20:23 | {...} | Initializers.cs:20:11:20:23 | NoConstructor | +| Initializers.cs:22:23:22:23 | access to field F | Initializers.cs:20:11:20:23 | | | Initializers.cs:22:23:22:23 | this access | Initializers.cs:20:11:20:23 | | | Initializers.cs:22:23:22:27 | ... = ... | Initializers.cs:20:11:20:23 | | | Initializers.cs:22:27:22:27 | 0 | Initializers.cs:20:11:20:23 | | +| Initializers.cs:23:23:23:23 | access to field G | Initializers.cs:20:11:20:23 | | | Initializers.cs:23:23:23:23 | this access | Initializers.cs:20:11:20:23 | | | Initializers.cs:23:23:23:27 | ... = ... | Initializers.cs:20:11:20:23 | | | Initializers.cs:23:27:23:27 | 1 | Initializers.cs:20:11:20:23 | | | Initializers.cs:26:11:26:13 | enter | Initializers.cs:26:11:26:13 | | | Initializers.cs:26:11:26:13 | exit | Initializers.cs:26:11:26:13 | | | Initializers.cs:26:11:26:13 | exit (normal) | Initializers.cs:26:11:26:13 | | +| Initializers.cs:28:13:28:13 | access to field H | Initializers.cs:26:11:26:13 | | | Initializers.cs:28:13:28:13 | this access | Initializers.cs:26:11:26:13 | | | Initializers.cs:28:13:28:17 | ... = ... | Initializers.cs:26:11:26:13 | | | Initializers.cs:28:17:28:17 | 2 | Initializers.cs:26:11:26:13 | | @@ -2171,6 +2287,7 @@ nodeEnclosing | Initializers.cs:31:9:31:11 | this access | Initializers.cs:31:9:31:11 | Sub | | Initializers.cs:31:17:31:20 | call to constructor NoConstructor | Initializers.cs:31:9:31:11 | Sub | | Initializers.cs:31:24:31:33 | {...} | Initializers.cs:31:9:31:11 | Sub | +| Initializers.cs:31:26:31:26 | access to field I | Initializers.cs:31:9:31:11 | Sub | | Initializers.cs:31:26:31:26 | this access | Initializers.cs:31:9:31:11 | Sub | | Initializers.cs:31:26:31:30 | ... = ... | Initializers.cs:31:9:31:11 | Sub | | Initializers.cs:31:26:31:31 | ...; | Initializers.cs:31:9:31:11 | Sub | @@ -2180,6 +2297,7 @@ nodeEnclosing | Initializers.cs:33:9:33:11 | exit Sub (normal) | Initializers.cs:33:9:33:11 | Sub | | Initializers.cs:33:22:33:25 | call to constructor Sub | Initializers.cs:33:9:33:11 | Sub | | Initializers.cs:33:29:33:38 | {...} | Initializers.cs:33:9:33:11 | Sub | +| Initializers.cs:33:31:33:31 | access to field I | Initializers.cs:33:9:33:11 | Sub | | Initializers.cs:33:31:33:31 | this access | Initializers.cs:33:9:33:11 | Sub | | Initializers.cs:33:31:33:35 | ... = ... | Initializers.cs:33:9:33:11 | Sub | | Initializers.cs:33:31:33:36 | ...; | Initializers.cs:33:9:33:11 | Sub | @@ -2191,6 +2309,7 @@ nodeEnclosing | Initializers.cs:35:9:35:11 | exit Sub (normal) | Initializers.cs:35:9:35:11 | Sub | | Initializers.cs:35:9:35:11 | this access | Initializers.cs:35:9:35:11 | Sub | | Initializers.cs:35:27:35:40 | {...} | Initializers.cs:35:9:35:11 | Sub | +| Initializers.cs:35:29:35:29 | access to field I | Initializers.cs:35:9:35:11 | Sub | | Initializers.cs:35:29:35:29 | this access | Initializers.cs:35:9:35:11 | Sub | | Initializers.cs:35:29:35:37 | ... = ... | Initializers.cs:35:9:35:11 | Sub | | Initializers.cs:35:29:35:38 | ...; | Initializers.cs:35:9:35:11 | Sub | @@ -2237,6 +2356,7 @@ nodeEnclosing | Initializers.cs:57:13:65:9 | Compound compound = ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:57:24:65:9 | object creation of type Compound | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:58:9:65:9 | { ..., ... } | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:59:13:59:27 | access to field DictionaryField | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:59:13:59:76 | ... = ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:59:31:59:76 | { ..., ... } | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:59:33:59:35 | access to indexer | Initializers.cs:51:10:51:13 | Test | @@ -2270,22 +2390,28 @@ nodeEnclosing | Initializers.cs:60:65:60:69 | ... + ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:60:69:60:69 | 1 | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:60:74:60:78 | "One" | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:61:13:61:22 | access to field ArrayField | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:61:13:61:58 | ... = ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:61:26:61:58 | { ..., ... } | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:61:28:61:30 | access to array element | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:61:28:61:39 | ... = ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:61:29:61:29 | 0 | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:61:34:61:39 | "Zero" | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:61:42:61:48 | access to array element | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:61:42:61:56 | ... = ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:61:43:61:43 | access to parameter i | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:61:43:61:47 | ... + ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:61:47:61:47 | 1 | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:61:52:61:56 | "One" | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:62:13:62:23 | access to field ArrayField2 | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:62:13:62:60 | ... = ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:62:27:62:60 | { ..., ... } | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:62:29:62:34 | access to array element | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:62:29:62:40 | ... = ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:62:30:62:30 | 0 | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:62:33:62:33 | 1 | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:62:38:62:40 | "i" | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:62:43:62:52 | access to array element | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:62:43:62:58 | ... = ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:62:44:62:44 | 1 | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:62:47:62:47 | access to parameter i | Initializers.cs:51:10:51:13 | Test | @@ -2295,9 +2421,11 @@ nodeEnclosing | Initializers.cs:63:13:63:25 | access to property ArrayProperty | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:63:13:63:60 | ... = ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:63:29:63:60 | { ..., ... } | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:63:31:63:33 | access to array element | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:63:31:63:41 | ... = ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:63:32:63:32 | 1 | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:63:37:63:41 | "One" | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:63:44:63:50 | access to array element | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:63:44:63:58 | ... = ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:63:45:63:45 | access to parameter i | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:63:45:63:49 | ... + ... | Initializers.cs:51:10:51:13 | Test | @@ -2306,10 +2434,12 @@ nodeEnclosing | Initializers.cs:64:13:64:26 | access to property ArrayProperty2 | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:64:13:64:63 | ... = ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:64:30:64:63 | { ..., ... } | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:64:32:64:37 | access to array element | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:64:32:64:43 | ... = ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:64:33:64:33 | 0 | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:64:36:64:36 | 1 | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:64:41:64:43 | "i" | Initializers.cs:51:10:51:13 | Test | +| Initializers.cs:64:46:64:55 | access to array element | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:64:46:64:61 | ... = ... | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:64:47:64:47 | 1 | Initializers.cs:51:10:51:13 | Test | | Initializers.cs:64:50:64:50 | access to parameter i | Initializers.cs:51:10:51:13 | Test | @@ -2565,6 +2695,7 @@ nodeEnclosing | MultiImplementationA.cs:11:7:11:8 | enter | MultiImplementationA.cs:11:7:11:8 | | | MultiImplementationA.cs:11:7:11:8 | exit | MultiImplementationA.cs:11:7:11:8 | | | MultiImplementationA.cs:11:7:11:8 | exit (normal) | MultiImplementationA.cs:11:7:11:8 | | +| MultiImplementationA.cs:13:16:13:16 | access to field F | MultiImplementationA.cs:11:7:11:8 | | | MultiImplementationA.cs:13:16:13:16 | this access | MultiImplementationA.cs:11:7:11:8 | | | MultiImplementationA.cs:13:16:13:20 | ... = ... | MultiImplementationA.cs:11:7:11:8 | | | MultiImplementationA.cs:13:20:13:20 | 0 | MultiImplementationA.cs:11:7:11:8 | | @@ -2601,6 +2732,7 @@ nodeEnclosing | MultiImplementationA.cs:20:12:20:13 | exit C2 (normal) | MultiImplementationA.cs:20:12:20:13 | C2 | | MultiImplementationA.cs:20:12:20:13 | this access | MultiImplementationA.cs:20:12:20:13 | C2 | | MultiImplementationA.cs:20:22:20:31 | {...} | MultiImplementationA.cs:20:12:20:13 | C2 | +| MultiImplementationA.cs:20:24:20:24 | access to field F | MultiImplementationA.cs:20:12:20:13 | C2 | | MultiImplementationA.cs:20:24:20:24 | this access | MultiImplementationA.cs:20:12:20:13 | C2 | | MultiImplementationA.cs:20:24:20:28 | ... = ... | MultiImplementationA.cs:20:12:20:13 | C2 | | MultiImplementationA.cs:20:24:20:29 | ...; | MultiImplementationA.cs:20:12:20:13 | C2 | @@ -2667,6 +2799,7 @@ nodeEnclosing | MultiImplementationB.cs:4:34:4:34 | 1 | MultiImplementationA.cs:7:21:7:23 | get_P2 | | MultiImplementationB.cs:4:43:4:45 | {...} | MultiImplementationA.cs:7:41:7:43 | set_P2 | | MultiImplementationB.cs:5:23:5:23 | 2 | MultiImplementationA.cs:8:16:8:16 | M | +| MultiImplementationB.cs:11:16:11:16 | access to field F | MultiImplementationA.cs:11:7:11:8 | | | MultiImplementationB.cs:11:16:11:16 | this access | MultiImplementationA.cs:11:7:11:8 | | | MultiImplementationB.cs:11:16:11:20 | ... = ... | MultiImplementationA.cs:11:7:11:8 | | | MultiImplementationB.cs:11:20:11:20 | 1 | MultiImplementationA.cs:11:7:11:8 | | @@ -2794,6 +2927,7 @@ nodeEnclosing | PartialImplementationA.cs:3:12:3:18 | exit Partial (normal) | PartialImplementationA.cs:3:12:3:18 | Partial | | PartialImplementationA.cs:3:12:3:18 | this access | PartialImplementationA.cs:3:12:3:18 | Partial | | PartialImplementationA.cs:3:27:3:29 | {...} | PartialImplementationA.cs:3:12:3:18 | Partial | +| PartialImplementationB.cs:3:16:3:16 | access to field F | PartialImplementationA.cs:1:15:1:21 | | | PartialImplementationB.cs:3:16:3:16 | this access | PartialImplementationA.cs:1:15:1:21 | | | PartialImplementationB.cs:3:16:3:20 | ... = ... | PartialImplementationA.cs:1:15:1:21 | | | PartialImplementationB.cs:3:20:3:20 | 0 | PartialImplementationA.cs:1:15:1:21 | | @@ -3824,6 +3958,7 @@ nodeEnclosing | cflow.cs:127:62:127:64 | exit set_Prop | cflow.cs:127:62:127:64 | set_Prop | | cflow.cs:127:62:127:64 | exit set_Prop (normal) | cflow.cs:127:62:127:64 | set_Prop | | cflow.cs:127:66:127:83 | {...} | cflow.cs:127:62:127:64 | set_Prop | +| cflow.cs:127:68:127:72 | access to field Field | cflow.cs:127:62:127:64 | set_Prop | | cflow.cs:127:68:127:72 | this access | cflow.cs:127:62:127:64 | set_Prop | | cflow.cs:127:68:127:80 | ... = ... | cflow.cs:127:62:127:64 | set_Prop | | cflow.cs:127:68:127:81 | ...; | cflow.cs:127:62:127:64 | set_Prop | @@ -3835,6 +3970,7 @@ nodeEnclosing | cflow.cs:129:5:129:15 | exit ControlFlow (normal) | cflow.cs:129:5:129:15 | ControlFlow | | cflow.cs:129:5:129:15 | this access | cflow.cs:129:5:129:15 | ControlFlow | | cflow.cs:130:5:132:5 | {...} | cflow.cs:129:5:129:15 | ControlFlow | +| cflow.cs:131:9:131:13 | access to field Field | cflow.cs:129:5:129:15 | ControlFlow | | cflow.cs:131:9:131:13 | this access | cflow.cs:129:5:129:15 | ControlFlow | | cflow.cs:131:9:131:17 | ... = ... | cflow.cs:129:5:129:15 | ControlFlow | | cflow.cs:131:9:131:18 | ...; | cflow.cs:129:5:129:15 | ControlFlow | @@ -4068,6 +4204,7 @@ nodeEnclosing | cflow.cs:210:9:221:36 | do ... while (...); | cflow.cs:208:10:208:11 | Do | | cflow.cs:211:9:221:9 | {...} | cflow.cs:208:10:208:11 | Do | | cflow.cs:212:13:212:17 | access to field Field | cflow.cs:208:10:208:11 | Do | +| cflow.cs:212:13:212:17 | access to field Field | cflow.cs:208:10:208:11 | Do | | cflow.cs:212:13:212:17 | this access | cflow.cs:208:10:208:11 | Do | | cflow.cs:212:13:212:17 | this access | cflow.cs:208:10:208:11 | Do | | cflow.cs:212:13:212:24 | ... + ... | cflow.cs:208:10:208:11 | Do | @@ -4106,6 +4243,7 @@ nodeEnclosing | cflow.cs:226:62:226:63 | 10 | cflow.cs:224:10:224:16 | Foreach | | cflow.cs:227:9:237:9 | {...} | cflow.cs:224:10:224:16 | Foreach | | cflow.cs:228:13:228:17 | access to field Field | cflow.cs:224:10:224:16 | Foreach | +| cflow.cs:228:13:228:17 | access to field Field | cflow.cs:224:10:224:16 | Foreach | | cflow.cs:228:13:228:17 | this access | cflow.cs:224:10:224:16 | Foreach | | cflow.cs:228:13:228:17 | this access | cflow.cs:224:10:224:16 | Foreach | | cflow.cs:228:13:228:22 | ... + ... | cflow.cs:224:10:224:16 | Foreach | @@ -4445,6 +4583,9 @@ blockEnclosing | Assignments.cs:3:10:3:10 | enter M | Assignments.cs:3:10:3:10 | M | | Assignments.cs:14:18:14:35 | enter (...) => ... | Assignments.cs:14:18:14:35 | (...) => ... | | Assignments.cs:17:40:17:40 | enter + | Assignments.cs:17:40:17:40 | + | +| Assignments.cs:27:10:27:23 | enter SetParamSingle | Assignments.cs:27:10:27:23 | SetParamSingle | +| Assignments.cs:32:10:32:22 | enter SetParamMulti | Assignments.cs:32:10:32:22 | SetParamMulti | +| Assignments.cs:38:10:38:11 | enter M2 | Assignments.cs:38:10:38:11 | M2 | | BreakInTry.cs:1:7:1:16 | enter BreakInTry | BreakInTry.cs:1:7:1:16 | BreakInTry | | BreakInTry.cs:3:10:3:11 | enter M1 | BreakInTry.cs:3:10:3:11 | M1 | | BreakInTry.cs:3:10:3:11 | exit M1 (normal) | BreakInTry.cs:3:10:3:11 | M1 | @@ -4522,7 +4663,30 @@ blockEnclosing | ConditionalAccess.cs:32:10:32:11 | enter M8 | ConditionalAccess.cs:32:10:32:11 | M8 | | ConditionalAccess.cs:32:10:32:11 | exit M8 (normal) | ConditionalAccess.cs:32:10:32:11 | M8 | | ConditionalAccess.cs:35:9:35:24 | call to method Out | ConditionalAccess.cs:32:10:32:11 | M8 | -| ConditionalAccess.cs:41:26:41:38 | enter CommaJoinWith | ConditionalAccess.cs:41:26:41:38 | CommaJoinWith | +| ConditionalAccess.cs:42:9:42:11 | enter get_Item | ConditionalAccess.cs:42:9:42:11 | get_Item | +| ConditionalAccess.cs:43:9:43:11 | enter set_Item | ConditionalAccess.cs:43:9:43:11 | set_Item | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:48:24:48:25 | 42 | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:49:26:49:32 | "Hello" | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:50:13:50:13 | 0 | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:51:9:51:16 | access to property Prop | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:51:30:51:31 | 84 | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:52:9:52:16 | access to property Prop | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:52:32:52:38 | "World" | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:46:10:46:11 | M9 | +| ConditionalAccess.cs:60:26:60:38 | enter CommaJoinWith | ConditionalAccess.cs:60:26:60:38 | CommaJoinWith | | Conditions.cs:1:7:1:16 | enter Conditions | Conditions.cs:1:7:1:16 | Conditions | | Conditions.cs:3:10:3:19 | enter IncrOrDecr | Conditions.cs:3:10:3:19 | IncrOrDecr | | Conditions.cs:3:10:3:19 | exit IncrOrDecr (normal) | Conditions.cs:3:10:3:19 | IncrOrDecr | diff --git a/csharp/ql/test/library-tests/controlflow/graph/EntryElement.expected b/csharp/ql/test/library-tests/controlflow/graph/EntryElement.expected index da8fe4664f52..410916afabdf 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/EntryElement.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/EntryElement.expected @@ -722,6 +722,42 @@ | Assignments.cs:18:5:20:5 | {...} | Assignments.cs:18:5:20:5 | {...} | | Assignments.cs:19:9:19:17 | return ...; | Assignments.cs:19:16:19:16 | access to parameter x | | Assignments.cs:19:16:19:16 | access to parameter x | Assignments.cs:19:16:19:16 | access to parameter x | +| Assignments.cs:28:5:30:5 | {...} | Assignments.cs:28:5:30:5 | {...} | +| Assignments.cs:29:9:29:14 | ... = ... | Assignments.cs:29:13:29:14 | 42 | +| Assignments.cs:29:9:29:15 | ...; | Assignments.cs:29:9:29:15 | ...; | +| Assignments.cs:29:13:29:14 | 42 | Assignments.cs:29:13:29:14 | 42 | +| Assignments.cs:33:5:36:5 | {...} | Assignments.cs:33:5:36:5 | {...} | +| Assignments.cs:34:9:34:14 | ... = ... | Assignments.cs:34:13:34:14 | 42 | +| Assignments.cs:34:9:34:15 | ...; | Assignments.cs:34:9:34:15 | ...; | +| Assignments.cs:34:13:34:14 | 42 | Assignments.cs:34:13:34:14 | 42 | +| Assignments.cs:35:9:35:19 | ... = ... | Assignments.cs:35:13:35:19 | "Hello" | +| Assignments.cs:35:9:35:20 | ...; | Assignments.cs:35:9:35:20 | ...; | +| Assignments.cs:35:13:35:19 | "Hello" | Assignments.cs:35:13:35:19 | "Hello" | +| Assignments.cs:39:5:45:5 | {...} | Assignments.cs:39:5:45:5 | {...} | +| Assignments.cs:40:9:40:15 | ... ...; | Assignments.cs:40:9:40:15 | ... ...; | +| Assignments.cs:40:13:40:14 | Int32 x1 | Assignments.cs:40:13:40:14 | Int32 x1 | +| Assignments.cs:41:9:41:30 | call to method SetParamSingle | Assignments.cs:41:9:41:30 | this access | +| Assignments.cs:41:9:41:30 | this access | Assignments.cs:41:9:41:30 | this access | +| Assignments.cs:41:9:41:31 | ...; | Assignments.cs:41:9:41:31 | ...; | +| Assignments.cs:42:9:42:36 | call to method SetParamSingle | Assignments.cs:42:9:42:36 | this access | +| Assignments.cs:42:9:42:36 | this access | Assignments.cs:42:9:42:36 | this access | +| Assignments.cs:42:9:42:37 | ...; | Assignments.cs:42:9:42:37 | ...; | +| Assignments.cs:42:28:42:35 | access to field IntField | Assignments.cs:42:28:42:35 | this access | +| Assignments.cs:42:28:42:35 | this access | Assignments.cs:42:28:42:35 | this access | +| Assignments.cs:43:9:43:55 | call to method SetParamMulti | Assignments.cs:43:9:43:55 | this access | +| Assignments.cs:43:9:43:55 | this access | Assignments.cs:43:9:43:55 | this access | +| Assignments.cs:43:9:43:56 | ...; | Assignments.cs:43:9:43:56 | ...; | +| Assignments.cs:43:34:43:37 | null | Assignments.cs:43:34:43:37 | null | +| Assignments.cs:43:44:43:54 | access to field StringField | Assignments.cs:43:44:43:54 | this access | +| Assignments.cs:43:44:43:54 | this access | Assignments.cs:43:44:43:54 | this access | +| Assignments.cs:44:9:44:58 | call to method SetParamMulti | Assignments.cs:44:9:44:58 | this access | +| Assignments.cs:44:9:44:58 | this access | Assignments.cs:44:9:44:58 | this access | +| Assignments.cs:44:9:44:59 | ...; | Assignments.cs:44:9:44:59 | ...; | +| Assignments.cs:44:27:44:34 | access to field IntField | Assignments.cs:44:27:44:34 | this access | +| Assignments.cs:44:27:44:34 | this access | Assignments.cs:44:27:44:34 | this access | +| Assignments.cs:44:37:44:40 | null | Assignments.cs:44:37:44:40 | null | +| Assignments.cs:44:47:44:57 | access to field StringField | Assignments.cs:44:47:44:57 | this access | +| Assignments.cs:44:47:44:57 | this access | Assignments.cs:44:47:44:57 | this access | | BreakInTry.cs:1:7:1:16 | call to constructor Object | BreakInTry.cs:1:7:1:16 | call to constructor Object | | BreakInTry.cs:1:7:1:16 | call to method | BreakInTry.cs:1:7:1:16 | this access | | BreakInTry.cs:1:7:1:16 | this access | BreakInTry.cs:1:7:1:16 | this access | @@ -896,11 +932,62 @@ | ConditionalAccess.cs:35:9:35:12 | this access | ConditionalAccess.cs:35:9:35:12 | this access | | ConditionalAccess.cs:35:9:35:24 | call to method Out | ConditionalAccess.cs:35:9:35:12 | this access | | ConditionalAccess.cs:35:9:35:25 | ...; | ConditionalAccess.cs:35:9:35:25 | ...; | -| ConditionalAccess.cs:41:70:41:71 | access to parameter s1 | ConditionalAccess.cs:41:70:41:71 | access to parameter s1 | -| ConditionalAccess.cs:41:70:41:78 | ... + ... | ConditionalAccess.cs:41:70:41:71 | access to parameter s1 | -| ConditionalAccess.cs:41:70:41:83 | ... + ... | ConditionalAccess.cs:41:70:41:71 | access to parameter s1 | -| ConditionalAccess.cs:41:75:41:78 | ", " | ConditionalAccess.cs:41:75:41:78 | ", " | -| ConditionalAccess.cs:41:82:41:83 | access to parameter s2 | ConditionalAccess.cs:41:82:41:83 | access to parameter s2 | +| ConditionalAccess.cs:42:13:42:28 | {...} | ConditionalAccess.cs:42:13:42:28 | {...} | +| ConditionalAccess.cs:42:15:42:26 | return ...; | ConditionalAccess.cs:42:22:42:25 | null | +| ConditionalAccess.cs:42:22:42:25 | null | ConditionalAccess.cs:42:22:42:25 | null | +| ConditionalAccess.cs:43:13:43:15 | {...} | ConditionalAccess.cs:43:13:43:15 | {...} | +| ConditionalAccess.cs:47:5:55:5 | {...} | ConditionalAccess.cs:47:5:55:5 | {...} | +| ConditionalAccess.cs:48:9:48:10 | access to parameter ca | ConditionalAccess.cs:48:9:48:10 | access to parameter ca | +| ConditionalAccess.cs:48:9:48:20 | access to field IntField | ConditionalAccess.cs:48:9:48:10 | access to parameter ca | +| ConditionalAccess.cs:48:9:48:26 | ...; | ConditionalAccess.cs:48:9:48:26 | ...; | +| ConditionalAccess.cs:48:12:48:25 | ... = ... | ConditionalAccess.cs:48:9:48:10 | access to parameter ca | +| ConditionalAccess.cs:48:24:48:25 | 42 | ConditionalAccess.cs:48:24:48:25 | 42 | +| ConditionalAccess.cs:49:9:49:10 | access to parameter ca | ConditionalAccess.cs:49:9:49:10 | access to parameter ca | +| ConditionalAccess.cs:49:9:49:22 | access to property StringProp | ConditionalAccess.cs:49:9:49:10 | access to parameter ca | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:49:9:49:33 | ...; | +| ConditionalAccess.cs:49:12:49:32 | ... = ... | ConditionalAccess.cs:49:9:49:10 | access to parameter ca | +| ConditionalAccess.cs:49:26:49:32 | "Hello" | ConditionalAccess.cs:49:26:49:32 | "Hello" | +| ConditionalAccess.cs:50:9:50:10 | access to parameter ca | ConditionalAccess.cs:50:9:50:10 | access to parameter ca | +| ConditionalAccess.cs:50:9:50:14 | access to indexer | ConditionalAccess.cs:50:9:50:10 | access to parameter ca | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:50:9:50:24 | ...; | +| ConditionalAccess.cs:50:12:50:23 | ... = ... | ConditionalAccess.cs:50:9:50:10 | access to parameter ca | +| ConditionalAccess.cs:50:13:50:13 | 0 | ConditionalAccess.cs:50:13:50:13 | 0 | +| ConditionalAccess.cs:50:18:50:23 | "Set0" | ConditionalAccess.cs:50:18:50:23 | "Set0" | +| ConditionalAccess.cs:51:9:51:10 | access to parameter ca | ConditionalAccess.cs:51:9:51:10 | access to parameter ca | +| ConditionalAccess.cs:51:9:51:16 | access to property Prop | ConditionalAccess.cs:51:9:51:10 | access to parameter ca | +| ConditionalAccess.cs:51:9:51:26 | access to field IntField | ConditionalAccess.cs:51:9:51:10 | access to parameter ca | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:51:9:51:32 | ...; | +| ConditionalAccess.cs:51:18:51:31 | ... = ... | ConditionalAccess.cs:51:9:51:10 | access to parameter ca | +| ConditionalAccess.cs:51:30:51:31 | 84 | ConditionalAccess.cs:51:30:51:31 | 84 | +| ConditionalAccess.cs:52:9:52:10 | access to parameter ca | ConditionalAccess.cs:52:9:52:10 | access to parameter ca | +| ConditionalAccess.cs:52:9:52:16 | access to property Prop | ConditionalAccess.cs:52:9:52:10 | access to parameter ca | +| ConditionalAccess.cs:52:9:52:28 | access to property StringProp | ConditionalAccess.cs:52:9:52:10 | access to parameter ca | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:52:9:52:39 | ...; | +| ConditionalAccess.cs:52:18:52:38 | ... = ... | ConditionalAccess.cs:52:9:52:10 | access to parameter ca | +| ConditionalAccess.cs:52:32:52:38 | "World" | ConditionalAccess.cs:52:32:52:38 | "World" | +| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | +| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | +| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | +| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:53:9:53:26 | ...; | +| ConditionalAccess.cs:53:12:53:25 | ... - ... | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | +| ConditionalAccess.cs:53:12:53:25 | ... -= ... | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | +| ConditionalAccess.cs:53:12:53:25 | ... = ... | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | +| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:53:25:53:25 | 1 | +| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | +| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | +| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | +| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:54:9:54:30 | ...; | +| ConditionalAccess.cs:54:12:54:29 | ... + ... | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | +| ConditionalAccess.cs:54:12:54:29 | ... += ... | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | +| ConditionalAccess.cs:54:12:54:29 | ... = ... | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | +| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:54:27:54:29 | "!" | +| ConditionalAccess.cs:60:70:60:71 | access to parameter s1 | ConditionalAccess.cs:60:70:60:71 | access to parameter s1 | +| ConditionalAccess.cs:60:70:60:78 | ... + ... | ConditionalAccess.cs:60:70:60:71 | access to parameter s1 | +| ConditionalAccess.cs:60:70:60:83 | ... + ... | ConditionalAccess.cs:60:70:60:71 | access to parameter s1 | +| ConditionalAccess.cs:60:75:60:78 | ", " | ConditionalAccess.cs:60:75:60:78 | ", " | +| ConditionalAccess.cs:60:82:60:83 | access to parameter s2 | ConditionalAccess.cs:60:82:60:83 | access to parameter s2 | | Conditions.cs:1:7:1:16 | call to constructor Object | Conditions.cs:1:7:1:16 | call to constructor Object | | Conditions.cs:1:7:1:16 | call to method | Conditions.cs:1:7:1:16 | this access | | Conditions.cs:1:7:1:16 | this access | Conditions.cs:1:7:1:16 | this access | diff --git a/csharp/ql/test/library-tests/controlflow/graph/ExitElement.expected b/csharp/ql/test/library-tests/controlflow/graph/ExitElement.expected index e3d13701cffd..a6794112ebda 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/ExitElement.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/ExitElement.expected @@ -821,6 +821,42 @@ | Assignments.cs:18:5:20:5 | {...} | Assignments.cs:19:9:19:17 | return ...; | return | | Assignments.cs:19:9:19:17 | return ...; | Assignments.cs:19:9:19:17 | return ...; | return | | Assignments.cs:19:16:19:16 | access to parameter x | Assignments.cs:19:16:19:16 | access to parameter x | normal | +| Assignments.cs:28:5:30:5 | {...} | Assignments.cs:29:9:29:14 | ... = ... | normal | +| Assignments.cs:29:9:29:14 | ... = ... | Assignments.cs:29:9:29:14 | ... = ... | normal | +| Assignments.cs:29:9:29:15 | ...; | Assignments.cs:29:9:29:14 | ... = ... | normal | +| Assignments.cs:29:13:29:14 | 42 | Assignments.cs:29:13:29:14 | 42 | normal | +| Assignments.cs:33:5:36:5 | {...} | Assignments.cs:35:9:35:19 | ... = ... | normal | +| Assignments.cs:34:9:34:14 | ... = ... | Assignments.cs:34:9:34:14 | ... = ... | normal | +| Assignments.cs:34:9:34:15 | ...; | Assignments.cs:34:9:34:14 | ... = ... | normal | +| Assignments.cs:34:13:34:14 | 42 | Assignments.cs:34:13:34:14 | 42 | normal | +| Assignments.cs:35:9:35:19 | ... = ... | Assignments.cs:35:9:35:19 | ... = ... | normal | +| Assignments.cs:35:9:35:20 | ...; | Assignments.cs:35:9:35:19 | ... = ... | normal | +| Assignments.cs:35:13:35:19 | "Hello" | Assignments.cs:35:13:35:19 | "Hello" | normal | +| Assignments.cs:39:5:45:5 | {...} | Assignments.cs:44:9:44:58 | call to method SetParamMulti | normal | +| Assignments.cs:40:9:40:15 | ... ...; | Assignments.cs:40:13:40:14 | Int32 x1 | normal | +| Assignments.cs:40:13:40:14 | Int32 x1 | Assignments.cs:40:13:40:14 | Int32 x1 | normal | +| Assignments.cs:41:9:41:30 | call to method SetParamSingle | Assignments.cs:41:9:41:30 | call to method SetParamSingle | normal | +| Assignments.cs:41:9:41:30 | this access | Assignments.cs:41:9:41:30 | this access | normal | +| Assignments.cs:41:9:41:31 | ...; | Assignments.cs:41:9:41:30 | call to method SetParamSingle | normal | +| Assignments.cs:42:9:42:36 | call to method SetParamSingle | Assignments.cs:42:9:42:36 | call to method SetParamSingle | normal | +| Assignments.cs:42:9:42:36 | this access | Assignments.cs:42:9:42:36 | this access | normal | +| Assignments.cs:42:9:42:37 | ...; | Assignments.cs:42:9:42:36 | call to method SetParamSingle | normal | +| Assignments.cs:42:28:42:35 | access to field IntField | Assignments.cs:42:28:42:35 | access to field IntField | normal | +| Assignments.cs:42:28:42:35 | this access | Assignments.cs:42:28:42:35 | this access | normal | +| Assignments.cs:43:9:43:55 | call to method SetParamMulti | Assignments.cs:43:9:43:55 | call to method SetParamMulti | normal | +| Assignments.cs:43:9:43:55 | this access | Assignments.cs:43:9:43:55 | this access | normal | +| Assignments.cs:43:9:43:56 | ...; | Assignments.cs:43:9:43:55 | call to method SetParamMulti | normal | +| Assignments.cs:43:34:43:37 | null | Assignments.cs:43:34:43:37 | null | normal | +| Assignments.cs:43:44:43:54 | access to field StringField | Assignments.cs:43:44:43:54 | access to field StringField | normal | +| Assignments.cs:43:44:43:54 | this access | Assignments.cs:43:44:43:54 | this access | normal | +| Assignments.cs:44:9:44:58 | call to method SetParamMulti | Assignments.cs:44:9:44:58 | call to method SetParamMulti | normal | +| Assignments.cs:44:9:44:58 | this access | Assignments.cs:44:9:44:58 | this access | normal | +| Assignments.cs:44:9:44:59 | ...; | Assignments.cs:44:9:44:58 | call to method SetParamMulti | normal | +| Assignments.cs:44:27:44:34 | access to field IntField | Assignments.cs:44:27:44:34 | access to field IntField | normal | +| Assignments.cs:44:27:44:34 | this access | Assignments.cs:44:27:44:34 | this access | normal | +| Assignments.cs:44:37:44:40 | null | Assignments.cs:44:37:44:40 | null | normal | +| Assignments.cs:44:47:44:57 | access to field StringField | Assignments.cs:44:47:44:57 | access to field StringField | normal | +| Assignments.cs:44:47:44:57 | this access | Assignments.cs:44:47:44:57 | this access | normal | | BreakInTry.cs:1:7:1:16 | call to constructor Object | BreakInTry.cs:1:7:1:16 | call to constructor Object | normal | | BreakInTry.cs:1:7:1:16 | call to method | BreakInTry.cs:1:7:1:16 | call to method | normal | | BreakInTry.cs:1:7:1:16 | this access | BreakInTry.cs:1:7:1:16 | this access | normal | @@ -1080,11 +1116,107 @@ | ConditionalAccess.cs:35:9:35:24 | call to method Out | ConditionalAccess.cs:35:9:35:24 | call to method Out | normal | | ConditionalAccess.cs:35:9:35:25 | ...; | ConditionalAccess.cs:35:9:35:12 | access to property Prop | null | | ConditionalAccess.cs:35:9:35:25 | ...; | ConditionalAccess.cs:35:9:35:24 | call to method Out | normal | -| ConditionalAccess.cs:41:70:41:71 | access to parameter s1 | ConditionalAccess.cs:41:70:41:71 | access to parameter s1 | normal | -| ConditionalAccess.cs:41:70:41:78 | ... + ... | ConditionalAccess.cs:41:70:41:78 | ... + ... | normal | -| ConditionalAccess.cs:41:70:41:83 | ... + ... | ConditionalAccess.cs:41:70:41:83 | ... + ... | normal | -| ConditionalAccess.cs:41:75:41:78 | ", " | ConditionalAccess.cs:41:75:41:78 | ", " | normal | -| ConditionalAccess.cs:41:82:41:83 | access to parameter s2 | ConditionalAccess.cs:41:82:41:83 | access to parameter s2 | normal | +| ConditionalAccess.cs:42:13:42:28 | {...} | ConditionalAccess.cs:42:15:42:26 | return ...; | return | +| ConditionalAccess.cs:42:15:42:26 | return ...; | ConditionalAccess.cs:42:15:42:26 | return ...; | return | +| ConditionalAccess.cs:42:22:42:25 | null | ConditionalAccess.cs:42:22:42:25 | null | normal | +| ConditionalAccess.cs:43:13:43:15 | {...} | ConditionalAccess.cs:43:13:43:15 | {...} | normal | +| ConditionalAccess.cs:47:5:55:5 | {...} | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | null | +| ConditionalAccess.cs:47:5:55:5 | {...} | ConditionalAccess.cs:54:12:54:29 | ... = ... | normal | +| ConditionalAccess.cs:48:9:48:10 | access to parameter ca | ConditionalAccess.cs:48:9:48:10 | access to parameter ca | non-null | +| ConditionalAccess.cs:48:9:48:10 | access to parameter ca | ConditionalAccess.cs:48:9:48:10 | access to parameter ca | null | +| ConditionalAccess.cs:48:9:48:20 | access to field IntField | ConditionalAccess.cs:48:9:48:10 | access to parameter ca | non-null | +| ConditionalAccess.cs:48:9:48:20 | access to field IntField | ConditionalAccess.cs:48:9:48:10 | access to parameter ca | null | +| ConditionalAccess.cs:48:9:48:26 | ...; | ConditionalAccess.cs:48:9:48:10 | access to parameter ca | null | +| ConditionalAccess.cs:48:9:48:26 | ...; | ConditionalAccess.cs:48:12:48:25 | ... = ... | normal | +| ConditionalAccess.cs:48:12:48:25 | ... = ... | ConditionalAccess.cs:48:9:48:10 | access to parameter ca | null | +| ConditionalAccess.cs:48:12:48:25 | ... = ... | ConditionalAccess.cs:48:12:48:25 | ... = ... | normal | +| ConditionalAccess.cs:48:24:48:25 | 42 | ConditionalAccess.cs:48:24:48:25 | 42 | normal | +| ConditionalAccess.cs:49:9:49:10 | access to parameter ca | ConditionalAccess.cs:49:9:49:10 | access to parameter ca | non-null | +| ConditionalAccess.cs:49:9:49:10 | access to parameter ca | ConditionalAccess.cs:49:9:49:10 | access to parameter ca | null | +| ConditionalAccess.cs:49:9:49:22 | access to property StringProp | ConditionalAccess.cs:49:9:49:10 | access to parameter ca | non-null | +| ConditionalAccess.cs:49:9:49:22 | access to property StringProp | ConditionalAccess.cs:49:9:49:10 | access to parameter ca | null | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:49:9:49:10 | access to parameter ca | null | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:49:12:49:32 | ... = ... | normal | +| ConditionalAccess.cs:49:12:49:32 | ... = ... | ConditionalAccess.cs:49:9:49:10 | access to parameter ca | null | +| ConditionalAccess.cs:49:12:49:32 | ... = ... | ConditionalAccess.cs:49:12:49:32 | ... = ... | normal | +| ConditionalAccess.cs:49:26:49:32 | "Hello" | ConditionalAccess.cs:49:26:49:32 | "Hello" | normal | +| ConditionalAccess.cs:50:9:50:10 | access to parameter ca | ConditionalAccess.cs:50:9:50:10 | access to parameter ca | non-null | +| ConditionalAccess.cs:50:9:50:10 | access to parameter ca | ConditionalAccess.cs:50:9:50:10 | access to parameter ca | null | +| ConditionalAccess.cs:50:9:50:14 | access to indexer | ConditionalAccess.cs:50:9:50:10 | access to parameter ca | null | +| ConditionalAccess.cs:50:9:50:14 | access to indexer | ConditionalAccess.cs:50:13:50:13 | 0 | normal | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:50:9:50:10 | access to parameter ca | null | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:50:12:50:23 | ... = ... | normal | +| ConditionalAccess.cs:50:12:50:23 | ... = ... | ConditionalAccess.cs:50:9:50:10 | access to parameter ca | null | +| ConditionalAccess.cs:50:12:50:23 | ... = ... | ConditionalAccess.cs:50:12:50:23 | ... = ... | normal | +| ConditionalAccess.cs:50:13:50:13 | 0 | ConditionalAccess.cs:50:13:50:13 | 0 | normal | +| ConditionalAccess.cs:50:18:50:23 | "Set0" | ConditionalAccess.cs:50:18:50:23 | "Set0" | normal | +| ConditionalAccess.cs:51:9:51:10 | access to parameter ca | ConditionalAccess.cs:51:9:51:10 | access to parameter ca | non-null | +| ConditionalAccess.cs:51:9:51:10 | access to parameter ca | ConditionalAccess.cs:51:9:51:10 | access to parameter ca | null | +| ConditionalAccess.cs:51:9:51:16 | access to property Prop | ConditionalAccess.cs:51:9:51:10 | access to parameter ca | null | +| ConditionalAccess.cs:51:9:51:16 | access to property Prop | ConditionalAccess.cs:51:9:51:16 | access to property Prop | non-null | +| ConditionalAccess.cs:51:9:51:16 | access to property Prop | ConditionalAccess.cs:51:9:51:16 | access to property Prop | null | +| ConditionalAccess.cs:51:9:51:26 | access to field IntField | ConditionalAccess.cs:51:9:51:10 | access to parameter ca | null | +| ConditionalAccess.cs:51:9:51:26 | access to field IntField | ConditionalAccess.cs:51:9:51:16 | access to property Prop | non-null | +| ConditionalAccess.cs:51:9:51:26 | access to field IntField | ConditionalAccess.cs:51:9:51:16 | access to property Prop | null | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:51:9:51:10 | access to parameter ca | null | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:51:9:51:16 | access to property Prop | null | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:51:18:51:31 | ... = ... | normal | +| ConditionalAccess.cs:51:18:51:31 | ... = ... | ConditionalAccess.cs:51:9:51:10 | access to parameter ca | null | +| ConditionalAccess.cs:51:18:51:31 | ... = ... | ConditionalAccess.cs:51:9:51:16 | access to property Prop | null | +| ConditionalAccess.cs:51:18:51:31 | ... = ... | ConditionalAccess.cs:51:18:51:31 | ... = ... | normal | +| ConditionalAccess.cs:51:30:51:31 | 84 | ConditionalAccess.cs:51:30:51:31 | 84 | normal | +| ConditionalAccess.cs:52:9:52:10 | access to parameter ca | ConditionalAccess.cs:52:9:52:10 | access to parameter ca | non-null | +| ConditionalAccess.cs:52:9:52:10 | access to parameter ca | ConditionalAccess.cs:52:9:52:10 | access to parameter ca | null | +| ConditionalAccess.cs:52:9:52:16 | access to property Prop | ConditionalAccess.cs:52:9:52:10 | access to parameter ca | null | +| ConditionalAccess.cs:52:9:52:16 | access to property Prop | ConditionalAccess.cs:52:9:52:16 | access to property Prop | non-null | +| ConditionalAccess.cs:52:9:52:16 | access to property Prop | ConditionalAccess.cs:52:9:52:16 | access to property Prop | null | +| ConditionalAccess.cs:52:9:52:28 | access to property StringProp | ConditionalAccess.cs:52:9:52:10 | access to parameter ca | null | +| ConditionalAccess.cs:52:9:52:28 | access to property StringProp | ConditionalAccess.cs:52:9:52:16 | access to property Prop | non-null | +| ConditionalAccess.cs:52:9:52:28 | access to property StringProp | ConditionalAccess.cs:52:9:52:16 | access to property Prop | null | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:52:9:52:10 | access to parameter ca | null | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:52:9:52:16 | access to property Prop | null | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:52:18:52:38 | ... = ... | normal | +| ConditionalAccess.cs:52:18:52:38 | ... = ... | ConditionalAccess.cs:52:9:52:10 | access to parameter ca | null | +| ConditionalAccess.cs:52:18:52:38 | ... = ... | ConditionalAccess.cs:52:9:52:16 | access to property Prop | null | +| ConditionalAccess.cs:52:18:52:38 | ... = ... | ConditionalAccess.cs:52:18:52:38 | ... = ... | normal | +| ConditionalAccess.cs:52:32:52:38 | "World" | ConditionalAccess.cs:52:32:52:38 | "World" | normal | +| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | non-null | +| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | non-null | +| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | null | +| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | null | +| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | non-null | +| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | null | +| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | null | +| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:53:9:53:20 | access to field IntField | normal | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | null | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:53:12:53:25 | ... = ... | normal | +| ConditionalAccess.cs:53:12:53:25 | ... - ... | ConditionalAccess.cs:53:12:53:25 | ... - ... | normal | +| ConditionalAccess.cs:53:12:53:25 | ... -= ... | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | null | +| ConditionalAccess.cs:53:12:53:25 | ... -= ... | ConditionalAccess.cs:53:12:53:25 | ... = ... | normal | +| ConditionalAccess.cs:53:12:53:25 | ... = ... | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | null | +| ConditionalAccess.cs:53:12:53:25 | ... = ... | ConditionalAccess.cs:53:12:53:25 | ... = ... | normal | +| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:53:25:53:25 | 1 | normal | +| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | non-null | +| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | non-null | +| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | null | +| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | null | +| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | non-null | +| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | null | +| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | null | +| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | normal | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | null | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:54:12:54:29 | ... = ... | normal | +| ConditionalAccess.cs:54:12:54:29 | ... + ... | ConditionalAccess.cs:54:12:54:29 | ... + ... | normal | +| ConditionalAccess.cs:54:12:54:29 | ... += ... | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | null | +| ConditionalAccess.cs:54:12:54:29 | ... += ... | ConditionalAccess.cs:54:12:54:29 | ... = ... | normal | +| ConditionalAccess.cs:54:12:54:29 | ... = ... | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | null | +| ConditionalAccess.cs:54:12:54:29 | ... = ... | ConditionalAccess.cs:54:12:54:29 | ... = ... | normal | +| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:54:27:54:29 | "!" | normal | +| ConditionalAccess.cs:60:70:60:71 | access to parameter s1 | ConditionalAccess.cs:60:70:60:71 | access to parameter s1 | normal | +| ConditionalAccess.cs:60:70:60:78 | ... + ... | ConditionalAccess.cs:60:70:60:78 | ... + ... | normal | +| ConditionalAccess.cs:60:70:60:83 | ... + ... | ConditionalAccess.cs:60:70:60:83 | ... + ... | normal | +| ConditionalAccess.cs:60:75:60:78 | ", " | ConditionalAccess.cs:60:75:60:78 | ", " | normal | +| ConditionalAccess.cs:60:82:60:83 | access to parameter s2 | ConditionalAccess.cs:60:82:60:83 | access to parameter s2 | normal | | Conditions.cs:1:7:1:16 | call to constructor Object | Conditions.cs:1:7:1:16 | call to constructor Object | normal | | Conditions.cs:1:7:1:16 | call to method | Conditions.cs:1:7:1:16 | call to method | normal | | Conditions.cs:1:7:1:16 | this access | Conditions.cs:1:7:1:16 | this access | normal | diff --git a/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.expected b/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.expected index b764e2fb2a56..4ce98d5096ff 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/NodeGraph.expected @@ -20,10 +20,11 @@ | AccessorCalls.cs:10:10:10:11 | exit M1 (normal) | AccessorCalls.cs:10:10:10:11 | exit M1 | | | AccessorCalls.cs:11:5:17:5 | {...} | AccessorCalls.cs:12:9:12:32 | ...; | | | AccessorCalls.cs:12:9:12:12 | this access | AccessorCalls.cs:12:22:12:25 | this access | | +| AccessorCalls.cs:12:9:12:18 | access to field Field | AccessorCalls.cs:12:9:12:31 | ... = ... | | | AccessorCalls.cs:12:9:12:31 | ... = ... | AccessorCalls.cs:13:9:13:30 | ...; | | | AccessorCalls.cs:12:9:12:32 | ...; | AccessorCalls.cs:12:9:12:12 | this access | | | AccessorCalls.cs:12:22:12:25 | this access | AccessorCalls.cs:12:22:12:31 | access to field Field | | -| AccessorCalls.cs:12:22:12:31 | access to field Field | AccessorCalls.cs:12:9:12:31 | ... = ... | | +| AccessorCalls.cs:12:22:12:31 | access to field Field | AccessorCalls.cs:12:9:12:18 | access to field Field | | | AccessorCalls.cs:13:9:13:12 | this access | AccessorCalls.cs:13:21:13:24 | this access | | | AccessorCalls.cs:13:9:13:17 | access to property Prop | AccessorCalls.cs:13:9:13:29 | ... = ... | | | AccessorCalls.cs:13:9:13:29 | ... = ... | AccessorCalls.cs:14:9:14:26 | ...; | | @@ -53,11 +54,12 @@ | AccessorCalls.cs:20:5:26:5 | {...} | AccessorCalls.cs:21:9:21:36 | ...; | | | AccessorCalls.cs:21:9:21:12 | this access | AccessorCalls.cs:21:9:21:14 | access to field x | | | AccessorCalls.cs:21:9:21:14 | access to field x | AccessorCalls.cs:21:24:21:27 | this access | | +| AccessorCalls.cs:21:9:21:20 | access to field Field | AccessorCalls.cs:21:9:21:35 | ... = ... | | | AccessorCalls.cs:21:9:21:35 | ... = ... | AccessorCalls.cs:22:9:22:34 | ...; | | | AccessorCalls.cs:21:9:21:36 | ...; | AccessorCalls.cs:21:9:21:12 | this access | | | AccessorCalls.cs:21:24:21:27 | this access | AccessorCalls.cs:21:24:21:29 | access to field x | | | AccessorCalls.cs:21:24:21:29 | access to field x | AccessorCalls.cs:21:24:21:35 | access to field Field | | -| AccessorCalls.cs:21:24:21:35 | access to field Field | AccessorCalls.cs:21:9:21:35 | ... = ... | | +| AccessorCalls.cs:21:24:21:35 | access to field Field | AccessorCalls.cs:21:9:21:20 | access to field Field | | | AccessorCalls.cs:22:9:22:12 | this access | AccessorCalls.cs:22:9:22:14 | access to field x | | | AccessorCalls.cs:22:9:22:14 | access to field x | AccessorCalls.cs:22:23:22:26 | this access | | | AccessorCalls.cs:22:9:22:19 | access to property Prop | AccessorCalls.cs:22:9:22:33 | ... = ... | | @@ -128,8 +130,9 @@ | AccessorCalls.cs:43:5:47:5 | {...} | AccessorCalls.cs:44:9:44:33 | ...; | | | AccessorCalls.cs:44:9:44:12 | this access | AccessorCalls.cs:44:9:44:12 | this access | | | AccessorCalls.cs:44:9:44:12 | this access | AccessorCalls.cs:44:9:44:18 | access to field Field | | +| AccessorCalls.cs:44:9:44:18 | access to field Field | AccessorCalls.cs:44:9:44:32 | ... = ... | | | AccessorCalls.cs:44:9:44:18 | access to field Field | AccessorCalls.cs:44:23:44:26 | this access | | -| AccessorCalls.cs:44:9:44:32 | ... + ... | AccessorCalls.cs:44:9:44:32 | ... = ... | | +| AccessorCalls.cs:44:9:44:32 | ... + ... | AccessorCalls.cs:44:9:44:18 | access to field Field | | | AccessorCalls.cs:44:9:44:32 | ... = ... | AccessorCalls.cs:45:9:45:31 | ...; | | | AccessorCalls.cs:44:9:44:33 | ...; | AccessorCalls.cs:44:9:44:12 | this access | | | AccessorCalls.cs:44:23:44:26 | this access | AccessorCalls.cs:44:23:44:32 | access to field Field | | @@ -162,8 +165,9 @@ | AccessorCalls.cs:51:9:51:12 | this access | AccessorCalls.cs:51:9:51:14 | access to field x | | | AccessorCalls.cs:51:9:51:14 | access to field x | AccessorCalls.cs:51:9:51:12 | this access | | | AccessorCalls.cs:51:9:51:14 | access to field x | AccessorCalls.cs:51:9:51:20 | access to field Field | | +| AccessorCalls.cs:51:9:51:20 | access to field Field | AccessorCalls.cs:51:9:51:36 | ... = ... | | | AccessorCalls.cs:51:9:51:20 | access to field Field | AccessorCalls.cs:51:25:51:28 | this access | | -| AccessorCalls.cs:51:9:51:36 | ... + ... | AccessorCalls.cs:51:9:51:36 | ... = ... | | +| AccessorCalls.cs:51:9:51:36 | ... + ... | AccessorCalls.cs:51:9:51:20 | access to field Field | | | AccessorCalls.cs:51:9:51:36 | ... = ... | AccessorCalls.cs:52:9:52:35 | ...; | | | AccessorCalls.cs:51:9:51:37 | ...; | AccessorCalls.cs:51:9:51:12 | this access | | | AccessorCalls.cs:51:25:51:28 | this access | AccessorCalls.cs:51:25:51:30 | access to field x | | @@ -203,13 +207,14 @@ | AccessorCalls.cs:58:9:58:85 | ... = ... | AccessorCalls.cs:56:10:56:11 | exit M7 (normal) | | | AccessorCalls.cs:58:9:58:86 | ...; | AccessorCalls.cs:58:10:58:13 | this access | | | AccessorCalls.cs:58:10:58:13 | this access | AccessorCalls.cs:58:22:58:25 | this access | | +| AccessorCalls.cs:58:10:58:19 | access to field Field | AccessorCalls.cs:58:22:58:30 | access to property Prop | | | AccessorCalls.cs:58:22:58:25 | this access | AccessorCalls.cs:58:37:58:40 | this access | | | AccessorCalls.cs:58:22:58:30 | access to property Prop | AccessorCalls.cs:58:37:58:43 | access to indexer | | | AccessorCalls.cs:58:33:58:44 | (..., ...) | AccessorCalls.cs:58:9:58:45 | (..., ...) | | | AccessorCalls.cs:58:37:58:40 | this access | AccessorCalls.cs:58:42:58:42 | 0 | | | AccessorCalls.cs:58:37:58:43 | access to indexer | AccessorCalls.cs:58:9:58:85 | ... = ... | | | AccessorCalls.cs:58:42:58:42 | 0 | AccessorCalls.cs:58:33:58:44 | (..., ...) | | -| AccessorCalls.cs:58:49:58:85 | (..., ...) | AccessorCalls.cs:58:22:58:30 | access to property Prop | | +| AccessorCalls.cs:58:49:58:85 | (..., ...) | AccessorCalls.cs:58:10:58:19 | access to field Field | | | AccessorCalls.cs:58:50:58:53 | this access | AccessorCalls.cs:58:50:58:59 | access to field Field | | | AccessorCalls.cs:58:50:58:59 | access to field Field | AccessorCalls.cs:58:62:58:65 | this access | | | AccessorCalls.cs:58:62:58:65 | this access | AccessorCalls.cs:58:62:58:70 | access to property Prop | | @@ -227,6 +232,7 @@ | AccessorCalls.cs:63:9:63:98 | ...; | AccessorCalls.cs:63:10:63:13 | this access | | | AccessorCalls.cs:63:10:63:13 | this access | AccessorCalls.cs:63:10:63:15 | access to field x | | | AccessorCalls.cs:63:10:63:15 | access to field x | AccessorCalls.cs:63:24:63:27 | this access | | +| AccessorCalls.cs:63:10:63:21 | access to field Field | AccessorCalls.cs:63:24:63:34 | access to property Prop | | | AccessorCalls.cs:63:24:63:27 | this access | AccessorCalls.cs:63:24:63:29 | access to field x | | | AccessorCalls.cs:63:24:63:29 | access to field x | AccessorCalls.cs:63:41:63:44 | this access | | | AccessorCalls.cs:63:24:63:34 | access to property Prop | AccessorCalls.cs:63:41:63:49 | access to indexer | | @@ -235,7 +241,7 @@ | AccessorCalls.cs:63:41:63:46 | access to field x | AccessorCalls.cs:63:48:63:48 | 0 | | | AccessorCalls.cs:63:41:63:49 | access to indexer | AccessorCalls.cs:63:9:63:97 | ... = ... | | | AccessorCalls.cs:63:48:63:48 | 0 | AccessorCalls.cs:63:37:63:50 | (..., ...) | | -| AccessorCalls.cs:63:55:63:97 | (..., ...) | AccessorCalls.cs:63:24:63:34 | access to property Prop | | +| AccessorCalls.cs:63:55:63:97 | (..., ...) | AccessorCalls.cs:63:10:63:21 | access to field Field | | | AccessorCalls.cs:63:56:63:59 | this access | AccessorCalls.cs:63:56:63:61 | access to field x | | | AccessorCalls.cs:63:56:63:61 | access to field x | AccessorCalls.cs:63:56:63:67 | access to field Field | | | AccessorCalls.cs:63:56:63:67 | access to field Field | AccessorCalls.cs:63:70:63:73 | this access | | @@ -847,6 +853,48 @@ | Assignments.cs:18:5:20:5 | {...} | Assignments.cs:19:16:19:16 | access to parameter x | | | Assignments.cs:19:9:19:17 | return ...; | Assignments.cs:17:40:17:40 | exit + (normal) | return | | Assignments.cs:19:16:19:16 | access to parameter x | Assignments.cs:19:9:19:17 | return ...; | | +| Assignments.cs:27:10:27:23 | enter SetParamSingle | Assignments.cs:28:5:30:5 | {...} | | +| Assignments.cs:27:10:27:23 | exit SetParamSingle (normal) | Assignments.cs:27:10:27:23 | exit SetParamSingle | | +| Assignments.cs:28:5:30:5 | {...} | Assignments.cs:29:9:29:15 | ...; | | +| Assignments.cs:29:9:29:14 | ... = ... | Assignments.cs:27:10:27:23 | exit SetParamSingle (normal) | | +| Assignments.cs:29:9:29:15 | ...; | Assignments.cs:29:13:29:14 | 42 | | +| Assignments.cs:29:13:29:14 | 42 | Assignments.cs:29:9:29:14 | ... = ... | | +| Assignments.cs:32:10:32:22 | enter SetParamMulti | Assignments.cs:33:5:36:5 | {...} | | +| Assignments.cs:32:10:32:22 | exit SetParamMulti (normal) | Assignments.cs:32:10:32:22 | exit SetParamMulti | | +| Assignments.cs:33:5:36:5 | {...} | Assignments.cs:34:9:34:15 | ...; | | +| Assignments.cs:34:9:34:14 | ... = ... | Assignments.cs:35:9:35:20 | ...; | | +| Assignments.cs:34:9:34:15 | ...; | Assignments.cs:34:13:34:14 | 42 | | +| Assignments.cs:34:13:34:14 | 42 | Assignments.cs:34:9:34:14 | ... = ... | | +| Assignments.cs:35:9:35:19 | ... = ... | Assignments.cs:32:10:32:22 | exit SetParamMulti (normal) | | +| Assignments.cs:35:9:35:20 | ...; | Assignments.cs:35:13:35:19 | "Hello" | | +| Assignments.cs:35:13:35:19 | "Hello" | Assignments.cs:35:9:35:19 | ... = ... | | +| Assignments.cs:38:10:38:11 | enter M2 | Assignments.cs:39:5:45:5 | {...} | | +| Assignments.cs:38:10:38:11 | exit M2 (normal) | Assignments.cs:38:10:38:11 | exit M2 | | +| Assignments.cs:39:5:45:5 | {...} | Assignments.cs:40:9:40:15 | ... ...; | | +| Assignments.cs:40:9:40:15 | ... ...; | Assignments.cs:40:13:40:14 | Int32 x1 | | +| Assignments.cs:40:13:40:14 | Int32 x1 | Assignments.cs:41:9:41:31 | ...; | | +| Assignments.cs:41:9:41:30 | call to method SetParamSingle | Assignments.cs:42:9:42:37 | ...; | | +| Assignments.cs:41:9:41:30 | this access | Assignments.cs:41:9:41:30 | call to method SetParamSingle | | +| Assignments.cs:41:9:41:31 | ...; | Assignments.cs:41:9:41:30 | this access | | +| Assignments.cs:42:9:42:36 | call to method SetParamSingle | Assignments.cs:43:9:43:56 | ...; | | +| Assignments.cs:42:9:42:36 | this access | Assignments.cs:42:28:42:35 | this access | | +| Assignments.cs:42:9:42:37 | ...; | Assignments.cs:42:9:42:36 | this access | | +| Assignments.cs:42:28:42:35 | access to field IntField | Assignments.cs:42:9:42:36 | call to method SetParamSingle | | +| Assignments.cs:42:28:42:35 | this access | Assignments.cs:42:28:42:35 | access to field IntField | | +| Assignments.cs:43:9:43:55 | call to method SetParamMulti | Assignments.cs:44:9:44:59 | ...; | | +| Assignments.cs:43:9:43:55 | this access | Assignments.cs:43:34:43:37 | null | | +| Assignments.cs:43:9:43:56 | ...; | Assignments.cs:43:9:43:55 | this access | | +| Assignments.cs:43:34:43:37 | null | Assignments.cs:43:44:43:54 | this access | | +| Assignments.cs:43:44:43:54 | access to field StringField | Assignments.cs:43:9:43:55 | call to method SetParamMulti | | +| Assignments.cs:43:44:43:54 | this access | Assignments.cs:43:44:43:54 | access to field StringField | | +| Assignments.cs:44:9:44:58 | call to method SetParamMulti | Assignments.cs:38:10:38:11 | exit M2 (normal) | | +| Assignments.cs:44:9:44:58 | this access | Assignments.cs:44:27:44:34 | this access | | +| Assignments.cs:44:9:44:59 | ...; | Assignments.cs:44:9:44:58 | this access | | +| Assignments.cs:44:27:44:34 | access to field IntField | Assignments.cs:44:37:44:40 | null | | +| Assignments.cs:44:27:44:34 | this access | Assignments.cs:44:27:44:34 | access to field IntField | | +| Assignments.cs:44:37:44:40 | null | Assignments.cs:44:47:44:57 | this access | | +| Assignments.cs:44:47:44:57 | access to field StringField | Assignments.cs:44:9:44:58 | call to method SetParamMulti | | +| Assignments.cs:44:47:44:57 | this access | Assignments.cs:44:47:44:57 | access to field StringField | | | BreakInTry.cs:1:7:1:16 | call to constructor Object | BreakInTry.cs:1:7:1:16 | {...} | | | BreakInTry.cs:1:7:1:16 | call to method | BreakInTry.cs:1:7:1:16 | call to constructor Object | | | BreakInTry.cs:1:7:1:16 | enter BreakInTry | BreakInTry.cs:1:7:1:16 | this access | | @@ -1093,13 +1141,79 @@ | ConditionalAccess.cs:35:9:35:12 | this access | ConditionalAccess.cs:35:9:35:12 | access to property Prop | | | ConditionalAccess.cs:35:9:35:24 | call to method Out | ConditionalAccess.cs:32:10:32:11 | exit M8 (normal) | | | ConditionalAccess.cs:35:9:35:25 | ...; | ConditionalAccess.cs:35:9:35:12 | this access | | -| ConditionalAccess.cs:41:26:41:38 | enter CommaJoinWith | ConditionalAccess.cs:41:70:41:71 | access to parameter s1 | | -| ConditionalAccess.cs:41:26:41:38 | exit CommaJoinWith (normal) | ConditionalAccess.cs:41:26:41:38 | exit CommaJoinWith | | -| ConditionalAccess.cs:41:70:41:71 | access to parameter s1 | ConditionalAccess.cs:41:75:41:78 | ", " | | -| ConditionalAccess.cs:41:70:41:78 | ... + ... | ConditionalAccess.cs:41:82:41:83 | access to parameter s2 | | -| ConditionalAccess.cs:41:70:41:83 | ... + ... | ConditionalAccess.cs:41:26:41:38 | exit CommaJoinWith (normal) | | -| ConditionalAccess.cs:41:75:41:78 | ", " | ConditionalAccess.cs:41:70:41:78 | ... + ... | | -| ConditionalAccess.cs:41:82:41:83 | access to parameter s2 | ConditionalAccess.cs:41:70:41:83 | ... + ... | | +| ConditionalAccess.cs:42:9:42:11 | enter get_Item | ConditionalAccess.cs:42:13:42:28 | {...} | | +| ConditionalAccess.cs:42:9:42:11 | exit get_Item (normal) | ConditionalAccess.cs:42:9:42:11 | exit get_Item | | +| ConditionalAccess.cs:42:13:42:28 | {...} | ConditionalAccess.cs:42:22:42:25 | null | | +| ConditionalAccess.cs:42:15:42:26 | return ...; | ConditionalAccess.cs:42:9:42:11 | exit get_Item (normal) | return | +| ConditionalAccess.cs:42:22:42:25 | null | ConditionalAccess.cs:42:15:42:26 | return ...; | | +| ConditionalAccess.cs:43:9:43:11 | enter set_Item | ConditionalAccess.cs:43:13:43:15 | {...} | | +| ConditionalAccess.cs:43:9:43:11 | exit set_Item (normal) | ConditionalAccess.cs:43:9:43:11 | exit set_Item | | +| ConditionalAccess.cs:43:13:43:15 | {...} | ConditionalAccess.cs:43:9:43:11 | exit set_Item (normal) | | +| ConditionalAccess.cs:46:10:46:11 | enter M9 | ConditionalAccess.cs:47:5:55:5 | {...} | | +| ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | ConditionalAccess.cs:46:10:46:11 | exit M9 | | +| ConditionalAccess.cs:47:5:55:5 | {...} | ConditionalAccess.cs:48:9:48:26 | ...; | | +| ConditionalAccess.cs:48:9:48:10 | access to parameter ca | ConditionalAccess.cs:48:24:48:25 | 42 | non-null | +| ConditionalAccess.cs:48:9:48:10 | access to parameter ca | ConditionalAccess.cs:49:9:49:33 | ...; | null | +| ConditionalAccess.cs:48:9:48:20 | access to field IntField | ConditionalAccess.cs:48:12:48:25 | ... = ... | | +| ConditionalAccess.cs:48:9:48:26 | ...; | ConditionalAccess.cs:48:9:48:10 | access to parameter ca | | +| ConditionalAccess.cs:48:12:48:25 | ... = ... | ConditionalAccess.cs:49:9:49:33 | ...; | | +| ConditionalAccess.cs:48:24:48:25 | 42 | ConditionalAccess.cs:48:9:48:20 | access to field IntField | | +| ConditionalAccess.cs:49:9:49:10 | access to parameter ca | ConditionalAccess.cs:49:26:49:32 | "Hello" | non-null | +| ConditionalAccess.cs:49:9:49:10 | access to parameter ca | ConditionalAccess.cs:50:9:50:24 | ...; | null | +| ConditionalAccess.cs:49:9:49:22 | access to property StringProp | ConditionalAccess.cs:49:12:49:32 | ... = ... | | +| ConditionalAccess.cs:49:9:49:33 | ...; | ConditionalAccess.cs:49:9:49:10 | access to parameter ca | | +| ConditionalAccess.cs:49:12:49:32 | ... = ... | ConditionalAccess.cs:50:9:50:24 | ...; | | +| ConditionalAccess.cs:49:26:49:32 | "Hello" | ConditionalAccess.cs:49:9:49:22 | access to property StringProp | | +| ConditionalAccess.cs:50:9:50:10 | access to parameter ca | ConditionalAccess.cs:50:13:50:13 | 0 | non-null | +| ConditionalAccess.cs:50:9:50:10 | access to parameter ca | ConditionalAccess.cs:51:9:51:32 | ...; | null | +| ConditionalAccess.cs:50:9:50:14 | access to indexer | ConditionalAccess.cs:50:12:50:23 | ... = ... | | +| ConditionalAccess.cs:50:9:50:24 | ...; | ConditionalAccess.cs:50:9:50:10 | access to parameter ca | | +| ConditionalAccess.cs:50:12:50:23 | ... = ... | ConditionalAccess.cs:51:9:51:32 | ...; | | +| ConditionalAccess.cs:50:13:50:13 | 0 | ConditionalAccess.cs:50:18:50:23 | "Set0" | | +| ConditionalAccess.cs:50:18:50:23 | "Set0" | ConditionalAccess.cs:50:9:50:14 | access to indexer | | +| ConditionalAccess.cs:51:9:51:10 | access to parameter ca | ConditionalAccess.cs:51:9:51:16 | access to property Prop | non-null | +| ConditionalAccess.cs:51:9:51:10 | access to parameter ca | ConditionalAccess.cs:52:9:52:39 | ...; | null | +| ConditionalAccess.cs:51:9:51:16 | access to property Prop | ConditionalAccess.cs:51:30:51:31 | 84 | non-null | +| ConditionalAccess.cs:51:9:51:16 | access to property Prop | ConditionalAccess.cs:52:9:52:39 | ...; | null | +| ConditionalAccess.cs:51:9:51:26 | access to field IntField | ConditionalAccess.cs:51:18:51:31 | ... = ... | | +| ConditionalAccess.cs:51:9:51:32 | ...; | ConditionalAccess.cs:51:9:51:10 | access to parameter ca | | +| ConditionalAccess.cs:51:18:51:31 | ... = ... | ConditionalAccess.cs:52:9:52:39 | ...; | | +| ConditionalAccess.cs:51:30:51:31 | 84 | ConditionalAccess.cs:51:9:51:26 | access to field IntField | | +| ConditionalAccess.cs:52:9:52:10 | access to parameter ca | ConditionalAccess.cs:52:9:52:16 | access to property Prop | non-null | +| ConditionalAccess.cs:52:9:52:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:26 | ...; | null | +| ConditionalAccess.cs:52:9:52:16 | access to property Prop | ConditionalAccess.cs:52:32:52:38 | "World" | non-null | +| ConditionalAccess.cs:52:9:52:16 | access to property Prop | ConditionalAccess.cs:53:9:53:26 | ...; | null | +| ConditionalAccess.cs:52:9:52:28 | access to property StringProp | ConditionalAccess.cs:52:18:52:38 | ... = ... | | +| ConditionalAccess.cs:52:9:52:39 | ...; | ConditionalAccess.cs:52:9:52:10 | access to parameter ca | | +| ConditionalAccess.cs:52:18:52:38 | ... = ... | ConditionalAccess.cs:53:9:53:26 | ...; | | +| ConditionalAccess.cs:52:32:52:38 | "World" | ConditionalAccess.cs:52:9:52:28 | access to property StringProp | | +| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | non-null | +| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:9:53:20 | access to field IntField | non-null | +| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:53:25:53:25 | 1 | null | +| ConditionalAccess.cs:53:9:53:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:30 | ...; | null | +| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:53:12:53:25 | ... = ... | | +| ConditionalAccess.cs:53:9:53:20 | access to field IntField | ConditionalAccess.cs:53:25:53:25 | 1 | | +| ConditionalAccess.cs:53:9:53:26 | ...; | ConditionalAccess.cs:53:9:53:10 | access to parameter ca | | +| ConditionalAccess.cs:53:12:53:25 | ... - ... | ConditionalAccess.cs:53:9:53:20 | access to field IntField | | +| ConditionalAccess.cs:53:12:53:25 | ... = ... | ConditionalAccess.cs:54:9:54:30 | ...; | | +| ConditionalAccess.cs:53:25:53:25 | 1 | ConditionalAccess.cs:53:12:53:25 | ... - ... | | +| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | null | +| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | non-null | +| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | non-null | +| ConditionalAccess.cs:54:9:54:10 | access to parameter ca | ConditionalAccess.cs:54:27:54:29 | "!" | null | +| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:54:12:54:29 | ... = ... | | +| ConditionalAccess.cs:54:9:54:22 | access to property StringProp | ConditionalAccess.cs:54:27:54:29 | "!" | | +| ConditionalAccess.cs:54:9:54:30 | ...; | ConditionalAccess.cs:54:9:54:10 | access to parameter ca | | +| ConditionalAccess.cs:54:12:54:29 | ... + ... | ConditionalAccess.cs:54:9:54:22 | access to property StringProp | | +| ConditionalAccess.cs:54:12:54:29 | ... = ... | ConditionalAccess.cs:46:10:46:11 | exit M9 (normal) | | +| ConditionalAccess.cs:54:27:54:29 | "!" | ConditionalAccess.cs:54:12:54:29 | ... + ... | | +| ConditionalAccess.cs:60:26:60:38 | enter CommaJoinWith | ConditionalAccess.cs:60:70:60:71 | access to parameter s1 | | +| ConditionalAccess.cs:60:26:60:38 | exit CommaJoinWith (normal) | ConditionalAccess.cs:60:26:60:38 | exit CommaJoinWith | | +| ConditionalAccess.cs:60:70:60:71 | access to parameter s1 | ConditionalAccess.cs:60:75:60:78 | ", " | | +| ConditionalAccess.cs:60:70:60:78 | ... + ... | ConditionalAccess.cs:60:82:60:83 | access to parameter s2 | | +| ConditionalAccess.cs:60:70:60:83 | ... + ... | ConditionalAccess.cs:60:26:60:38 | exit CommaJoinWith (normal) | | +| ConditionalAccess.cs:60:75:60:78 | ", " | ConditionalAccess.cs:60:70:60:78 | ... + ... | | +| ConditionalAccess.cs:60:82:60:83 | access to parameter s2 | ConditionalAccess.cs:60:70:60:83 | ... + ... | | | Conditions.cs:1:7:1:16 | call to constructor Object | Conditions.cs:1:7:1:16 | {...} | | | Conditions.cs:1:7:1:16 | call to method | Conditions.cs:1:7:1:16 | call to constructor Object | | | Conditions.cs:1:7:1:16 | enter Conditions | Conditions.cs:1:7:1:16 | this access | | @@ -2007,14 +2121,16 @@ | Finally.cs:209:25:209:47 | throw ...; | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception | | Finally.cs:209:31:209:46 | object creation of type ExceptionC | Finally.cs:209:25:209:47 | throw ...; | | | Finally.cs:211:13:211:16 | this access | Finally.cs:211:26:211:28 | "0" | | +| Finally.cs:211:13:211:22 | access to field Field | Finally.cs:211:13:211:28 | ... = ... | | | Finally.cs:211:13:211:28 | ... = ... | Finally.cs:195:10:195:12 | exit M10 (abnormal) | exception | | Finally.cs:211:13:211:28 | ... = ... | Finally.cs:213:9:213:25 | ...; | | | Finally.cs:211:13:211:29 | ...; | Finally.cs:211:13:211:16 | this access | | -| Finally.cs:211:26:211:28 | "0" | Finally.cs:211:13:211:28 | ... = ... | | +| Finally.cs:211:26:211:28 | "0" | Finally.cs:211:13:211:22 | access to field Field | | | Finally.cs:213:9:213:12 | this access | Finally.cs:213:22:213:24 | "1" | | +| Finally.cs:213:9:213:18 | access to field Field | Finally.cs:213:9:213:24 | ... = ... | | | 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 | | -| Finally.cs:213:22:213:24 | "1" | Finally.cs:213:9:213:24 | ... = ... | | +| Finally.cs:213:22:213:24 | "1" | Finally.cs:213:9:213:18 | access to field Field | | | Finally.cs:216:10:216:12 | enter M11 | Finally.cs:217:5:231:5 | {...} | | | Finally.cs:216:10:216:12 | exit M11 (normal) | Finally.cs:216:10:216:12 | exit M11 | | | Finally.cs:217:5:231:5 | {...} | Finally.cs:218:9:229:9 | try {...} ... | | @@ -2164,10 +2280,11 @@ | Initializers.cs:3:7:3:18 | exit (normal) | Initializers.cs:3:7:3:18 | exit | | | Initializers.cs:3:7:3:18 | exit Initializers (normal) | Initializers.cs:3:7:3:18 | exit Initializers | | | Initializers.cs:3:7:3:18 | {...} | Initializers.cs:3:7:3:18 | exit Initializers (normal) | | +| Initializers.cs:5:9:5:9 | access to field F | Initializers.cs:5:9:5:17 | ... = ... | | | Initializers.cs:5:9:5:9 | this access | Initializers.cs:5:13:5:13 | access to field H | | | Initializers.cs:5:9:5:17 | ... = ... | Initializers.cs:6:9:6:9 | this access | | | Initializers.cs:5:13:5:13 | access to field H | Initializers.cs:5:17:5:17 | 1 | | -| Initializers.cs:5:13:5:17 | ... + ... | Initializers.cs:5:9:5:17 | ... = ... | | +| Initializers.cs:5:13:5:17 | ... + ... | Initializers.cs:5:9:5:9 | access to field F | | | Initializers.cs:5:17:5:17 | 1 | Initializers.cs:5:13:5:17 | ... + ... | | | Initializers.cs:6:9:6:9 | access to property G | Initializers.cs:6:25:6:31 | ... = ... | | | Initializers.cs:6:9:6:9 | this access | Initializers.cs:6:27:6:27 | access to field H | | @@ -2195,8 +2312,9 @@ | Initializers.cs:14:17:14:53 | object creation of type Initializers | Initializers.cs:14:44:14:44 | 0 | | | Initializers.cs:14:34:14:35 | "" | Initializers.cs:14:17:14:53 | object creation of type Initializers | | | Initializers.cs:14:38:14:53 | { ..., ... } | Initializers.cs:14:13:14:53 | Initializers i = ... | | +| Initializers.cs:14:40:14:40 | access to field F | Initializers.cs:14:40:14:44 | ... = ... | | | Initializers.cs:14:40:14:44 | ... = ... | Initializers.cs:14:51:14:51 | 1 | | -| Initializers.cs:14:44:14:44 | 0 | Initializers.cs:14:40:14:44 | ... = ... | | +| Initializers.cs:14:44:14:44 | 0 | Initializers.cs:14:40:14:40 | access to field F | | | Initializers.cs:14:47:14:47 | access to property G | Initializers.cs:14:47:14:51 | ... = ... | | | Initializers.cs:14:47:14:51 | ... = ... | Initializers.cs:14:38:14:53 | { ..., ... } | | | Initializers.cs:14:51:14:51 | 1 | Initializers.cs:14:47:14:47 | access to property G | | @@ -2208,10 +2326,11 @@ | Initializers.cs:15:39:15:39 | access to local variable i | Initializers.cs:15:59:15:60 | "" | | | Initializers.cs:15:42:15:61 | object creation of type Initializers | Initializers.cs:15:37:15:63 | { ..., ... } | | | Initializers.cs:15:59:15:60 | "" | Initializers.cs:15:42:15:61 | object creation of type Initializers | | +| Initializers.cs:18:16:18:16 | access to field H | Initializers.cs:18:16:18:20 | ... = ... | | | Initializers.cs:18:16:18:16 | enter H | Initializers.cs:18:20:18:20 | 1 | | | Initializers.cs:18:16:18:16 | exit H (normal) | Initializers.cs:18:16:18:16 | exit H | | | Initializers.cs:18:16:18:20 | ... = ... | Initializers.cs:18:16:18:16 | exit H (normal) | | -| Initializers.cs:18:20:18:20 | 1 | Initializers.cs:18:16:18:20 | ... = ... | | +| Initializers.cs:18:20:18:20 | 1 | Initializers.cs:18:16:18:16 | access to field H | | | Initializers.cs:20:11:20:23 | call to constructor Object | Initializers.cs:20:11:20:23 | {...} | | | Initializers.cs:20:11:20:23 | call to method | Initializers.cs:20:11:20:23 | call to constructor Object | | | Initializers.cs:20:11:20:23 | enter | Initializers.cs:22:23:22:23 | this access | | @@ -2220,46 +2339,52 @@ | Initializers.cs:20:11:20:23 | exit NoConstructor (normal) | Initializers.cs:20:11:20:23 | exit NoConstructor | | | Initializers.cs:20:11:20:23 | this access | Initializers.cs:20:11:20:23 | call to method | | | Initializers.cs:20:11:20:23 | {...} | Initializers.cs:20:11:20:23 | exit NoConstructor (normal) | | +| Initializers.cs:22:23:22:23 | access to field F | Initializers.cs:22:23:22:27 | ... = ... | | | Initializers.cs:22:23:22:23 | this access | Initializers.cs:22:27:22:27 | 0 | | | Initializers.cs:22:23:22:27 | ... = ... | Initializers.cs:23:23:23:23 | this access | | -| Initializers.cs:22:27:22:27 | 0 | Initializers.cs:22:23:22:27 | ... = ... | | +| Initializers.cs:22:27:22:27 | 0 | Initializers.cs:22:23:22:23 | access to field F | | +| Initializers.cs:23:23:23:23 | access to field G | Initializers.cs:23:23:23:27 | ... = ... | | | Initializers.cs:23:23:23:23 | this access | Initializers.cs:23:27:23:27 | 1 | | | Initializers.cs:23:23:23:27 | ... = ... | Initializers.cs:20:11:20:23 | exit (normal) | | -| Initializers.cs:23:27:23:27 | 1 | Initializers.cs:23:23:23:27 | ... = ... | | +| Initializers.cs:23:27:23:27 | 1 | Initializers.cs:23:23:23:23 | access to field G | | | Initializers.cs:26:11:26:13 | enter | Initializers.cs:28:13:28:13 | this access | | | Initializers.cs:26:11:26:13 | exit (normal) | Initializers.cs:26:11:26:13 | exit | | +| Initializers.cs:28:13:28:13 | access to field H | Initializers.cs:28:13:28:17 | ... = ... | | | Initializers.cs:28:13:28:13 | this access | Initializers.cs:28:17:28:17 | 2 | | | Initializers.cs:28:13:28:17 | ... = ... | Initializers.cs:26:11:26:13 | exit (normal) | | -| Initializers.cs:28:17:28:17 | 2 | Initializers.cs:28:13:28:17 | ... = ... | | +| Initializers.cs:28:17:28:17 | 2 | Initializers.cs:28:13:28:13 | access to field H | | | Initializers.cs:31:9:31:11 | call to method | Initializers.cs:31:17:31:20 | call to constructor NoConstructor | | | Initializers.cs:31:9:31:11 | enter Sub | Initializers.cs:31:9:31:11 | this access | | | Initializers.cs:31:9:31:11 | exit Sub (normal) | Initializers.cs:31:9:31:11 | exit Sub | | | Initializers.cs:31:9:31:11 | this access | Initializers.cs:31:9:31:11 | call to method | | | Initializers.cs:31:17:31:20 | call to constructor NoConstructor | Initializers.cs:31:24:31:33 | {...} | | | Initializers.cs:31:24:31:33 | {...} | Initializers.cs:31:26:31:31 | ...; | | +| Initializers.cs:31:26:31:26 | access to field I | Initializers.cs:31:26:31:30 | ... = ... | | | Initializers.cs:31:26:31:26 | this access | Initializers.cs:31:30:31:30 | 3 | | | Initializers.cs:31:26:31:30 | ... = ... | Initializers.cs:31:9:31:11 | exit Sub (normal) | | | Initializers.cs:31:26:31:31 | ...; | Initializers.cs:31:26:31:26 | this access | | -| Initializers.cs:31:30:31:30 | 3 | Initializers.cs:31:26:31:30 | ... = ... | | +| Initializers.cs:31:30:31:30 | 3 | Initializers.cs:31:26:31:26 | access to field I | | | Initializers.cs:33:9:33:11 | enter Sub | Initializers.cs:33:22:33:25 | call to constructor Sub | | | Initializers.cs:33:9:33:11 | exit Sub (normal) | Initializers.cs:33:9:33:11 | exit Sub | | | Initializers.cs:33:22:33:25 | call to constructor Sub | Initializers.cs:33:29:33:38 | {...} | | | Initializers.cs:33:29:33:38 | {...} | Initializers.cs:33:31:33:36 | ...; | | +| Initializers.cs:33:31:33:31 | access to field I | Initializers.cs:33:31:33:35 | ... = ... | | | Initializers.cs:33:31:33:31 | this access | Initializers.cs:33:35:33:35 | access to parameter i | | | Initializers.cs:33:31:33:35 | ... = ... | Initializers.cs:33:9:33:11 | exit Sub (normal) | | | Initializers.cs:33:31:33:36 | ...; | Initializers.cs:33:31:33:31 | this access | | -| Initializers.cs:33:35:33:35 | access to parameter i | Initializers.cs:33:31:33:35 | ... = ... | | +| Initializers.cs:33:35:33:35 | access to parameter i | Initializers.cs:33:31:33:31 | access to field I | | | Initializers.cs:35:9:35:11 | call to constructor NoConstructor | Initializers.cs:35:27:35:40 | {...} | | | Initializers.cs:35:9:35:11 | call to method | Initializers.cs:35:9:35:11 | call to constructor NoConstructor | | | Initializers.cs:35:9:35:11 | enter Sub | Initializers.cs:35:9:35:11 | this access | | | Initializers.cs:35:9:35:11 | exit Sub (normal) | Initializers.cs:35:9:35:11 | exit Sub | | | Initializers.cs:35:9:35:11 | this access | Initializers.cs:35:9:35:11 | call to method | | | Initializers.cs:35:27:35:40 | {...} | Initializers.cs:35:29:35:38 | ...; | | +| Initializers.cs:35:29:35:29 | access to field I | Initializers.cs:35:29:35:37 | ... = ... | | | Initializers.cs:35:29:35:29 | this access | Initializers.cs:35:33:35:33 | access to parameter i | | | Initializers.cs:35:29:35:37 | ... = ... | Initializers.cs:35:9:35:11 | exit Sub (normal) | | | Initializers.cs:35:29:35:38 | ...; | Initializers.cs:35:29:35:29 | this access | | | Initializers.cs:35:33:35:33 | access to parameter i | Initializers.cs:35:37:35:37 | access to parameter j | | -| Initializers.cs:35:33:35:37 | ... + ... | Initializers.cs:35:29:35:37 | ... = ... | | +| Initializers.cs:35:33:35:37 | ... + ... | Initializers.cs:35:29:35:29 | access to field I | | | Initializers.cs:35:37:35:37 | access to parameter j | Initializers.cs:35:33:35:37 | ... + ... | | | Initializers.cs:39:7:39:23 | call to constructor Object | Initializers.cs:39:7:39:23 | {...} | | | Initializers.cs:39:7:39:23 | call to method | Initializers.cs:39:7:39:23 | call to constructor Object | | @@ -2298,8 +2423,9 @@ | Initializers.cs:57:13:65:9 | Compound compound = ... | Initializers.cs:51:10:51:13 | exit Test (normal) | | | Initializers.cs:57:24:65:9 | object creation of type Compound | Initializers.cs:59:34:59:34 | 0 | | | Initializers.cs:58:9:65:9 | { ..., ... } | Initializers.cs:57:13:65:9 | Compound compound = ... | | +| Initializers.cs:59:13:59:27 | access to field DictionaryField | Initializers.cs:59:13:59:76 | ... = ... | | | Initializers.cs:59:13:59:76 | ... = ... | Initializers.cs:60:37:60:37 | 3 | | -| Initializers.cs:59:31:59:76 | { ..., ... } | Initializers.cs:59:13:59:76 | ... = ... | | +| Initializers.cs:59:31:59:76 | { ..., ... } | Initializers.cs:59:13:59:27 | access to field DictionaryField | | | Initializers.cs:59:33:59:35 | access to indexer | Initializers.cs:59:33:59:44 | ... = ... | | | Initializers.cs:59:33:59:44 | ... = ... | Initializers.cs:59:48:59:48 | 1 | | | Initializers.cs:59:34:59:34 | 0 | Initializers.cs:59:39:59:44 | "Zero" | | @@ -2331,52 +2457,62 @@ | Initializers.cs:60:65:60:69 | ... + ... | Initializers.cs:60:74:60:78 | "One" | | | Initializers.cs:60:69:60:69 | 1 | Initializers.cs:60:65:60:69 | ... + ... | | | Initializers.cs:60:74:60:78 | "One" | Initializers.cs:60:64:60:70 | access to indexer | | +| Initializers.cs:61:13:61:22 | access to field ArrayField | Initializers.cs:61:13:61:58 | ... = ... | | | Initializers.cs:61:13:61:58 | ... = ... | Initializers.cs:62:30:62:30 | 0 | | -| Initializers.cs:61:26:61:58 | { ..., ... } | Initializers.cs:61:13:61:58 | ... = ... | | +| Initializers.cs:61:26:61:58 | { ..., ... } | Initializers.cs:61:13:61:22 | access to field ArrayField | | +| Initializers.cs:61:28:61:30 | access to array element | Initializers.cs:61:28:61:39 | ... = ... | | | Initializers.cs:61:28:61:39 | ... = ... | Initializers.cs:61:43:61:43 | access to parameter i | | | Initializers.cs:61:29:61:29 | 0 | Initializers.cs:61:34:61:39 | "Zero" | | -| Initializers.cs:61:34:61:39 | "Zero" | Initializers.cs:61:28:61:39 | ... = ... | | +| Initializers.cs:61:34:61:39 | "Zero" | Initializers.cs:61:28:61:30 | access to array element | | +| Initializers.cs:61:42:61:48 | access to array element | Initializers.cs:61:42:61:56 | ... = ... | | | Initializers.cs:61:42:61:56 | ... = ... | Initializers.cs:61:26:61:58 | { ..., ... } | | | Initializers.cs:61:43:61:43 | access to parameter i | Initializers.cs:61:47:61:47 | 1 | | | Initializers.cs:61:43:61:47 | ... + ... | Initializers.cs:61:52:61:56 | "One" | | | Initializers.cs:61:47:61:47 | 1 | Initializers.cs:61:43:61:47 | ... + ... | | -| Initializers.cs:61:52:61:56 | "One" | Initializers.cs:61:42:61:56 | ... = ... | | +| Initializers.cs:61:52:61:56 | "One" | Initializers.cs:61:42:61:48 | access to array element | | +| Initializers.cs:62:13:62:23 | access to field ArrayField2 | Initializers.cs:62:13:62:60 | ... = ... | | | Initializers.cs:62:13:62:60 | ... = ... | Initializers.cs:63:32:63:32 | 1 | | -| Initializers.cs:62:27:62:60 | { ..., ... } | Initializers.cs:62:13:62:60 | ... = ... | | +| Initializers.cs:62:27:62:60 | { ..., ... } | Initializers.cs:62:13:62:23 | access to field ArrayField2 | | +| Initializers.cs:62:29:62:34 | access to array element | Initializers.cs:62:29:62:40 | ... = ... | | | Initializers.cs:62:29:62:40 | ... = ... | Initializers.cs:62:44:62:44 | 1 | | | Initializers.cs:62:30:62:30 | 0 | Initializers.cs:62:33:62:33 | 1 | | | Initializers.cs:62:33:62:33 | 1 | Initializers.cs:62:38:62:40 | "i" | | -| Initializers.cs:62:38:62:40 | "i" | Initializers.cs:62:29:62:40 | ... = ... | | +| Initializers.cs:62:38:62:40 | "i" | Initializers.cs:62:29:62:34 | access to array element | | +| Initializers.cs:62:43:62:52 | access to array element | Initializers.cs:62:43:62:58 | ... = ... | | | Initializers.cs:62:43:62:58 | ... = ... | Initializers.cs:62:27:62:60 | { ..., ... } | | | Initializers.cs:62:44:62:44 | 1 | Initializers.cs:62:47:62:47 | access to parameter i | | | Initializers.cs:62:47:62:47 | access to parameter i | Initializers.cs:62:51:62:51 | 0 | | | Initializers.cs:62:47:62:51 | ... + ... | Initializers.cs:62:56:62:58 | "1" | | | Initializers.cs:62:51:62:51 | 0 | Initializers.cs:62:47:62:51 | ... + ... | | -| Initializers.cs:62:56:62:58 | "1" | Initializers.cs:62:43:62:58 | ... = ... | | +| Initializers.cs:62:56:62:58 | "1" | Initializers.cs:62:43:62:52 | access to array element | | | Initializers.cs:63:13:63:25 | access to property ArrayProperty | Initializers.cs:63:13:63:60 | ... = ... | | | Initializers.cs:63:13:63:60 | ... = ... | Initializers.cs:64:33:64:33 | 0 | | | Initializers.cs:63:29:63:60 | { ..., ... } | Initializers.cs:63:13:63:25 | access to property ArrayProperty | | +| Initializers.cs:63:31:63:33 | access to array element | Initializers.cs:63:31:63:41 | ... = ... | | | Initializers.cs:63:31:63:41 | ... = ... | Initializers.cs:63:45:63:45 | access to parameter i | | | Initializers.cs:63:32:63:32 | 1 | Initializers.cs:63:37:63:41 | "One" | | -| Initializers.cs:63:37:63:41 | "One" | Initializers.cs:63:31:63:41 | ... = ... | | +| Initializers.cs:63:37:63:41 | "One" | Initializers.cs:63:31:63:33 | access to array element | | +| Initializers.cs:63:44:63:50 | access to array element | Initializers.cs:63:44:63:58 | ... = ... | | | Initializers.cs:63:44:63:58 | ... = ... | Initializers.cs:63:29:63:60 | { ..., ... } | | | Initializers.cs:63:45:63:45 | access to parameter i | Initializers.cs:63:49:63:49 | 2 | | | Initializers.cs:63:45:63:49 | ... + ... | Initializers.cs:63:54:63:58 | "Two" | | | Initializers.cs:63:49:63:49 | 2 | Initializers.cs:63:45:63:49 | ... + ... | | -| Initializers.cs:63:54:63:58 | "Two" | Initializers.cs:63:44:63:58 | ... = ... | | +| Initializers.cs:63:54:63:58 | "Two" | Initializers.cs:63:44:63:50 | access to array element | | | Initializers.cs:64:13:64:26 | access to property ArrayProperty2 | Initializers.cs:64:13:64:63 | ... = ... | | | Initializers.cs:64:13:64:63 | ... = ... | Initializers.cs:58:9:65:9 | { ..., ... } | | | Initializers.cs:64:30:64:63 | { ..., ... } | Initializers.cs:64:13:64:26 | access to property ArrayProperty2 | | +| Initializers.cs:64:32:64:37 | access to array element | Initializers.cs:64:32:64:43 | ... = ... | | | Initializers.cs:64:32:64:43 | ... = ... | Initializers.cs:64:47:64:47 | 1 | | | Initializers.cs:64:33:64:33 | 0 | Initializers.cs:64:36:64:36 | 1 | | | Initializers.cs:64:36:64:36 | 1 | Initializers.cs:64:41:64:43 | "i" | | -| Initializers.cs:64:41:64:43 | "i" | Initializers.cs:64:32:64:43 | ... = ... | | +| Initializers.cs:64:41:64:43 | "i" | Initializers.cs:64:32:64:37 | access to array element | | +| Initializers.cs:64:46:64:55 | access to array element | Initializers.cs:64:46:64:61 | ... = ... | | | Initializers.cs:64:46:64:61 | ... = ... | Initializers.cs:64:30:64:63 | { ..., ... } | | | Initializers.cs:64:47:64:47 | 1 | Initializers.cs:64:50:64:50 | access to parameter i | | | Initializers.cs:64:50:64:50 | access to parameter i | Initializers.cs:64:54:64:54 | 0 | | | Initializers.cs:64:50:64:54 | ... + ... | Initializers.cs:64:59:64:61 | "1" | | | Initializers.cs:64:54:64:54 | 0 | Initializers.cs:64:50:64:54 | ... + ... | | -| Initializers.cs:64:59:64:61 | "1" | Initializers.cs:64:46:64:61 | ... = ... | | +| Initializers.cs:64:59:64:61 | "1" | Initializers.cs:64:46:64:55 | access to array element | | | LoopUnrolling.cs:5:7:5:19 | call to constructor Object | LoopUnrolling.cs:5:7:5:19 | {...} | | | LoopUnrolling.cs:5:7:5:19 | call to method | LoopUnrolling.cs:5:7:5:19 | call to constructor Object | | | LoopUnrolling.cs:5:7:5:19 | enter LoopUnrolling | LoopUnrolling.cs:5:7:5:19 | this access | | @@ -2631,9 +2767,10 @@ | MultiImplementationA.cs:11:7:11:8 | enter | MultiImplementationA.cs:13:16:13:16 | this access | | | MultiImplementationA.cs:11:7:11:8 | enter | MultiImplementationB.cs:11:16:11:16 | this access | | | MultiImplementationA.cs:11:7:11:8 | exit (normal) | MultiImplementationA.cs:11:7:11:8 | exit | | +| MultiImplementationA.cs:13:16:13:16 | access to field F | MultiImplementationA.cs:13:16:13:20 | ... = ... | | | 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 | | -| MultiImplementationA.cs:13:20:13:20 | 0 | MultiImplementationA.cs:13:16:13:20 | ... = ... | | +| MultiImplementationA.cs:13:20:13:20 | 0 | MultiImplementationA.cs:13:16:13:16 | access to field F | | | MultiImplementationA.cs:14:31:14:31 | access to parameter i | MultiImplementationA.cs:14:31:14:31 | exit get_Item (normal) | | | MultiImplementationA.cs:14:31:14:31 | enter get_Item | MultiImplementationA.cs:14:31:14:31 | access to parameter i | | | MultiImplementationA.cs:14:31:14:31 | enter get_Item | MultiImplementationB.cs:12:37:12:40 | null | | @@ -2666,10 +2803,11 @@ | MultiImplementationA.cs:20:12:20:13 | exit C2 (normal) | MultiImplementationA.cs:20:12:20:13 | exit C2 | | | MultiImplementationA.cs:20:12:20:13 | this access | MultiImplementationA.cs:20:12:20:13 | call to method | | | MultiImplementationA.cs:20:22:20:31 | {...} | MultiImplementationA.cs:20:24:20:29 | ...; | | +| MultiImplementationA.cs:20:24:20:24 | access to field F | MultiImplementationA.cs:20:24:20:28 | ... = ... | | | MultiImplementationA.cs:20:24:20:24 | this access | MultiImplementationA.cs:20:28:20:28 | access to parameter i | | | MultiImplementationA.cs:20:24:20:28 | ... = ... | MultiImplementationA.cs:20:12:20:13 | exit C2 (normal) | | | MultiImplementationA.cs:20:24:20:29 | ...; | MultiImplementationA.cs:20:24:20:24 | this access | | -| MultiImplementationA.cs:20:28:20:28 | access to parameter i | MultiImplementationA.cs:20:24:20:28 | ... = ... | | +| MultiImplementationA.cs:20:28:20:28 | access to parameter i | MultiImplementationA.cs:20:24:20:24 | access to field F | | | MultiImplementationA.cs:21:12:21:13 | enter C2 | MultiImplementationA.cs:21:24:21:24 | 0 | | | MultiImplementationA.cs:21:12:21:13 | enter C2 | MultiImplementationB.cs:19:24:19:24 | 1 | | | MultiImplementationA.cs:21:12:21:13 | exit C2 (normal) | MultiImplementationA.cs:21:12:21:13 | exit C2 | | @@ -2730,9 +2868,10 @@ | MultiImplementationB.cs:4:34:4:34 | 1 | MultiImplementationB.cs:4:27:4:35 | return ...; | | | MultiImplementationB.cs:4:43:4:45 | {...} | MultiImplementationA.cs:7:41:7:43 | exit set_P2 (normal) | | | MultiImplementationB.cs:5:23:5:23 | 2 | MultiImplementationA.cs:8:16:8:16 | exit M (normal) | | +| MultiImplementationB.cs:11:16:11:16 | access to field F | MultiImplementationB.cs:11:16:11:20 | ... = ... | | | 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:11:20:11:20 | 1 | MultiImplementationB.cs:11:16:11:16 | access to field F | | | 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 | | @@ -2859,9 +2998,10 @@ | PartialImplementationA.cs:3:12:3:18 | exit Partial (normal) | PartialImplementationA.cs:3:12:3:18 | exit Partial | | | PartialImplementationA.cs:3:12:3:18 | this access | PartialImplementationA.cs:3:12:3:18 | call to method | | | PartialImplementationA.cs:3:27:3:29 | {...} | PartialImplementationA.cs:3:12:3:18 | exit Partial (normal) | | +| PartialImplementationB.cs:3:16:3:16 | access to field F | PartialImplementationB.cs:3:16:3:20 | ... = ... | | | PartialImplementationB.cs:3:16:3:16 | this access | PartialImplementationB.cs:3:20:3:20 | 0 | | | PartialImplementationB.cs:3:16:3:20 | ... = ... | PartialImplementationB.cs:5:16:5:16 | this access | | -| PartialImplementationB.cs:3:20:3:20 | 0 | PartialImplementationB.cs:3:16:3:20 | ... = ... | | +| PartialImplementationB.cs:3:20:3:20 | 0 | PartialImplementationB.cs:3:16:3:16 | access to field F | | | PartialImplementationB.cs:4:12:4:18 | call to constructor Object | PartialImplementationB.cs:4:22:4:24 | {...} | | | PartialImplementationB.cs:4:12:4:18 | call to method | PartialImplementationB.cs:4:12:4:18 | call to constructor Object | | | PartialImplementationB.cs:4:12:4:18 | enter Partial | PartialImplementationB.cs:4:12:4:18 | this access | | @@ -3922,20 +4062,22 @@ | cflow.cs:127:62:127:64 | enter set_Prop | cflow.cs:127:66:127:83 | {...} | | | cflow.cs:127:62:127:64 | exit set_Prop (normal) | cflow.cs:127:62:127:64 | exit set_Prop | | | cflow.cs:127:66:127:83 | {...} | cflow.cs:127:68:127:81 | ...; | | +| cflow.cs:127:68:127:72 | access to field Field | cflow.cs:127:68:127:80 | ... = ... | | | cflow.cs:127:68:127:72 | this access | cflow.cs:127:76:127:80 | access to parameter value | | | cflow.cs:127:68:127:80 | ... = ... | cflow.cs:127:62:127:64 | exit set_Prop (normal) | | | cflow.cs:127:68:127:81 | ...; | cflow.cs:127:68:127:72 | this access | | -| cflow.cs:127:76:127:80 | access to parameter value | cflow.cs:127:68:127:80 | ... = ... | | +| cflow.cs:127:76:127:80 | access to parameter value | cflow.cs:127:68:127:72 | access to field Field | | | cflow.cs:129:5:129:15 | call to constructor Object | cflow.cs:130:5:132:5 | {...} | | | cflow.cs:129:5:129:15 | call to method | cflow.cs:129:5:129:15 | call to constructor Object | | | cflow.cs:129:5:129:15 | enter ControlFlow | cflow.cs:129:5:129:15 | this access | | | cflow.cs:129:5:129:15 | exit ControlFlow (normal) | cflow.cs:129:5:129:15 | exit ControlFlow | | | cflow.cs:129:5:129:15 | this access | cflow.cs:129:5:129:15 | call to method | | | cflow.cs:130:5:132:5 | {...} | cflow.cs:131:9:131:18 | ...; | | +| cflow.cs:131:9:131:13 | access to field Field | cflow.cs:131:9:131:17 | ... = ... | | | cflow.cs:131:9:131:13 | this access | cflow.cs:131:17:131:17 | access to parameter s | | | cflow.cs:131:9:131:17 | ... = ... | cflow.cs:129:5:129:15 | exit ControlFlow (normal) | | | cflow.cs:131:9:131:18 | ...; | cflow.cs:131:9:131:13 | this access | | -| cflow.cs:131:17:131:17 | access to parameter s | cflow.cs:131:9:131:17 | ... = ... | | +| cflow.cs:131:17:131:17 | access to parameter s | cflow.cs:131:9:131:13 | access to field Field | | | cflow.cs:134:5:134:15 | enter ControlFlow | cflow.cs:134:31:134:31 | access to parameter i | | | cflow.cs:134:5:134:15 | exit ControlFlow (normal) | cflow.cs:134:5:134:15 | exit ControlFlow | | | cflow.cs:134:26:134:29 | call to constructor ControlFlow | cflow.cs:134:39:134:41 | {...} | | @@ -4163,10 +4305,11 @@ | cflow.cs:209:5:222:5 | {...} | cflow.cs:210:9:221:36 | do ... while (...); | | | cflow.cs:210:9:221:36 | do ... while (...); | cflow.cs:211:9:221:9 | {...} | | | cflow.cs:211:9:221:9 | {...} | cflow.cs:212:13:212:25 | ...; | | +| cflow.cs:212:13:212:17 | access to field Field | cflow.cs:212:13:212:24 | ... = ... | | | cflow.cs:212:13:212:17 | access to field Field | cflow.cs:212:22:212:24 | "a" | | | cflow.cs:212:13:212:17 | this access | cflow.cs:212:13:212:17 | access to field Field | | | cflow.cs:212:13:212:17 | this access | cflow.cs:212:13:212:17 | this access | | -| cflow.cs:212:13:212:24 | ... + ... | cflow.cs:212:13:212:24 | ... = ... | | +| cflow.cs:212:13:212:24 | ... + ... | cflow.cs:212:13:212:17 | access to field Field | | | cflow.cs:212:13:212:24 | ... = ... | cflow.cs:213:13:216:13 | if (...) ... | | | cflow.cs:212:13:212:25 | ...; | cflow.cs:212:13:212:17 | this access | | | cflow.cs:212:22:212:24 | "a" | cflow.cs:212:13:212:24 | ... + ... | | @@ -4204,10 +4347,11 @@ | cflow.cs:226:57:226:59 | "a" | cflow.cs:226:62:226:63 | 10 | | | cflow.cs:226:62:226:63 | 10 | cflow.cs:226:27:226:64 | call to method Repeat | | | cflow.cs:227:9:237:9 | {...} | cflow.cs:228:13:228:23 | ...; | | +| cflow.cs:228:13:228:17 | access to field Field | cflow.cs:228:13:228:22 | ... = ... | | | cflow.cs:228:13:228:17 | access to field Field | cflow.cs:228:22:228:22 | access to local variable x | | | cflow.cs:228:13:228:17 | this access | cflow.cs:228:13:228:17 | access to field Field | | | cflow.cs:228:13:228:17 | this access | cflow.cs:228:13:228:17 | this access | | -| cflow.cs:228:13:228:22 | ... + ... | cflow.cs:228:13:228:22 | ... = ... | | +| cflow.cs:228:13:228:22 | ... + ... | cflow.cs:228:13:228:17 | access to field Field | | | cflow.cs:228:13:228:22 | ... = ... | cflow.cs:229:13:232:13 | if (...) ... | | | cflow.cs:228:13:228:23 | ...; | cflow.cs:228:13:228:17 | this access | | | cflow.cs:228:22:228:22 | access to local variable x | cflow.cs:228:13:228:22 | ... + ... | | diff --git a/csharp/ql/test/library-tests/controlflow/graph/Nodes.expected b/csharp/ql/test/library-tests/controlflow/graph/Nodes.expected index aff874814619..d76f989e5cff 100644 --- a/csharp/ql/test/library-tests/controlflow/graph/Nodes.expected +++ b/csharp/ql/test/library-tests/controlflow/graph/Nodes.expected @@ -36,6 +36,9 @@ | Assignments.cs:3:10:3:10 | M | Assignments.cs:4:5:15:5 | {...} | | Assignments.cs:14:18:14:35 | (...) => ... | Assignments.cs:14:33:14:35 | {...} | | Assignments.cs:17:40:17:40 | + | Assignments.cs:18:5:20:5 | {...} | +| Assignments.cs:27:10:27:23 | SetParamSingle | Assignments.cs:28:5:30:5 | {...} | +| Assignments.cs:32:10:32:22 | SetParamMulti | Assignments.cs:33:5:36:5 | {...} | +| Assignments.cs:38:10:38:11 | M2 | Assignments.cs:39:5:45:5 | {...} | | BreakInTry.cs:1:7:1:16 | BreakInTry | BreakInTry.cs:1:7:1:16 | this access | | BreakInTry.cs:3:10:3:11 | M1 | BreakInTry.cs:4:5:18:5 | {...} | | BreakInTry.cs:20:10:20:11 | M2 | BreakInTry.cs:21:5:36:5 | {...} | @@ -58,7 +61,10 @@ | ConditionalAccess.cs:21:10:21:11 | M7 | ConditionalAccess.cs:22:5:26:5 | {...} | | ConditionalAccess.cs:30:10:30:12 | Out | ConditionalAccess.cs:30:32:30:32 | 0 | | ConditionalAccess.cs:32:10:32:11 | M8 | ConditionalAccess.cs:33:5:36:5 | {...} | -| ConditionalAccess.cs:41:26:41:38 | CommaJoinWith | ConditionalAccess.cs:41:70:41:71 | access to parameter s1 | +| ConditionalAccess.cs:42:9:42:11 | get_Item | ConditionalAccess.cs:42:13:42:28 | {...} | +| ConditionalAccess.cs:43:9:43:11 | set_Item | ConditionalAccess.cs:43:13:43:15 | {...} | +| ConditionalAccess.cs:46:10:46:11 | M9 | ConditionalAccess.cs:47:5:55:5 | {...} | +| ConditionalAccess.cs:60:26:60:38 | CommaJoinWith | ConditionalAccess.cs:60:70:60:71 | access to parameter s1 | | Conditions.cs:1:7:1:16 | Conditions | Conditions.cs:1:7:1:16 | this access | | Conditions.cs:3:10:3:19 | IncrOrDecr | Conditions.cs:4:5:9:5 | {...} | | Conditions.cs:11:9:11:10 | M1 | Conditions.cs:12:5:20:5 | {...} | diff --git a/csharp/ql/test/library-tests/csharp8/ispatternflow.expected b/csharp/ql/test/library-tests/csharp8/ispatternflow.expected index 553f416cd966..f8d1de5d7e90 100644 --- a/csharp/ql/test/library-tests/csharp8/ispatternflow.expected +++ b/csharp/ql/test/library-tests/csharp8/ispatternflow.expected @@ -6,8 +6,9 @@ | patterns.cs:7:20:7:41 | (...) ... | patterns.cs:7:16:7:41 | Object o = ... | semmle.label | successor | | patterns.cs:7:20:7:41 | object creation of type MyStruct | patterns.cs:7:39:7:39 | 2 | semmle.label | successor | | patterns.cs:7:33:7:41 | { ..., ... } | patterns.cs:7:20:7:41 | (...) ... | semmle.label | successor | +| patterns.cs:7:35:7:35 | access to field X | patterns.cs:7:35:7:39 | ... = ... | semmle.label | successor | | patterns.cs:7:35:7:39 | ... = ... | patterns.cs:7:33:7:41 | { ..., ... } | semmle.label | successor | -| patterns.cs:7:39:7:39 | 2 | patterns.cs:7:35:7:39 | ... = ... | semmle.label | successor | +| patterns.cs:7:39:7:39 | 2 | patterns.cs:7:35:7:35 | access to field X | semmle.label | successor | | patterns.cs:9:9:11:9 | if (...) ... | patterns.cs:9:13:9:13 | access to local variable o | semmle.label | successor | | patterns.cs:9:13:9:13 | access to local variable o | patterns.cs:9:18:9:29 | MyStruct ms1 | semmle.label | successor | | patterns.cs:9:13:9:29 | [false] ... is ... | patterns.cs:13:9:15:9 | if (...) ... | semmle.label | false | diff --git a/csharp/ql/test/library-tests/csharp8/switchexprcontrolflow.expected b/csharp/ql/test/library-tests/csharp8/switchexprcontrolflow.expected index 83438c26f6ee..c6ecf8bcfd98 100644 --- a/csharp/ql/test/library-tests/csharp8/switchexprcontrolflow.expected +++ b/csharp/ql/test/library-tests/csharp8/switchexprcontrolflow.expected @@ -108,8 +108,9 @@ | patterns.cs:125:13:125:38 | MyStruct s = ... | patterns.cs:126:9:132:10 | ... ...; | semmle.label | successor | | patterns.cs:125:17:125:38 | object creation of type MyStruct | patterns.cs:125:36:125:36 | 0 | semmle.label | successor | | patterns.cs:125:30:125:38 | { ..., ... } | patterns.cs:125:13:125:38 | MyStruct s = ... | semmle.label | successor | +| patterns.cs:125:32:125:32 | access to field X | patterns.cs:125:32:125:36 | ... = ... | semmle.label | successor | | patterns.cs:125:32:125:36 | ... = ... | patterns.cs:125:30:125:38 | { ..., ... } | semmle.label | successor | -| patterns.cs:125:36:125:36 | 0 | patterns.cs:125:32:125:36 | ... = ... | semmle.label | successor | +| patterns.cs:125:36:125:36 | 0 | patterns.cs:125:32:125:32 | access to field X | semmle.label | successor | | patterns.cs:126:9:132:10 | ... ...; | patterns.cs:126:17:126:17 | access to local variable s | semmle.label | successor | | patterns.cs:126:13:132:9 | Int32 r = ... | patterns.cs:134:9:148:9 | try {...} ... | semmle.label | successor | | patterns.cs:126:17:126:17 | access to local variable s | patterns.cs:128:13:128:20 | access to type MyStruct | semmle.label | successor | diff --git a/csharp/ql/test/library-tests/csharp8/switchstmtctrlflow.expected b/csharp/ql/test/library-tests/csharp8/switchstmtctrlflow.expected index 64e16c2d7cf6..06e4623611b3 100644 --- a/csharp/ql/test/library-tests/csharp8/switchstmtctrlflow.expected +++ b/csharp/ql/test/library-tests/csharp8/switchstmtctrlflow.expected @@ -5,8 +5,9 @@ | patterns.cs:34:13:34:38 | MyStruct s = ... | patterns.cs:36:9:44:9 | switch (...) {...} | semmle.label | successor | | patterns.cs:34:17:34:38 | object creation of type MyStruct | patterns.cs:34:36:34:36 | 0 | semmle.label | successor | | patterns.cs:34:30:34:38 | { ..., ... } | patterns.cs:34:13:34:38 | MyStruct s = ... | semmle.label | successor | +| patterns.cs:34:32:34:32 | access to field X | patterns.cs:34:32:34:36 | ... = ... | semmle.label | successor | | patterns.cs:34:32:34:36 | ... = ... | patterns.cs:34:30:34:38 | { ..., ... } | semmle.label | successor | -| patterns.cs:34:36:34:36 | 0 | patterns.cs:34:32:34:36 | ... = ... | semmle.label | successor | +| patterns.cs:34:36:34:36 | 0 | patterns.cs:34:32:34:32 | access to field X | semmle.label | successor | | patterns.cs:36:9:44:9 | switch (...) {...} | patterns.cs:36:17:36:17 | access to local variable s | semmle.label | successor | | patterns.cs:36:17:36:17 | access to local variable s | patterns.cs:38:13:38:47 | case ...: | semmle.label | successor | | patterns.cs:38:13:38:47 | case ...: | patterns.cs:38:18:38:29 | MyStruct ms1 | semmle.label | successor | diff --git a/csharp/ql/test/library-tests/dataflow/extensions/ExtensionFlow.expected b/csharp/ql/test/library-tests/dataflow/extensions/ExtensionFlow.expected new file mode 100644 index 000000000000..35a30ac1ffc9 --- /dev/null +++ b/csharp/ql/test/library-tests/dataflow/extensions/ExtensionFlow.expected @@ -0,0 +1,502 @@ +models +edges +| extensions.cs:5:22:5:24 | obj : B | extensions.cs:23:24:23:26 | access to extension synthetic parameter obj | provenance | | +| extensions.cs:5:22:5:24 | obj : B | extensions.cs:23:24:23:26 | access to extension synthetic parameter obj | provenance | | +| extensions.cs:5:22:5:24 | obj : B | extensions.cs:28:24:28:26 | access to extension synthetic parameter obj | provenance | | +| extensions.cs:5:22:5:24 | obj : B | extensions.cs:28:24:28:26 | access to extension synthetic parameter obj | provenance | | +| extensions.cs:5:22:5:24 | obj : B | extensions.cs:51:20:51:22 | access to extension synthetic parameter obj | provenance | | +| extensions.cs:5:22:5:24 | obj : B | extensions.cs:51:20:51:22 | access to extension synthetic parameter obj | provenance | | +| extensions.cs:11:24:11:37 | call to method Source : B | extensions.cs:108:18:108:26 | access to property Prop1 : B | provenance | | +| extensions.cs:11:24:11:37 | call to method Source : B | extensions.cs:108:18:108:26 | access to property Prop1 : B | provenance | | +| extensions.cs:11:24:11:37 | call to method Source : B | extensions.cs:111:18:111:44 | call to extension accessor get_Prop1 : B | provenance | | +| extensions.cs:11:24:11:37 | call to method Source : B | extensions.cs:111:18:111:44 | call to extension accessor get_Prop1 : B | provenance | | +| extensions.cs:13:13:13:15 | value : B | extensions.cs:15:24:15:28 | access to parameter value | provenance | | +| extensions.cs:13:13:13:15 | value : B | extensions.cs:15:24:15:28 | access to parameter value | provenance | | +| extensions.cs:36:24:36:38 | call to method Source : B | extensions.cs:194:18:194:35 | access to property StaticProp1 : B | provenance | | +| extensions.cs:36:24:36:38 | call to method Source : B | extensions.cs:194:18:194:35 | access to property StaticProp1 : B | provenance | | +| extensions.cs:36:24:36:38 | call to method Source : B | extensions.cs:197:18:197:47 | call to extension accessor get_StaticProp1 : B | provenance | | +| extensions.cs:36:24:36:38 | call to method Source : B | extensions.cs:197:18:197:47 | call to extension accessor get_StaticProp1 : B | provenance | | +| extensions.cs:38:13:38:15 | value : B | extensions.cs:40:24:40:28 | access to parameter value | provenance | | +| extensions.cs:38:13:38:15 | value : B | extensions.cs:40:24:40:28 | access to parameter value | provenance | | +| extensions.cs:46:20:46:33 | call to method Source : B | extensions.cs:127:18:127:25 | call to method M1 : B | provenance | | +| extensions.cs:46:20:46:33 | call to method Source : B | extensions.cs:127:18:127:25 | call to method M1 : B | provenance | | +| extensions.cs:46:20:46:33 | call to method Source : B | extensions.cs:130:18:130:37 | call to method M1 : B | provenance | | +| extensions.cs:46:20:46:33 | call to method Source : B | extensions.cs:130:18:130:37 | call to method M1 : B | provenance | | +| extensions.cs:59:48:59:48 | a : B | extensions.cs:61:20:61:20 | access to parameter a | provenance | | +| extensions.cs:59:48:59:48 | a : B | extensions.cs:61:20:61:20 | access to parameter a | provenance | | +| extensions.cs:67:20:67:33 | call to method Source : B | extensions.cs:185:18:185:24 | call to operator - : B | provenance | | +| extensions.cs:67:20:67:33 | call to method Source : B | extensions.cs:185:18:185:24 | call to operator - : B | provenance | | +| extensions.cs:67:20:67:33 | call to method Source : B | extensions.cs:188:18:188:52 | call to operator - : B | provenance | | +| extensions.cs:67:20:67:33 | call to method Source : B | extensions.cs:188:18:188:52 | call to operator - : B | provenance | | +| extensions.cs:76:17:76:17 | b : B | extensions.cs:80:20:80:20 | access to extension synthetic parameter b : B | provenance | | +| extensions.cs:76:17:76:17 | b : B | extensions.cs:80:20:80:20 | access to extension synthetic parameter b : B | provenance | | +| extensions.cs:76:17:76:17 | b : B | extensions.cs:85:20:85:20 | access to extension synthetic parameter b | provenance | | +| extensions.cs:76:17:76:17 | b : B | extensions.cs:85:20:85:20 | access to extension synthetic parameter b | provenance | | +| extensions.cs:89:20:89:20 | t : B | extensions.cs:93:20:93:20 | access to extension synthetic parameter t | provenance | | +| extensions.cs:89:20:89:20 | t : B | extensions.cs:93:20:93:20 | access to extension synthetic parameter t | provenance | | +| extensions.cs:96:33:96:37 | other : B | extensions.cs:98:20:98:24 | access to parameter other : B | provenance | | +| extensions.cs:96:33:96:37 | other : B | extensions.cs:98:20:98:24 | access to parameter other : B | provenance | | +| extensions.cs:108:13:108:14 | access to local variable b1 : B | extensions.cs:109:14:109:15 | access to local variable b1 | provenance | | +| extensions.cs:108:13:108:14 | access to local variable b1 : B | extensions.cs:109:14:109:15 | access to local variable b1 | provenance | | +| extensions.cs:108:18:108:26 | access to property Prop1 : B | extensions.cs:108:13:108:14 | access to local variable b1 : B | provenance | | +| extensions.cs:108:18:108:26 | access to property Prop1 : B | extensions.cs:108:13:108:14 | access to local variable b1 : B | provenance | | +| extensions.cs:111:13:111:14 | access to local variable b2 : B | extensions.cs:112:14:112:15 | access to local variable b2 | provenance | | +| extensions.cs:111:13:111:14 | access to local variable b2 : B | extensions.cs:112:14:112:15 | access to local variable b2 | provenance | | +| extensions.cs:111:18:111:44 | call to extension accessor get_Prop1 : B | extensions.cs:111:13:111:14 | access to local variable b2 : B | provenance | | +| extensions.cs:111:18:111:44 | call to extension accessor get_Prop1 : B | extensions.cs:111:13:111:14 | access to local variable b2 : B | provenance | | +| extensions.cs:118:21:118:32 | call to method Source : B | extensions.cs:13:13:13:15 | value : B | provenance | | +| extensions.cs:118:21:118:32 | call to method Source : B | extensions.cs:13:13:13:15 | value : B | provenance | | +| extensions.cs:120:13:120:13 | access to local variable b : B | extensions.cs:121:37:121:37 | access to local variable b : B | provenance | | +| extensions.cs:120:13:120:13 | access to local variable b : B | extensions.cs:121:37:121:37 | access to local variable b : B | provenance | | +| extensions.cs:120:17:120:30 | call to method Source : B | extensions.cs:120:13:120:13 | access to local variable b : B | provenance | | +| extensions.cs:120:17:120:30 | call to method Source : B | extensions.cs:120:13:120:13 | access to local variable b : B | provenance | | +| extensions.cs:121:37:121:37 | access to local variable b : B | extensions.cs:13:13:13:15 | value : B | provenance | | +| extensions.cs:121:37:121:37 | access to local variable b : B | extensions.cs:13:13:13:15 | value : B | provenance | | +| extensions.cs:127:13:127:14 | access to local variable b1 : B | extensions.cs:128:14:128:15 | access to local variable b1 | provenance | | +| extensions.cs:127:13:127:14 | access to local variable b1 : B | extensions.cs:128:14:128:15 | access to local variable b1 | provenance | | +| extensions.cs:127:18:127:25 | call to method M1 : B | extensions.cs:127:13:127:14 | access to local variable b1 : B | provenance | | +| extensions.cs:127:18:127:25 | call to method M1 : B | extensions.cs:127:13:127:14 | access to local variable b1 : B | provenance | | +| extensions.cs:130:13:130:14 | access to local variable b2 : B | extensions.cs:131:14:131:15 | access to local variable b2 | provenance | | +| extensions.cs:130:13:130:14 | access to local variable b2 : B | extensions.cs:131:14:131:15 | access to local variable b2 | provenance | | +| extensions.cs:130:18:130:37 | call to method M1 : B | extensions.cs:130:13:130:14 | access to local variable b2 : B | provenance | | +| extensions.cs:130:18:130:37 | call to method M1 : B | extensions.cs:130:13:130:14 | access to local variable b2 : B | provenance | | +| extensions.cs:136:13:136:14 | access to local variable b1 : B | extensions.cs:137:9:137:10 | access to local variable b1 : B | provenance | | +| extensions.cs:136:13:136:14 | access to local variable b1 : B | extensions.cs:137:9:137:10 | access to local variable b1 : B | provenance | | +| extensions.cs:136:18:136:29 | call to method Source : B | extensions.cs:136:13:136:14 | access to local variable b1 : B | provenance | | +| extensions.cs:136:18:136:29 | call to method Source : B | extensions.cs:136:13:136:14 | access to local variable b1 : B | provenance | | +| extensions.cs:137:9:137:10 | access to local variable b1 : B | extensions.cs:5:22:5:24 | obj : B | provenance | | +| extensions.cs:137:9:137:10 | access to local variable b1 : B | extensions.cs:5:22:5:24 | obj : B | provenance | | +| extensions.cs:139:13:139:14 | access to local variable b2 : B | extensions.cs:140:25:140:26 | access to local variable b2 : B | provenance | | +| extensions.cs:139:13:139:14 | access to local variable b2 : B | extensions.cs:140:25:140:26 | access to local variable b2 : B | provenance | | +| extensions.cs:139:18:139:31 | call to method Source : B | extensions.cs:139:13:139:14 | access to local variable b2 : B | provenance | | +| extensions.cs:139:18:139:31 | call to method Source : B | extensions.cs:139:13:139:14 | access to local variable b2 : B | provenance | | +| extensions.cs:140:25:140:26 | access to local variable b2 : B | extensions.cs:5:22:5:24 | obj : B | provenance | | +| extensions.cs:140:25:140:26 | access to local variable b2 : B | extensions.cs:5:22:5:24 | obj : B | provenance | | +| extensions.cs:145:13:145:14 | access to local variable b1 : B | extensions.cs:146:18:146:19 | access to local variable b1 : B | provenance | | +| extensions.cs:145:13:145:14 | access to local variable b1 : B | extensions.cs:146:18:146:19 | access to local variable b1 : B | provenance | | +| extensions.cs:145:13:145:14 | access to local variable b1 : B | extensions.cs:149:34:149:35 | access to local variable b1 : B | provenance | | +| extensions.cs:145:13:145:14 | access to local variable b1 : B | extensions.cs:149:34:149:35 | access to local variable b1 : B | provenance | | +| extensions.cs:145:18:145:29 | call to method Source : B | extensions.cs:145:13:145:14 | access to local variable b1 : B | provenance | | +| extensions.cs:145:18:145:29 | call to method Source : B | extensions.cs:145:13:145:14 | access to local variable b1 : B | provenance | | +| extensions.cs:146:13:146:14 | access to local variable b2 : B | extensions.cs:147:14:147:15 | access to local variable b2 | provenance | | +| extensions.cs:146:13:146:14 | access to local variable b2 : B | extensions.cs:147:14:147:15 | access to local variable b2 | provenance | | +| extensions.cs:146:18:146:19 | access to local variable b1 : B | extensions.cs:76:17:76:17 | b : B | provenance | | +| extensions.cs:146:18:146:19 | access to local variable b1 : B | extensions.cs:76:17:76:17 | b : B | provenance | | +| extensions.cs:146:18:146:19 | access to local variable b1 : B | extensions.cs:146:18:146:24 | call to method B1 : B | provenance | | +| extensions.cs:146:18:146:19 | access to local variable b1 : B | extensions.cs:146:18:146:24 | call to method B1 : B | provenance | | +| extensions.cs:146:18:146:24 | call to method B1 : B | extensions.cs:146:13:146:14 | access to local variable b2 : B | provenance | | +| extensions.cs:146:18:146:24 | call to method B1 : B | extensions.cs:146:13:146:14 | access to local variable b2 : B | provenance | | +| extensions.cs:149:13:149:14 | access to local variable b3 : B | extensions.cs:150:14:150:15 | access to local variable b3 | provenance | | +| extensions.cs:149:13:149:14 | access to local variable b3 : B | extensions.cs:150:14:150:15 | access to local variable b3 | provenance | | +| extensions.cs:149:18:149:36 | call to method B1 : B | extensions.cs:149:13:149:14 | access to local variable b3 : B | provenance | | +| extensions.cs:149:18:149:36 | call to method B1 : B | extensions.cs:149:13:149:14 | access to local variable b3 : B | provenance | | +| extensions.cs:149:34:149:35 | access to local variable b1 : B | extensions.cs:76:17:76:17 | b : B | provenance | | +| extensions.cs:149:34:149:35 | access to local variable b1 : B | extensions.cs:76:17:76:17 | b : B | provenance | | +| extensions.cs:149:34:149:35 | access to local variable b1 : B | extensions.cs:149:18:149:36 | call to method B1 : B | provenance | | +| extensions.cs:149:34:149:35 | access to local variable b1 : B | extensions.cs:149:18:149:36 | call to method B1 : B | provenance | | +| extensions.cs:155:13:155:14 | access to local variable b1 : B | extensions.cs:156:18:156:19 | access to local variable b1 : B | provenance | | +| extensions.cs:155:13:155:14 | access to local variable b1 : B | extensions.cs:156:18:156:19 | access to local variable b1 : B | provenance | | +| extensions.cs:155:18:155:29 | call to method Source : B | extensions.cs:155:13:155:14 | access to local variable b1 : B | provenance | | +| extensions.cs:155:18:155:29 | call to method Source : B | extensions.cs:155:13:155:14 | access to local variable b1 : B | provenance | | +| extensions.cs:156:18:156:19 | access to local variable b1 : B | extensions.cs:5:22:5:24 | obj : B | provenance | | +| extensions.cs:156:18:156:19 | access to local variable b1 : B | extensions.cs:5:22:5:24 | obj : B | provenance | | +| extensions.cs:158:13:158:14 | access to local variable b3 : B | extensions.cs:159:41:159:42 | access to local variable b3 : B | provenance | | +| extensions.cs:158:13:158:14 | access to local variable b3 : B | extensions.cs:159:41:159:42 | access to local variable b3 : B | provenance | | +| extensions.cs:158:18:158:31 | call to method Source : B | extensions.cs:158:13:158:14 | access to local variable b3 : B | provenance | | +| extensions.cs:158:18:158:31 | call to method Source : B | extensions.cs:158:13:158:14 | access to local variable b3 : B | provenance | | +| extensions.cs:159:41:159:42 | access to local variable b3 : B | extensions.cs:5:22:5:24 | obj : B | provenance | | +| extensions.cs:159:41:159:42 | access to local variable b3 : B | extensions.cs:5:22:5:24 | obj : B | provenance | | +| extensions.cs:164:13:164:14 | access to local variable b1 : B | extensions.cs:165:9:165:10 | access to local variable b1 : B | provenance | | +| extensions.cs:164:13:164:14 | access to local variable b1 : B | extensions.cs:165:9:165:10 | access to local variable b1 : B | provenance | | +| extensions.cs:164:18:164:29 | call to method Source : B | extensions.cs:164:13:164:14 | access to local variable b1 : B | provenance | | +| extensions.cs:164:18:164:29 | call to method Source : B | extensions.cs:164:13:164:14 | access to local variable b1 : B | provenance | | +| extensions.cs:165:9:165:10 | access to local variable b1 : B | extensions.cs:5:22:5:24 | obj : B | provenance | | +| extensions.cs:165:9:165:10 | access to local variable b1 : B | extensions.cs:5:22:5:24 | obj : B | provenance | | +| extensions.cs:167:13:167:14 | access to local variable b2 : B | extensions.cs:168:32:168:33 | access to local variable b2 : B | provenance | | +| extensions.cs:167:13:167:14 | access to local variable b2 : B | extensions.cs:168:32:168:33 | access to local variable b2 : B | provenance | | +| extensions.cs:167:18:167:31 | call to method Source : B | extensions.cs:167:13:167:14 | access to local variable b2 : B | provenance | | +| extensions.cs:167:18:167:31 | call to method Source : B | extensions.cs:167:13:167:14 | access to local variable b2 : B | provenance | | +| extensions.cs:168:32:168:33 | access to local variable b2 : B | extensions.cs:5:22:5:24 | obj : B | provenance | | +| extensions.cs:168:32:168:33 | access to local variable b2 : B | extensions.cs:5:22:5:24 | obj : B | provenance | | +| extensions.cs:173:13:173:14 | access to local variable b1 : B | extensions.cs:175:18:175:19 | access to local variable b1 : B | provenance | | +| extensions.cs:173:13:173:14 | access to local variable b1 : B | extensions.cs:175:18:175:19 | access to local variable b1 : B | provenance | | +| extensions.cs:173:18:173:29 | call to method Source : B | extensions.cs:173:13:173:14 | access to local variable b1 : B | provenance | | +| extensions.cs:173:18:173:29 | call to method Source : B | extensions.cs:173:13:173:14 | access to local variable b1 : B | provenance | | +| extensions.cs:175:18:175:19 | access to local variable b1 : B | extensions.cs:59:48:59:48 | a : B | provenance | | +| extensions.cs:175:18:175:19 | access to local variable b1 : B | extensions.cs:59:48:59:48 | a : B | provenance | | +| extensions.cs:177:13:177:14 | access to local variable b4 : B | extensions.cs:178:43:178:44 | access to local variable b4 : B | provenance | | +| extensions.cs:177:13:177:14 | access to local variable b4 : B | extensions.cs:178:43:178:44 | access to local variable b4 : B | provenance | | +| extensions.cs:177:18:177:31 | call to method Source : B | extensions.cs:177:13:177:14 | access to local variable b4 : B | provenance | | +| extensions.cs:177:18:177:31 | call to method Source : B | extensions.cs:177:13:177:14 | access to local variable b4 : B | provenance | | +| extensions.cs:178:43:178:44 | access to local variable b4 : B | extensions.cs:59:48:59:48 | a : B | provenance | | +| extensions.cs:178:43:178:44 | access to local variable b4 : B | extensions.cs:59:48:59:48 | a : B | provenance | | +| extensions.cs:185:13:185:14 | access to local variable b3 : B | extensions.cs:186:14:186:15 | access to local variable b3 | provenance | | +| extensions.cs:185:13:185:14 | access to local variable b3 : B | extensions.cs:186:14:186:15 | access to local variable b3 | provenance | | +| extensions.cs:185:18:185:24 | call to operator - : B | extensions.cs:185:13:185:14 | access to local variable b3 : B | provenance | | +| extensions.cs:185:18:185:24 | call to operator - : B | extensions.cs:185:13:185:14 | access to local variable b3 : B | provenance | | +| extensions.cs:188:13:188:14 | access to local variable b4 : B | extensions.cs:189:14:189:15 | access to local variable b4 | provenance | | +| extensions.cs:188:13:188:14 | access to local variable b4 : B | extensions.cs:189:14:189:15 | access to local variable b4 | provenance | | +| extensions.cs:188:18:188:52 | call to operator - : B | extensions.cs:188:13:188:14 | access to local variable b4 : B | provenance | | +| extensions.cs:188:18:188:52 | call to operator - : B | extensions.cs:188:13:188:14 | access to local variable b4 : B | provenance | | +| extensions.cs:194:13:194:14 | access to local variable b1 : B | extensions.cs:195:14:195:15 | access to local variable b1 | provenance | | +| extensions.cs:194:13:194:14 | access to local variable b1 : B | extensions.cs:195:14:195:15 | access to local variable b1 | provenance | | +| extensions.cs:194:18:194:35 | access to property StaticProp1 : B | extensions.cs:194:13:194:14 | access to local variable b1 : B | provenance | | +| extensions.cs:194:18:194:35 | access to property StaticProp1 : B | extensions.cs:194:13:194:14 | access to local variable b1 : B | provenance | | +| extensions.cs:197:13:197:14 | access to local variable b2 : B | extensions.cs:198:14:198:15 | access to local variable b2 | provenance | | +| extensions.cs:197:13:197:14 | access to local variable b2 : B | extensions.cs:198:14:198:15 | access to local variable b2 | provenance | | +| extensions.cs:197:18:197:47 | call to extension accessor get_StaticProp1 : B | extensions.cs:197:13:197:14 | access to local variable b2 : B | provenance | | +| extensions.cs:197:18:197:47 | call to extension accessor get_StaticProp1 : B | extensions.cs:197:13:197:14 | access to local variable b2 : B | provenance | | +| extensions.cs:203:13:203:14 | access to local variable b1 : B | extensions.cs:204:30:204:31 | access to local variable b1 : B | provenance | | +| extensions.cs:203:13:203:14 | access to local variable b1 : B | extensions.cs:204:30:204:31 | access to local variable b1 : B | provenance | | +| extensions.cs:203:18:203:30 | call to method Source : B | extensions.cs:203:13:203:14 | access to local variable b1 : B | provenance | | +| extensions.cs:203:18:203:30 | call to method Source : B | extensions.cs:203:13:203:14 | access to local variable b1 : B | provenance | | +| extensions.cs:204:30:204:31 | access to local variable b1 : B | extensions.cs:38:13:38:15 | value : B | provenance | | +| extensions.cs:204:30:204:31 | access to local variable b1 : B | extensions.cs:38:13:38:15 | value : B | provenance | | +| extensions.cs:206:13:206:14 | access to local variable b2 : B | extensions.cs:207:38:207:39 | access to local variable b2 : B | provenance | | +| extensions.cs:206:13:206:14 | access to local variable b2 : B | extensions.cs:207:38:207:39 | access to local variable b2 : B | provenance | | +| extensions.cs:206:18:206:31 | call to method Source : B | extensions.cs:206:13:206:14 | access to local variable b2 : B | provenance | | +| extensions.cs:206:18:206:31 | call to method Source : B | extensions.cs:206:13:206:14 | access to local variable b2 : B | provenance | | +| extensions.cs:207:38:207:39 | access to local variable b2 : B | extensions.cs:38:13:38:15 | value : B | provenance | | +| extensions.cs:207:38:207:39 | access to local variable b2 : B | extensions.cs:38:13:38:15 | value : B | provenance | | +| extensions.cs:212:13:212:14 | access to local variable b1 : B | extensions.cs:213:9:213:10 | access to local variable b1 : B | provenance | | +| extensions.cs:212:13:212:14 | access to local variable b1 : B | extensions.cs:213:9:213:10 | access to local variable b1 : B | provenance | | +| extensions.cs:212:18:212:30 | call to method Source : B | extensions.cs:212:13:212:14 | access to local variable b1 : B | provenance | | +| extensions.cs:212:18:212:30 | call to method Source : B | extensions.cs:212:13:212:14 | access to local variable b1 : B | provenance | | +| extensions.cs:213:9:213:10 | access to local variable b1 : B | extensions.cs:76:17:76:17 | b : B | provenance | | +| extensions.cs:213:9:213:10 | access to local variable b1 : B | extensions.cs:76:17:76:17 | b : B | provenance | | +| extensions.cs:215:13:215:14 | access to local variable b2 : B | extensions.cs:216:25:216:26 | access to local variable b2 : B | provenance | | +| extensions.cs:215:13:215:14 | access to local variable b2 : B | extensions.cs:216:25:216:26 | access to local variable b2 : B | provenance | | +| extensions.cs:215:18:215:31 | call to method Source : B | extensions.cs:215:13:215:14 | access to local variable b2 : B | provenance | | +| extensions.cs:215:18:215:31 | call to method Source : B | extensions.cs:215:13:215:14 | access to local variable b2 : B | provenance | | +| extensions.cs:216:25:216:26 | access to local variable b2 : B | extensions.cs:76:17:76:17 | b : B | provenance | | +| extensions.cs:216:25:216:26 | access to local variable b2 : B | extensions.cs:76:17:76:17 | b : B | provenance | | +| extensions.cs:221:13:221:14 | access to local variable b1 : B | extensions.cs:222:9:222:10 | access to local variable b1 : B | provenance | | +| extensions.cs:221:13:221:14 | access to local variable b1 : B | extensions.cs:222:9:222:10 | access to local variable b1 : B | provenance | | +| extensions.cs:221:18:221:30 | call to method Source : B | extensions.cs:221:13:221:14 | access to local variable b1 : B | provenance | | +| extensions.cs:221:18:221:30 | call to method Source : B | extensions.cs:221:13:221:14 | access to local variable b1 : B | provenance | | +| extensions.cs:222:9:222:10 | access to local variable b1 : B | extensions.cs:89:20:89:20 | t : B | provenance | | +| extensions.cs:222:9:222:10 | access to local variable b1 : B | extensions.cs:89:20:89:20 | t : B | provenance | | +| extensions.cs:224:13:224:14 | access to local variable b2 : B | extensions.cs:225:32:225:33 | access to local variable b2 : B | provenance | | +| extensions.cs:224:13:224:14 | access to local variable b2 : B | extensions.cs:225:32:225:33 | access to local variable b2 : B | provenance | | +| extensions.cs:224:18:224:31 | call to method Source : B | extensions.cs:224:13:224:14 | access to local variable b2 : B | provenance | | +| extensions.cs:224:18:224:31 | call to method Source : B | extensions.cs:224:13:224:14 | access to local variable b2 : B | provenance | | +| extensions.cs:225:32:225:33 | access to local variable b2 : B | extensions.cs:89:20:89:20 | t : B | provenance | | +| extensions.cs:225:32:225:33 | access to local variable b2 : B | extensions.cs:89:20:89:20 | t : B | provenance | | +| extensions.cs:231:13:231:14 | access to local variable b1 : B | extensions.cs:232:32:232:33 | access to local variable b1 : B | provenance | | +| extensions.cs:231:13:231:14 | access to local variable b1 : B | extensions.cs:232:32:232:33 | access to local variable b1 : B | provenance | | +| extensions.cs:231:13:231:14 | access to local variable b1 : B | extensions.cs:235:46:235:47 | access to local variable b1 : B | provenance | | +| extensions.cs:231:13:231:14 | access to local variable b1 : B | extensions.cs:235:46:235:47 | access to local variable b1 : B | provenance | | +| extensions.cs:231:18:231:30 | call to method Source : B | extensions.cs:231:13:231:14 | access to local variable b1 : B | provenance | | +| extensions.cs:231:18:231:30 | call to method Source : B | extensions.cs:231:13:231:14 | access to local variable b1 : B | provenance | | +| extensions.cs:232:13:232:14 | access to local variable b2 : B | extensions.cs:233:14:233:15 | access to local variable b2 | provenance | | +| extensions.cs:232:13:232:14 | access to local variable b2 : B | extensions.cs:233:14:233:15 | access to local variable b2 | provenance | | +| extensions.cs:232:18:232:34 | call to method GenericM2 : B | extensions.cs:232:13:232:14 | access to local variable b2 : B | provenance | | +| extensions.cs:232:18:232:34 | call to method GenericM2 : B | extensions.cs:232:13:232:14 | access to local variable b2 : B | provenance | | +| extensions.cs:232:32:232:33 | access to local variable b1 : B | extensions.cs:96:33:96:37 | other : B | provenance | | +| extensions.cs:232:32:232:33 | access to local variable b1 : B | extensions.cs:96:33:96:37 | other : B | provenance | | +| extensions.cs:232:32:232:33 | access to local variable b1 : B | extensions.cs:232:18:232:34 | call to method GenericM2 : B | provenance | | +| extensions.cs:232:32:232:33 | access to local variable b1 : B | extensions.cs:232:18:232:34 | call to method GenericM2 : B | provenance | | +| extensions.cs:235:13:235:14 | access to local variable b3 : B | extensions.cs:236:14:236:15 | access to local variable b3 | provenance | | +| extensions.cs:235:13:235:14 | access to local variable b3 : B | extensions.cs:236:14:236:15 | access to local variable b3 | provenance | | +| extensions.cs:235:18:235:48 | call to method GenericM2 : B | extensions.cs:235:13:235:14 | access to local variable b3 : B | provenance | | +| extensions.cs:235:18:235:48 | call to method GenericM2 : B | extensions.cs:235:13:235:14 | access to local variable b3 : B | provenance | | +| extensions.cs:235:46:235:47 | access to local variable b1 : B | extensions.cs:96:33:96:37 | other : B | provenance | | +| extensions.cs:235:46:235:47 | access to local variable b1 : B | extensions.cs:96:33:96:37 | other : B | provenance | | +| extensions.cs:235:46:235:47 | access to local variable b1 : B | extensions.cs:235:18:235:48 | call to method GenericM2 : B | provenance | | +| extensions.cs:235:46:235:47 | access to local variable b1 : B | extensions.cs:235:18:235:48 | call to method GenericM2 : B | provenance | | +nodes +| extensions.cs:5:22:5:24 | obj : B | semmle.label | obj : B | +| extensions.cs:5:22:5:24 | obj : B | semmle.label | obj : B | +| extensions.cs:5:22:5:24 | obj : B | semmle.label | obj : B | +| extensions.cs:5:22:5:24 | obj : B | semmle.label | obj : B | +| extensions.cs:5:22:5:24 | obj : B | semmle.label | obj : B | +| extensions.cs:5:22:5:24 | obj : B | semmle.label | obj : B | +| extensions.cs:11:24:11:37 | call to method Source : B | semmle.label | call to method Source : B | +| extensions.cs:11:24:11:37 | call to method Source : B | semmle.label | call to method Source : B | +| extensions.cs:13:13:13:15 | value : B | semmle.label | value : B | +| extensions.cs:13:13:13:15 | value : B | semmle.label | value : B | +| extensions.cs:15:24:15:28 | access to parameter value | semmle.label | access to parameter value | +| extensions.cs:15:24:15:28 | access to parameter value | semmle.label | access to parameter value | +| extensions.cs:23:24:23:26 | access to extension synthetic parameter obj | semmle.label | access to extension synthetic parameter obj | +| extensions.cs:23:24:23:26 | access to extension synthetic parameter obj | semmle.label | access to extension synthetic parameter obj | +| extensions.cs:28:24:28:26 | access to extension synthetic parameter obj | semmle.label | access to extension synthetic parameter obj | +| extensions.cs:28:24:28:26 | access to extension synthetic parameter obj | semmle.label | access to extension synthetic parameter obj | +| extensions.cs:36:24:36:38 | call to method Source : B | semmle.label | call to method Source : B | +| extensions.cs:36:24:36:38 | call to method Source : B | semmle.label | call to method Source : B | +| extensions.cs:38:13:38:15 | value : B | semmle.label | value : B | +| extensions.cs:38:13:38:15 | value : B | semmle.label | value : B | +| extensions.cs:40:24:40:28 | access to parameter value | semmle.label | access to parameter value | +| extensions.cs:40:24:40:28 | access to parameter value | semmle.label | access to parameter value | +| extensions.cs:46:20:46:33 | call to method Source : B | semmle.label | call to method Source : B | +| extensions.cs:46:20:46:33 | call to method Source : B | semmle.label | call to method Source : B | +| extensions.cs:51:20:51:22 | access to extension synthetic parameter obj | semmle.label | access to extension synthetic parameter obj | +| extensions.cs:51:20:51:22 | access to extension synthetic parameter obj | semmle.label | access to extension synthetic parameter obj | +| extensions.cs:59:48:59:48 | a : B | semmle.label | a : B | +| extensions.cs:59:48:59:48 | a : B | semmle.label | a : B | +| extensions.cs:61:20:61:20 | access to parameter a | semmle.label | access to parameter a | +| extensions.cs:61:20:61:20 | access to parameter a | semmle.label | access to parameter a | +| extensions.cs:67:20:67:33 | call to method Source : B | semmle.label | call to method Source : B | +| extensions.cs:67:20:67:33 | call to method Source : B | semmle.label | call to method Source : B | +| extensions.cs:76:17:76:17 | b : B | semmle.label | b : B | +| extensions.cs:76:17:76:17 | b : B | semmle.label | b : B | +| extensions.cs:76:17:76:17 | b : B | semmle.label | b : B | +| extensions.cs:76:17:76:17 | b : B | semmle.label | b : B | +| extensions.cs:80:20:80:20 | access to extension synthetic parameter b : B | semmle.label | access to extension synthetic parameter b : B | +| extensions.cs:80:20:80:20 | access to extension synthetic parameter b : B | semmle.label | access to extension synthetic parameter b : B | +| extensions.cs:85:20:85:20 | access to extension synthetic parameter b | semmle.label | access to extension synthetic parameter b | +| extensions.cs:85:20:85:20 | access to extension synthetic parameter b | semmle.label | access to extension synthetic parameter b | +| extensions.cs:89:20:89:20 | t : B | semmle.label | t : B | +| extensions.cs:89:20:89:20 | t : B | semmle.label | t : B | +| extensions.cs:93:20:93:20 | access to extension synthetic parameter t | semmle.label | access to extension synthetic parameter t | +| extensions.cs:93:20:93:20 | access to extension synthetic parameter t | semmle.label | access to extension synthetic parameter t | +| extensions.cs:96:33:96:37 | other : B | semmle.label | other : B | +| extensions.cs:96:33:96:37 | other : B | semmle.label | other : B | +| extensions.cs:98:20:98:24 | access to parameter other : B | semmle.label | access to parameter other : B | +| extensions.cs:98:20:98:24 | access to parameter other : B | semmle.label | access to parameter other : B | +| extensions.cs:108:13:108:14 | access to local variable b1 : B | semmle.label | access to local variable b1 : B | +| extensions.cs:108:13:108:14 | access to local variable b1 : B | semmle.label | access to local variable b1 : B | +| extensions.cs:108:18:108:26 | access to property Prop1 : B | semmle.label | access to property Prop1 : B | +| extensions.cs:108:18:108:26 | access to property Prop1 : B | semmle.label | access to property Prop1 : B | +| extensions.cs:109:14:109:15 | access to local variable b1 | semmle.label | access to local variable b1 | +| extensions.cs:109:14:109:15 | access to local variable b1 | semmle.label | access to local variable b1 | +| extensions.cs:111:13:111:14 | access to local variable b2 : B | semmle.label | access to local variable b2 : B | +| extensions.cs:111:13:111:14 | access to local variable b2 : B | semmle.label | access to local variable b2 : B | +| extensions.cs:111:18:111:44 | call to extension accessor get_Prop1 : B | semmle.label | call to extension accessor get_Prop1 : B | +| extensions.cs:111:18:111:44 | call to extension accessor get_Prop1 : B | semmle.label | call to extension accessor get_Prop1 : B | +| extensions.cs:112:14:112:15 | access to local variable b2 | semmle.label | access to local variable b2 | +| extensions.cs:112:14:112:15 | access to local variable b2 | semmle.label | access to local variable b2 | +| extensions.cs:118:21:118:32 | call to method Source : B | semmle.label | call to method Source : B | +| extensions.cs:118:21:118:32 | call to method Source : B | semmle.label | call to method Source : B | +| extensions.cs:120:13:120:13 | access to local variable b : B | semmle.label | access to local variable b : B | +| extensions.cs:120:13:120:13 | access to local variable b : B | semmle.label | access to local variable b : B | +| extensions.cs:120:17:120:30 | call to method Source : B | semmle.label | call to method Source : B | +| extensions.cs:120:17:120:30 | call to method Source : B | semmle.label | call to method Source : B | +| extensions.cs:121:37:121:37 | access to local variable b : B | semmle.label | access to local variable b : B | +| extensions.cs:121:37:121:37 | access to local variable b : B | semmle.label | access to local variable b : B | +| extensions.cs:127:13:127:14 | access to local variable b1 : B | semmle.label | access to local variable b1 : B | +| extensions.cs:127:13:127:14 | access to local variable b1 : B | semmle.label | access to local variable b1 : B | +| extensions.cs:127:18:127:25 | call to method M1 : B | semmle.label | call to method M1 : B | +| extensions.cs:127:18:127:25 | call to method M1 : B | semmle.label | call to method M1 : B | +| extensions.cs:128:14:128:15 | access to local variable b1 | semmle.label | access to local variable b1 | +| extensions.cs:128:14:128:15 | access to local variable b1 | semmle.label | access to local variable b1 | +| extensions.cs:130:13:130:14 | access to local variable b2 : B | semmle.label | access to local variable b2 : B | +| extensions.cs:130:13:130:14 | access to local variable b2 : B | semmle.label | access to local variable b2 : B | +| extensions.cs:130:18:130:37 | call to method M1 : B | semmle.label | call to method M1 : B | +| extensions.cs:130:18:130:37 | call to method M1 : B | semmle.label | call to method M1 : B | +| extensions.cs:131:14:131:15 | access to local variable b2 | semmle.label | access to local variable b2 | +| extensions.cs:131:14:131:15 | access to local variable b2 | semmle.label | access to local variable b2 | +| extensions.cs:136:13:136:14 | access to local variable b1 : B | semmle.label | access to local variable b1 : B | +| extensions.cs:136:13:136:14 | access to local variable b1 : B | semmle.label | access to local variable b1 : B | +| extensions.cs:136:18:136:29 | call to method Source : B | semmle.label | call to method Source : B | +| extensions.cs:136:18:136:29 | call to method Source : B | semmle.label | call to method Source : B | +| extensions.cs:137:9:137:10 | access to local variable b1 : B | semmle.label | access to local variable b1 : B | +| extensions.cs:137:9:137:10 | access to local variable b1 : B | semmle.label | access to local variable b1 : B | +| extensions.cs:139:13:139:14 | access to local variable b2 : B | semmle.label | access to local variable b2 : B | +| extensions.cs:139:13:139:14 | access to local variable b2 : B | semmle.label | access to local variable b2 : B | +| extensions.cs:139:18:139:31 | call to method Source : B | semmle.label | call to method Source : B | +| extensions.cs:139:18:139:31 | call to method Source : B | semmle.label | call to method Source : B | +| extensions.cs:140:25:140:26 | access to local variable b2 : B | semmle.label | access to local variable b2 : B | +| extensions.cs:140:25:140:26 | access to local variable b2 : B | semmle.label | access to local variable b2 : B | +| extensions.cs:145:13:145:14 | access to local variable b1 : B | semmle.label | access to local variable b1 : B | +| extensions.cs:145:13:145:14 | access to local variable b1 : B | semmle.label | access to local variable b1 : B | +| extensions.cs:145:18:145:29 | call to method Source : B | semmle.label | call to method Source : B | +| extensions.cs:145:18:145:29 | call to method Source : B | semmle.label | call to method Source : B | +| extensions.cs:146:13:146:14 | access to local variable b2 : B | semmle.label | access to local variable b2 : B | +| extensions.cs:146:13:146:14 | access to local variable b2 : B | semmle.label | access to local variable b2 : B | +| extensions.cs:146:18:146:19 | access to local variable b1 : B | semmle.label | access to local variable b1 : B | +| extensions.cs:146:18:146:19 | access to local variable b1 : B | semmle.label | access to local variable b1 : B | +| extensions.cs:146:18:146:24 | call to method B1 : B | semmle.label | call to method B1 : B | +| extensions.cs:146:18:146:24 | call to method B1 : B | semmle.label | call to method B1 : B | +| extensions.cs:147:14:147:15 | access to local variable b2 | semmle.label | access to local variable b2 | +| extensions.cs:147:14:147:15 | access to local variable b2 | semmle.label | access to local variable b2 | +| extensions.cs:149:13:149:14 | access to local variable b3 : B | semmle.label | access to local variable b3 : B | +| extensions.cs:149:13:149:14 | access to local variable b3 : B | semmle.label | access to local variable b3 : B | +| extensions.cs:149:18:149:36 | call to method B1 : B | semmle.label | call to method B1 : B | +| extensions.cs:149:18:149:36 | call to method B1 : B | semmle.label | call to method B1 : B | +| extensions.cs:149:34:149:35 | access to local variable b1 : B | semmle.label | access to local variable b1 : B | +| extensions.cs:149:34:149:35 | access to local variable b1 : B | semmle.label | access to local variable b1 : B | +| extensions.cs:150:14:150:15 | access to local variable b3 | semmle.label | access to local variable b3 | +| extensions.cs:150:14:150:15 | access to local variable b3 | semmle.label | access to local variable b3 | +| extensions.cs:155:13:155:14 | access to local variable b1 : B | semmle.label | access to local variable b1 : B | +| extensions.cs:155:13:155:14 | access to local variable b1 : B | semmle.label | access to local variable b1 : B | +| extensions.cs:155:18:155:29 | call to method Source : B | semmle.label | call to method Source : B | +| extensions.cs:155:18:155:29 | call to method Source : B | semmle.label | call to method Source : B | +| extensions.cs:156:18:156:19 | access to local variable b1 : B | semmle.label | access to local variable b1 : B | +| extensions.cs:156:18:156:19 | access to local variable b1 : B | semmle.label | access to local variable b1 : B | +| extensions.cs:158:13:158:14 | access to local variable b3 : B | semmle.label | access to local variable b3 : B | +| extensions.cs:158:13:158:14 | access to local variable b3 : B | semmle.label | access to local variable b3 : B | +| extensions.cs:158:18:158:31 | call to method Source : B | semmle.label | call to method Source : B | +| extensions.cs:158:18:158:31 | call to method Source : B | semmle.label | call to method Source : B | +| extensions.cs:159:41:159:42 | access to local variable b3 : B | semmle.label | access to local variable b3 : B | +| extensions.cs:159:41:159:42 | access to local variable b3 : B | semmle.label | access to local variable b3 : B | +| extensions.cs:164:13:164:14 | access to local variable b1 : B | semmle.label | access to local variable b1 : B | +| extensions.cs:164:13:164:14 | access to local variable b1 : B | semmle.label | access to local variable b1 : B | +| extensions.cs:164:18:164:29 | call to method Source : B | semmle.label | call to method Source : B | +| extensions.cs:164:18:164:29 | call to method Source : B | semmle.label | call to method Source : B | +| extensions.cs:165:9:165:10 | access to local variable b1 : B | semmle.label | access to local variable b1 : B | +| extensions.cs:165:9:165:10 | access to local variable b1 : B | semmle.label | access to local variable b1 : B | +| extensions.cs:167:13:167:14 | access to local variable b2 : B | semmle.label | access to local variable b2 : B | +| extensions.cs:167:13:167:14 | access to local variable b2 : B | semmle.label | access to local variable b2 : B | +| extensions.cs:167:18:167:31 | call to method Source : B | semmle.label | call to method Source : B | +| extensions.cs:167:18:167:31 | call to method Source : B | semmle.label | call to method Source : B | +| extensions.cs:168:32:168:33 | access to local variable b2 : B | semmle.label | access to local variable b2 : B | +| extensions.cs:168:32:168:33 | access to local variable b2 : B | semmle.label | access to local variable b2 : B | +| extensions.cs:173:13:173:14 | access to local variable b1 : B | semmle.label | access to local variable b1 : B | +| extensions.cs:173:13:173:14 | access to local variable b1 : B | semmle.label | access to local variable b1 : B | +| extensions.cs:173:18:173:29 | call to method Source : B | semmle.label | call to method Source : B | +| extensions.cs:173:18:173:29 | call to method Source : B | semmle.label | call to method Source : B | +| extensions.cs:175:18:175:19 | access to local variable b1 : B | semmle.label | access to local variable b1 : B | +| extensions.cs:175:18:175:19 | access to local variable b1 : B | semmle.label | access to local variable b1 : B | +| extensions.cs:177:13:177:14 | access to local variable b4 : B | semmle.label | access to local variable b4 : B | +| extensions.cs:177:13:177:14 | access to local variable b4 : B | semmle.label | access to local variable b4 : B | +| extensions.cs:177:18:177:31 | call to method Source : B | semmle.label | call to method Source : B | +| extensions.cs:177:18:177:31 | call to method Source : B | semmle.label | call to method Source : B | +| extensions.cs:178:43:178:44 | access to local variable b4 : B | semmle.label | access to local variable b4 : B | +| extensions.cs:178:43:178:44 | access to local variable b4 : B | semmle.label | access to local variable b4 : B | +| extensions.cs:185:13:185:14 | access to local variable b3 : B | semmle.label | access to local variable b3 : B | +| extensions.cs:185:13:185:14 | access to local variable b3 : B | semmle.label | access to local variable b3 : B | +| extensions.cs:185:18:185:24 | call to operator - : B | semmle.label | call to operator - : B | +| extensions.cs:185:18:185:24 | call to operator - : B | semmle.label | call to operator - : B | +| extensions.cs:186:14:186:15 | access to local variable b3 | semmle.label | access to local variable b3 | +| extensions.cs:186:14:186:15 | access to local variable b3 | semmle.label | access to local variable b3 | +| extensions.cs:188:13:188:14 | access to local variable b4 : B | semmle.label | access to local variable b4 : B | +| extensions.cs:188:13:188:14 | access to local variable b4 : B | semmle.label | access to local variable b4 : B | +| extensions.cs:188:18:188:52 | call to operator - : B | semmle.label | call to operator - : B | +| extensions.cs:188:18:188:52 | call to operator - : B | semmle.label | call to operator - : B | +| extensions.cs:189:14:189:15 | access to local variable b4 | semmle.label | access to local variable b4 | +| extensions.cs:189:14:189:15 | access to local variable b4 | semmle.label | access to local variable b4 | +| extensions.cs:194:13:194:14 | access to local variable b1 : B | semmle.label | access to local variable b1 : B | +| extensions.cs:194:13:194:14 | access to local variable b1 : B | semmle.label | access to local variable b1 : B | +| extensions.cs:194:18:194:35 | access to property StaticProp1 : B | semmle.label | access to property StaticProp1 : B | +| extensions.cs:194:18:194:35 | access to property StaticProp1 : B | semmle.label | access to property StaticProp1 : B | +| extensions.cs:195:14:195:15 | access to local variable b1 | semmle.label | access to local variable b1 | +| extensions.cs:195:14:195:15 | access to local variable b1 | semmle.label | access to local variable b1 | +| extensions.cs:197:13:197:14 | access to local variable b2 : B | semmle.label | access to local variable b2 : B | +| extensions.cs:197:13:197:14 | access to local variable b2 : B | semmle.label | access to local variable b2 : B | +| extensions.cs:197:18:197:47 | call to extension accessor get_StaticProp1 : B | semmle.label | call to extension accessor get_StaticProp1 : B | +| extensions.cs:197:18:197:47 | call to extension accessor get_StaticProp1 : B | semmle.label | call to extension accessor get_StaticProp1 : B | +| extensions.cs:198:14:198:15 | access to local variable b2 | semmle.label | access to local variable b2 | +| extensions.cs:198:14:198:15 | access to local variable b2 | semmle.label | access to local variable b2 | +| extensions.cs:203:13:203:14 | access to local variable b1 : B | semmle.label | access to local variable b1 : B | +| extensions.cs:203:13:203:14 | access to local variable b1 : B | semmle.label | access to local variable b1 : B | +| extensions.cs:203:18:203:30 | call to method Source : B | semmle.label | call to method Source : B | +| extensions.cs:203:18:203:30 | call to method Source : B | semmle.label | call to method Source : B | +| extensions.cs:204:30:204:31 | access to local variable b1 : B | semmle.label | access to local variable b1 : B | +| extensions.cs:204:30:204:31 | access to local variable b1 : B | semmle.label | access to local variable b1 : B | +| extensions.cs:206:13:206:14 | access to local variable b2 : B | semmle.label | access to local variable b2 : B | +| extensions.cs:206:13:206:14 | access to local variable b2 : B | semmle.label | access to local variable b2 : B | +| extensions.cs:206:18:206:31 | call to method Source : B | semmle.label | call to method Source : B | +| extensions.cs:206:18:206:31 | call to method Source : B | semmle.label | call to method Source : B | +| extensions.cs:207:38:207:39 | access to local variable b2 : B | semmle.label | access to local variable b2 : B | +| extensions.cs:207:38:207:39 | access to local variable b2 : B | semmle.label | access to local variable b2 : B | +| extensions.cs:212:13:212:14 | access to local variable b1 : B | semmle.label | access to local variable b1 : B | +| extensions.cs:212:13:212:14 | access to local variable b1 : B | semmle.label | access to local variable b1 : B | +| extensions.cs:212:18:212:30 | call to method Source : B | semmle.label | call to method Source : B | +| extensions.cs:212:18:212:30 | call to method Source : B | semmle.label | call to method Source : B | +| extensions.cs:213:9:213:10 | access to local variable b1 : B | semmle.label | access to local variable b1 : B | +| extensions.cs:213:9:213:10 | access to local variable b1 : B | semmle.label | access to local variable b1 : B | +| extensions.cs:215:13:215:14 | access to local variable b2 : B | semmle.label | access to local variable b2 : B | +| extensions.cs:215:13:215:14 | access to local variable b2 : B | semmle.label | access to local variable b2 : B | +| extensions.cs:215:18:215:31 | call to method Source : B | semmle.label | call to method Source : B | +| extensions.cs:215:18:215:31 | call to method Source : B | semmle.label | call to method Source : B | +| extensions.cs:216:25:216:26 | access to local variable b2 : B | semmle.label | access to local variable b2 : B | +| extensions.cs:216:25:216:26 | access to local variable b2 : B | semmle.label | access to local variable b2 : B | +| extensions.cs:221:13:221:14 | access to local variable b1 : B | semmle.label | access to local variable b1 : B | +| extensions.cs:221:13:221:14 | access to local variable b1 : B | semmle.label | access to local variable b1 : B | +| extensions.cs:221:18:221:30 | call to method Source : B | semmle.label | call to method Source : B | +| extensions.cs:221:18:221:30 | call to method Source : B | semmle.label | call to method Source : B | +| extensions.cs:222:9:222:10 | access to local variable b1 : B | semmle.label | access to local variable b1 : B | +| extensions.cs:222:9:222:10 | access to local variable b1 : B | semmle.label | access to local variable b1 : B | +| extensions.cs:224:13:224:14 | access to local variable b2 : B | semmle.label | access to local variable b2 : B | +| extensions.cs:224:13:224:14 | access to local variable b2 : B | semmle.label | access to local variable b2 : B | +| extensions.cs:224:18:224:31 | call to method Source : B | semmle.label | call to method Source : B | +| extensions.cs:224:18:224:31 | call to method Source : B | semmle.label | call to method Source : B | +| extensions.cs:225:32:225:33 | access to local variable b2 : B | semmle.label | access to local variable b2 : B | +| extensions.cs:225:32:225:33 | access to local variable b2 : B | semmle.label | access to local variable b2 : B | +| extensions.cs:231:13:231:14 | access to local variable b1 : B | semmle.label | access to local variable b1 : B | +| extensions.cs:231:13:231:14 | access to local variable b1 : B | semmle.label | access to local variable b1 : B | +| extensions.cs:231:18:231:30 | call to method Source : B | semmle.label | call to method Source : B | +| extensions.cs:231:18:231:30 | call to method Source : B | semmle.label | call to method Source : B | +| extensions.cs:232:13:232:14 | access to local variable b2 : B | semmle.label | access to local variable b2 : B | +| extensions.cs:232:13:232:14 | access to local variable b2 : B | semmle.label | access to local variable b2 : B | +| extensions.cs:232:18:232:34 | call to method GenericM2 : B | semmle.label | call to method GenericM2 : B | +| extensions.cs:232:18:232:34 | call to method GenericM2 : B | semmle.label | call to method GenericM2 : B | +| extensions.cs:232:32:232:33 | access to local variable b1 : B | semmle.label | access to local variable b1 : B | +| extensions.cs:232:32:232:33 | access to local variable b1 : B | semmle.label | access to local variable b1 : B | +| extensions.cs:233:14:233:15 | access to local variable b2 | semmle.label | access to local variable b2 | +| extensions.cs:233:14:233:15 | access to local variable b2 | semmle.label | access to local variable b2 | +| extensions.cs:235:13:235:14 | access to local variable b3 : B | semmle.label | access to local variable b3 : B | +| extensions.cs:235:13:235:14 | access to local variable b3 : B | semmle.label | access to local variable b3 : B | +| extensions.cs:235:18:235:48 | call to method GenericM2 : B | semmle.label | call to method GenericM2 : B | +| extensions.cs:235:18:235:48 | call to method GenericM2 : B | semmle.label | call to method GenericM2 : B | +| extensions.cs:235:46:235:47 | access to local variable b1 : B | semmle.label | access to local variable b1 : B | +| extensions.cs:235:46:235:47 | access to local variable b1 : B | semmle.label | access to local variable b1 : B | +| extensions.cs:236:14:236:15 | access to local variable b3 | semmle.label | access to local variable b3 | +| extensions.cs:236:14:236:15 | access to local variable b3 | semmle.label | access to local variable b3 | +subpaths +| extensions.cs:146:18:146:19 | access to local variable b1 : B | extensions.cs:76:17:76:17 | b : B | extensions.cs:80:20:80:20 | access to extension synthetic parameter b : B | extensions.cs:146:18:146:24 | call to method B1 : B | +| extensions.cs:146:18:146:19 | access to local variable b1 : B | extensions.cs:76:17:76:17 | b : B | extensions.cs:80:20:80:20 | access to extension synthetic parameter b : B | extensions.cs:146:18:146:24 | call to method B1 : B | +| extensions.cs:149:34:149:35 | access to local variable b1 : B | extensions.cs:76:17:76:17 | b : B | extensions.cs:80:20:80:20 | access to extension synthetic parameter b : B | extensions.cs:149:18:149:36 | call to method B1 : B | +| extensions.cs:149:34:149:35 | access to local variable b1 : B | extensions.cs:76:17:76:17 | b : B | extensions.cs:80:20:80:20 | access to extension synthetic parameter b : B | extensions.cs:149:18:149:36 | call to method B1 : B | +| extensions.cs:232:32:232:33 | access to local variable b1 : B | extensions.cs:96:33:96:37 | other : B | extensions.cs:98:20:98:24 | access to parameter other : B | extensions.cs:232:18:232:34 | call to method GenericM2 : B | +| extensions.cs:232:32:232:33 | access to local variable b1 : B | extensions.cs:96:33:96:37 | other : B | extensions.cs:98:20:98:24 | access to parameter other : B | extensions.cs:232:18:232:34 | call to method GenericM2 : B | +| extensions.cs:235:46:235:47 | access to local variable b1 : B | extensions.cs:96:33:96:37 | other : B | extensions.cs:98:20:98:24 | access to parameter other : B | extensions.cs:235:18:235:48 | call to method GenericM2 : B | +| extensions.cs:235:46:235:47 | access to local variable b1 : B | extensions.cs:96:33:96:37 | other : B | extensions.cs:98:20:98:24 | access to parameter other : B | extensions.cs:235:18:235:48 | call to method GenericM2 : B | +testFailures +#select +| extensions.cs:15:24:15:28 | access to parameter value | extensions.cs:118:21:118:32 | call to method Source : B | extensions.cs:15:24:15:28 | access to parameter value | $@ | extensions.cs:118:21:118:32 | call to method Source : B | call to method Source : B | +| extensions.cs:15:24:15:28 | access to parameter value | extensions.cs:118:21:118:32 | call to method Source : B | extensions.cs:15:24:15:28 | access to parameter value | $@ | extensions.cs:118:21:118:32 | call to method Source : B | call to method Source : B | +| extensions.cs:15:24:15:28 | access to parameter value | extensions.cs:120:17:120:30 | call to method Source : B | extensions.cs:15:24:15:28 | access to parameter value | $@ | extensions.cs:120:17:120:30 | call to method Source : B | call to method Source : B | +| extensions.cs:15:24:15:28 | access to parameter value | extensions.cs:120:17:120:30 | call to method Source : B | extensions.cs:15:24:15:28 | access to parameter value | $@ | extensions.cs:120:17:120:30 | call to method Source : B | call to method Source : B | +| extensions.cs:23:24:23:26 | access to extension synthetic parameter obj | extensions.cs:155:18:155:29 | call to method Source : B | extensions.cs:23:24:23:26 | access to extension synthetic parameter obj | $@ | extensions.cs:155:18:155:29 | call to method Source : B | call to method Source : B | +| extensions.cs:23:24:23:26 | access to extension synthetic parameter obj | extensions.cs:155:18:155:29 | call to method Source : B | extensions.cs:23:24:23:26 | access to extension synthetic parameter obj | $@ | extensions.cs:155:18:155:29 | call to method Source : B | call to method Source : B | +| extensions.cs:23:24:23:26 | access to extension synthetic parameter obj | extensions.cs:158:18:158:31 | call to method Source : B | extensions.cs:23:24:23:26 | access to extension synthetic parameter obj | $@ | extensions.cs:158:18:158:31 | call to method Source : B | call to method Source : B | +| extensions.cs:23:24:23:26 | access to extension synthetic parameter obj | extensions.cs:158:18:158:31 | call to method Source : B | extensions.cs:23:24:23:26 | access to extension synthetic parameter obj | $@ | extensions.cs:158:18:158:31 | call to method Source : B | call to method Source : B | +| extensions.cs:28:24:28:26 | access to extension synthetic parameter obj | extensions.cs:164:18:164:29 | call to method Source : B | extensions.cs:28:24:28:26 | access to extension synthetic parameter obj | $@ | extensions.cs:164:18:164:29 | call to method Source : B | call to method Source : B | +| extensions.cs:28:24:28:26 | access to extension synthetic parameter obj | extensions.cs:164:18:164:29 | call to method Source : B | extensions.cs:28:24:28:26 | access to extension synthetic parameter obj | $@ | extensions.cs:164:18:164:29 | call to method Source : B | call to method Source : B | +| extensions.cs:28:24:28:26 | access to extension synthetic parameter obj | extensions.cs:167:18:167:31 | call to method Source : B | extensions.cs:28:24:28:26 | access to extension synthetic parameter obj | $@ | extensions.cs:167:18:167:31 | call to method Source : B | call to method Source : B | +| extensions.cs:28:24:28:26 | access to extension synthetic parameter obj | extensions.cs:167:18:167:31 | call to method Source : B | extensions.cs:28:24:28:26 | access to extension synthetic parameter obj | $@ | extensions.cs:167:18:167:31 | call to method Source : B | call to method Source : B | +| extensions.cs:40:24:40:28 | access to parameter value | extensions.cs:203:18:203:30 | call to method Source : B | extensions.cs:40:24:40:28 | access to parameter value | $@ | extensions.cs:203:18:203:30 | call to method Source : B | call to method Source : B | +| extensions.cs:40:24:40:28 | access to parameter value | extensions.cs:203:18:203:30 | call to method Source : B | extensions.cs:40:24:40:28 | access to parameter value | $@ | extensions.cs:203:18:203:30 | call to method Source : B | call to method Source : B | +| extensions.cs:40:24:40:28 | access to parameter value | extensions.cs:206:18:206:31 | call to method Source : B | extensions.cs:40:24:40:28 | access to parameter value | $@ | extensions.cs:206:18:206:31 | call to method Source : B | call to method Source : B | +| extensions.cs:40:24:40:28 | access to parameter value | extensions.cs:206:18:206:31 | call to method Source : B | extensions.cs:40:24:40:28 | access to parameter value | $@ | extensions.cs:206:18:206:31 | call to method Source : B | call to method Source : B | +| extensions.cs:51:20:51:22 | access to extension synthetic parameter obj | extensions.cs:136:18:136:29 | call to method Source : B | extensions.cs:51:20:51:22 | access to extension synthetic parameter obj | $@ | extensions.cs:136:18:136:29 | call to method Source : B | call to method Source : B | +| extensions.cs:51:20:51:22 | access to extension synthetic parameter obj | extensions.cs:136:18:136:29 | call to method Source : B | extensions.cs:51:20:51:22 | access to extension synthetic parameter obj | $@ | extensions.cs:136:18:136:29 | call to method Source : B | call to method Source : B | +| extensions.cs:51:20:51:22 | access to extension synthetic parameter obj | extensions.cs:139:18:139:31 | call to method Source : B | extensions.cs:51:20:51:22 | access to extension synthetic parameter obj | $@ | extensions.cs:139:18:139:31 | call to method Source : B | call to method Source : B | +| extensions.cs:51:20:51:22 | access to extension synthetic parameter obj | extensions.cs:139:18:139:31 | call to method Source : B | extensions.cs:51:20:51:22 | access to extension synthetic parameter obj | $@ | extensions.cs:139:18:139:31 | call to method Source : B | call to method Source : B | +| extensions.cs:61:20:61:20 | access to parameter a | extensions.cs:173:18:173:29 | call to method Source : B | extensions.cs:61:20:61:20 | access to parameter a | $@ | extensions.cs:173:18:173:29 | call to method Source : B | call to method Source : B | +| extensions.cs:61:20:61:20 | access to parameter a | extensions.cs:173:18:173:29 | call to method Source : B | extensions.cs:61:20:61:20 | access to parameter a | $@ | extensions.cs:173:18:173:29 | call to method Source : B | call to method Source : B | +| extensions.cs:61:20:61:20 | access to parameter a | extensions.cs:177:18:177:31 | call to method Source : B | extensions.cs:61:20:61:20 | access to parameter a | $@ | extensions.cs:177:18:177:31 | call to method Source : B | call to method Source : B | +| extensions.cs:61:20:61:20 | access to parameter a | extensions.cs:177:18:177:31 | call to method Source : B | extensions.cs:61:20:61:20 | access to parameter a | $@ | extensions.cs:177:18:177:31 | call to method Source : B | call to method Source : B | +| extensions.cs:85:20:85:20 | access to extension synthetic parameter b | extensions.cs:212:18:212:30 | call to method Source : B | extensions.cs:85:20:85:20 | access to extension synthetic parameter b | $@ | extensions.cs:212:18:212:30 | call to method Source : B | call to method Source : B | +| extensions.cs:85:20:85:20 | access to extension synthetic parameter b | extensions.cs:212:18:212:30 | call to method Source : B | extensions.cs:85:20:85:20 | access to extension synthetic parameter b | $@ | extensions.cs:212:18:212:30 | call to method Source : B | call to method Source : B | +| extensions.cs:85:20:85:20 | access to extension synthetic parameter b | extensions.cs:215:18:215:31 | call to method Source : B | extensions.cs:85:20:85:20 | access to extension synthetic parameter b | $@ | extensions.cs:215:18:215:31 | call to method Source : B | call to method Source : B | +| extensions.cs:85:20:85:20 | access to extension synthetic parameter b | extensions.cs:215:18:215:31 | call to method Source : B | extensions.cs:85:20:85:20 | access to extension synthetic parameter b | $@ | extensions.cs:215:18:215:31 | call to method Source : B | call to method Source : B | +| extensions.cs:93:20:93:20 | access to extension synthetic parameter t | extensions.cs:221:18:221:30 | call to method Source : B | extensions.cs:93:20:93:20 | access to extension synthetic parameter t | $@ | extensions.cs:221:18:221:30 | call to method Source : B | call to method Source : B | +| extensions.cs:93:20:93:20 | access to extension synthetic parameter t | extensions.cs:221:18:221:30 | call to method Source : B | extensions.cs:93:20:93:20 | access to extension synthetic parameter t | $@ | extensions.cs:221:18:221:30 | call to method Source : B | call to method Source : B | +| extensions.cs:93:20:93:20 | access to extension synthetic parameter t | extensions.cs:224:18:224:31 | call to method Source : B | extensions.cs:93:20:93:20 | access to extension synthetic parameter t | $@ | extensions.cs:224:18:224:31 | call to method Source : B | call to method Source : B | +| extensions.cs:93:20:93:20 | access to extension synthetic parameter t | extensions.cs:224:18:224:31 | call to method Source : B | extensions.cs:93:20:93:20 | access to extension synthetic parameter t | $@ | extensions.cs:224:18:224:31 | call to method Source : B | call to method Source : B | +| extensions.cs:109:14:109:15 | access to local variable b1 | extensions.cs:11:24:11:37 | call to method Source : B | extensions.cs:109:14:109:15 | access to local variable b1 | $@ | extensions.cs:11:24:11:37 | call to method Source : B | call to method Source : B | +| extensions.cs:109:14:109:15 | access to local variable b1 | extensions.cs:11:24:11:37 | call to method Source : B | extensions.cs:109:14:109:15 | access to local variable b1 | $@ | extensions.cs:11:24:11:37 | call to method Source : B | call to method Source : B | +| extensions.cs:112:14:112:15 | access to local variable b2 | extensions.cs:11:24:11:37 | call to method Source : B | extensions.cs:112:14:112:15 | access to local variable b2 | $@ | extensions.cs:11:24:11:37 | call to method Source : B | call to method Source : B | +| extensions.cs:112:14:112:15 | access to local variable b2 | extensions.cs:11:24:11:37 | call to method Source : B | extensions.cs:112:14:112:15 | access to local variable b2 | $@ | extensions.cs:11:24:11:37 | call to method Source : B | call to method Source : B | +| extensions.cs:128:14:128:15 | access to local variable b1 | extensions.cs:46:20:46:33 | call to method Source : B | extensions.cs:128:14:128:15 | access to local variable b1 | $@ | extensions.cs:46:20:46:33 | call to method Source : B | call to method Source : B | +| extensions.cs:128:14:128:15 | access to local variable b1 | extensions.cs:46:20:46:33 | call to method Source : B | extensions.cs:128:14:128:15 | access to local variable b1 | $@ | extensions.cs:46:20:46:33 | call to method Source : B | call to method Source : B | +| extensions.cs:131:14:131:15 | access to local variable b2 | extensions.cs:46:20:46:33 | call to method Source : B | extensions.cs:131:14:131:15 | access to local variable b2 | $@ | extensions.cs:46:20:46:33 | call to method Source : B | call to method Source : B | +| extensions.cs:131:14:131:15 | access to local variable b2 | extensions.cs:46:20:46:33 | call to method Source : B | extensions.cs:131:14:131:15 | access to local variable b2 | $@ | extensions.cs:46:20:46:33 | call to method Source : B | call to method Source : B | +| extensions.cs:147:14:147:15 | access to local variable b2 | extensions.cs:145:18:145:29 | call to method Source : B | extensions.cs:147:14:147:15 | access to local variable b2 | $@ | extensions.cs:145:18:145:29 | call to method Source : B | call to method Source : B | +| extensions.cs:147:14:147:15 | access to local variable b2 | extensions.cs:145:18:145:29 | call to method Source : B | extensions.cs:147:14:147:15 | access to local variable b2 | $@ | extensions.cs:145:18:145:29 | call to method Source : B | call to method Source : B | +| extensions.cs:150:14:150:15 | access to local variable b3 | extensions.cs:145:18:145:29 | call to method Source : B | extensions.cs:150:14:150:15 | access to local variable b3 | $@ | extensions.cs:145:18:145:29 | call to method Source : B | call to method Source : B | +| extensions.cs:150:14:150:15 | access to local variable b3 | extensions.cs:145:18:145:29 | call to method Source : B | extensions.cs:150:14:150:15 | access to local variable b3 | $@ | extensions.cs:145:18:145:29 | call to method Source : B | call to method Source : B | +| extensions.cs:186:14:186:15 | access to local variable b3 | extensions.cs:67:20:67:33 | call to method Source : B | extensions.cs:186:14:186:15 | access to local variable b3 | $@ | extensions.cs:67:20:67:33 | call to method Source : B | call to method Source : B | +| extensions.cs:186:14:186:15 | access to local variable b3 | extensions.cs:67:20:67:33 | call to method Source : B | extensions.cs:186:14:186:15 | access to local variable b3 | $@ | extensions.cs:67:20:67:33 | call to method Source : B | call to method Source : B | +| extensions.cs:189:14:189:15 | access to local variable b4 | extensions.cs:67:20:67:33 | call to method Source : B | extensions.cs:189:14:189:15 | access to local variable b4 | $@ | extensions.cs:67:20:67:33 | call to method Source : B | call to method Source : B | +| extensions.cs:189:14:189:15 | access to local variable b4 | extensions.cs:67:20:67:33 | call to method Source : B | extensions.cs:189:14:189:15 | access to local variable b4 | $@ | extensions.cs:67:20:67:33 | call to method Source : B | call to method Source : B | +| extensions.cs:195:14:195:15 | access to local variable b1 | extensions.cs:36:24:36:38 | call to method Source : B | extensions.cs:195:14:195:15 | access to local variable b1 | $@ | extensions.cs:36:24:36:38 | call to method Source : B | call to method Source : B | +| extensions.cs:195:14:195:15 | access to local variable b1 | extensions.cs:36:24:36:38 | call to method Source : B | extensions.cs:195:14:195:15 | access to local variable b1 | $@ | extensions.cs:36:24:36:38 | call to method Source : B | call to method Source : B | +| extensions.cs:198:14:198:15 | access to local variable b2 | extensions.cs:36:24:36:38 | call to method Source : B | extensions.cs:198:14:198:15 | access to local variable b2 | $@ | extensions.cs:36:24:36:38 | call to method Source : B | call to method Source : B | +| extensions.cs:198:14:198:15 | access to local variable b2 | extensions.cs:36:24:36:38 | call to method Source : B | extensions.cs:198:14:198:15 | access to local variable b2 | $@ | extensions.cs:36:24:36:38 | call to method Source : B | call to method Source : B | +| extensions.cs:233:14:233:15 | access to local variable b2 | extensions.cs:231:18:231:30 | call to method Source : B | extensions.cs:233:14:233:15 | access to local variable b2 | $@ | extensions.cs:231:18:231:30 | call to method Source : B | call to method Source : B | +| extensions.cs:233:14:233:15 | access to local variable b2 | extensions.cs:231:18:231:30 | call to method Source : B | extensions.cs:233:14:233:15 | access to local variable b2 | $@ | extensions.cs:231:18:231:30 | call to method Source : B | call to method Source : B | +| extensions.cs:236:14:236:15 | access to local variable b3 | extensions.cs:231:18:231:30 | call to method Source : B | extensions.cs:236:14:236:15 | access to local variable b3 | $@ | extensions.cs:231:18:231:30 | call to method Source : B | call to method Source : B | +| extensions.cs:236:14:236:15 | access to local variable b3 | extensions.cs:231:18:231:30 | call to method Source : B | extensions.cs:236:14:236:15 | access to local variable b3 | $@ | extensions.cs:231:18:231:30 | call to method Source : B | call to method Source : B | diff --git a/csharp/ql/test/library-tests/dataflow/extensions/ExtensionFlow.ql b/csharp/ql/test/library-tests/dataflow/extensions/ExtensionFlow.ql new file mode 100644 index 000000000000..9ab95f59caf3 --- /dev/null +++ b/csharp/ql/test/library-tests/dataflow/extensions/ExtensionFlow.ql @@ -0,0 +1,12 @@ +/** + * @kind path-problem + */ + +import csharp +import utils.test.InlineFlowTest +import DefaultFlowTest +import PathGraph + +from PathNode source, PathNode sink +where flowPath(source, sink) +select sink, source, sink, "$@", source, source.toString() diff --git a/csharp/ql/test/library-tests/dataflow/extensions/extensions.cs b/csharp/ql/test/library-tests/dataflow/extensions/extensions.cs new file mode 100644 index 000000000000..0e1c2226683d --- /dev/null +++ b/csharp/ql/test/library-tests/dataflow/extensions/extensions.cs @@ -0,0 +1,243 @@ +using System; + +public static class MyExtensions +{ + extension(object obj) + { + public B Prop1 + { + get + { + return A.Source(1); + } + set + { + A.Sink(value); // $ hasValueFlow=2 hasValueFlow=102 + } + } + + public B Prop2 + { + get + { + A.Sink(obj); // $ hasValueFlow=6 hasValueFlow=106 + return new B(); + } + set + { + A.Sink(obj); // $ hasValueFlow=7 hasValueFlow=107 + } + } + + public static B StaticProp1 + { + get + { + return A.Source(10); + } + set + { + A.Sink(value); // $ hasValueFlow=11 hasValueFlow=111 + } + } + + public B M1() + { + return A.Source(3); + } + + public void M2() + { + A.Sink(obj); // $ hasValueFlow=4 hasValueFlow=104 + } + + public static B M3(B b) + { + return b; + } + + public static object operator +(object a, object b) + { + A.Sink(a); // $ hasValueFlow=8 hasValueFlow=108 + return new object(); + } + + public static object operator -(object a, object b) + { + return A.Source(9); + } + + public T GenericMethod(T t) + { + return t; + } + } + + extension(B b) + { + public B B1() + { + return b; + } + + public void B2() + { + A.Sink(b); // $ hasValueFlow=12 hasValueFlow=112 + } + } + + extension(T t) where T : class + { + public void GenericM1() + { + A.Sink(t); // $ hasValueFlow=13 hasValueFlow=113 + } + + public S GenericM2(S other) + { + return other; + } + } +} + +public class A +{ + public void Test1() + { + var obj = new object(); + var b1 = obj.Prop1; + Sink(b1); // $ hasValueFlow=1 + + var b2 = MyExtensions.get_Prop1(obj); + Sink(b2); // $ hasValueFlow=1 + } + + public void Test2() + { + var obj = new object(); + obj.Prop1 = Source(2); + + var b = Source(102); + MyExtensions.set_Prop1(obj, b); + } + + public void Test3() + { + var obj = new object(); + var b1 = obj.M1(); + Sink(b1); // $ hasValueFlow=3 + + var b2 = MyExtensions.M1(obj); + Sink(b2); // $ hasValueFlow=3 + } + + public void Test4() + { + var b1 = Source(4); + b1.M2(); + + var b2 = Source(104); + MyExtensions.M2(b2); + } + + public void Test5() + { + var b1 = Source(5); + var b2 = b1.B1(); + Sink(b2); // $ hasValueFlow=5 + + var b3 = MyExtensions.B1(b1); + Sink(b3); // $ hasValueFlow=5 + } + + public void Test6() + { + var b1 = Source(6); + var b2 = b1.Prop2; + + var b3 = Source(106); + var b4 = MyExtensions.get_Prop2(b3); + } + + public void Test7() + { + var b1 = Source(7); + b1.Prop2 = new B(); + + var b2 = Source(107); + MyExtensions.set_Prop2(b2, new B()); + } + + public void Test8() + { + var b1 = Source(8); + var b2 = Source(1); + var b3 = b1 + b2; + + var b4 = Source(108); + var b5 = MyExtensions.op_Addition(b4, b2); + } + + public void Test9() + { + var b1 = Source(0); + var b2 = Source(1); + var b3 = b1 - b2; + Sink(b3); // $ hasValueFlow=9 + + var b4 = MyExtensions.op_Subtraction(b1, b2); + Sink(b4); // $ hasValueFlow=9 + } + + public void Test10() + { + var b1 = object.StaticProp1; + Sink(b1); // $ hasValueFlow=10 + + var b2 = MyExtensions.get_StaticProp1(); + Sink(b2); // $ hasValueFlow=10 + } + + public void Test11() + { + var b1 = Source(11); + object.StaticProp1 = b1; + + var b2 = Source(111); + MyExtensions.set_StaticProp1(b2); + } + + public void Test12() + { + var b1 = Source(12); + b1.B2(); + + var b2 = Source(112); + MyExtensions.B2(b2); + } + + public void Test13() + { + var b1 = Source(13); + b1.GenericM1(); + + var b2 = Source(113); + MyExtensions.GenericM1(b2); + } + + public void Test14() + { + var obj = new object(); + var b1 = Source(14); + var b2 = obj.GenericM2(b1); + Sink(b2); // $ hasValueFlow=14 + + var b3 = MyExtensions.GenericM2(obj, b1); + Sink(b3); // $ hasValueFlow=14 + } + + public static T Source(object source) => throw null; + public static void Sink(object o) { } +} + +public class B { } diff --git a/csharp/ql/test/library-tests/dataflow/external-models/ExternalFlow.cs b/csharp/ql/test/library-tests/dataflow/external-models/ExternalFlow.cs index d7552376c0f0..1fa43ba456e5 100644 --- a/csharp/ql/test/library-tests/dataflow/external-models/ExternalFlow.cs +++ b/csharp/ql/test/library-tests/dataflow/external-models/ExternalFlow.cs @@ -215,9 +215,9 @@ void M4() Sink(Library.GeneratedFlowWithManualNeutral(o2)); // no flow because the modelled method has a manual neutral summary model } - object GeneratedFlow(object o) => throw null; + object GeneratedFlow(object o) => null; - object GeneratedFlowArgs(object o1, object o2) => throw null; + object GeneratedFlowArgs(object o1, object o2) => null; static void Sink(object o) { } } @@ -348,4 +348,98 @@ public void M1() static void Sink(object o) { } } + // Test extensions + public static class TestExtensions + { + extension(object o) + { + public object Method1() => throw null; + public static object StaticMethod1(object s) => throw null; + public object Property1 { get { throw null; } set { throw null; } } + } + + extension(T t) where T : class + { + public T GenericMethod1() => throw null; + public static T GenericStaticMethod1(T t0) => throw null; + public T GenericProperty1 { get { throw null; } set { throw null; } } + } + } + + public class M + { + public void M1() + { + var obj = new object(); + var o1 = obj.Method1(); + Sink(o1); + + var o2 = TestExtensions.Method1(obj); + Sink(o2); + } + + public void M2() + { + var obj = new object(); + var o1 = object.StaticMethod1(obj); + Sink(o1); + + var o2 = TestExtensions.StaticMethod1(obj); + Sink(o2); + } + + public void M3(object o) + { + var obj = new object(); + o.Property1 = obj; + var o1 = o.Property1; + Sink(o1); + } + + public void M4(object o) + { + var obj = new object(); + TestExtensions.set_Property1(o, obj); + var o1 = TestExtensions.get_Property1(o); + Sink(o1); + } + + public void M5() + { + var obj = new object(); + var o1 = obj.GenericMethod1(); + Sink(o1); + + var o2 = TestExtensions.GenericMethod1(obj); + Sink(o2); + } + + public void M6() + { + var obj = new object(); + var o1 = object.GenericStaticMethod1(obj); + Sink(o1); + + var o2 = TestExtensions.GenericStaticMethod1(obj); + Sink(o2); + } + + public void M7(object o) + { + var obj = new object(); + o.GenericProperty1 = obj; + var o1 = o.GenericProperty1; + Sink(o1); + } + + public void M8(object o) + { + var obj = new object(); + TestExtensions.set_GenericProperty1(o, obj); + var o1 = TestExtensions.get_GenericProperty1(o); + Sink(o1); + } + + static void Sink(object o) { } + } } diff --git a/csharp/ql/test/library-tests/dataflow/external-models/ExternalFlow.expected b/csharp/ql/test/library-tests/dataflow/external-models/ExternalFlow.expected index 3099a3fec7e6..b0256d6c41d8 100644 --- a/csharp/ql/test/library-tests/dataflow/external-models/ExternalFlow.expected +++ b/csharp/ql/test/library-tests/dataflow/external-models/ExternalFlow.expected @@ -32,6 +32,14 @@ models | 31 | Summary: My.Qltest; Library; false; GetValue; (); ; Argument[this].SyntheticField[X]; ReturnValue; value; dfc-generated | | 32 | Summary: My.Qltest; Library; false; MixedFlowArgs; (System.Object,System.Object); ; Argument[1]; ReturnValue; value; manual | | 33 | Summary: My.Qltest; Library; false; SetValue; (System.Object); ; Argument[0]; Argument[this].SyntheticField[X]; value; dfc-generated | +| 34 | Summary: My.Qltest; TestExtensions+extension(System.Object); false; Method1; (System.Object); ; Argument[0]; ReturnValue; value; manual | +| 35 | Summary: My.Qltest; TestExtensions+extension(System.Object); false; StaticMethod1; (System.Object); ; Argument[0]; ReturnValue; value; manual | +| 36 | Summary: My.Qltest; TestExtensions+extension(System.Object); false; get_Property1; (System.Object); ; Argument[0].SyntheticField[TestExtensions.Property1]; ReturnValue; value; manual | +| 37 | Summary: My.Qltest; TestExtensions+extension(System.Object); false; set_Property1; (System.Object,System.Object); ; Argument[1]; Argument[0].SyntheticField[TestExtensions.Property1]; value; manual | +| 38 | Summary: My.Qltest; TestExtensions+extension(T); false; GenericMethod1; (T); ; Argument[0]; ReturnValue; value; manual | +| 39 | Summary: My.Qltest; TestExtensions+extension(T); false; GenericStaticMethod1; (T); ; Argument[0]; ReturnValue; value; manual | +| 40 | Summary: My.Qltest; TestExtensions+extension(T); false; get_GenericProperty1; (T); ; Argument[0].SyntheticField[TestExtensions.GenericProperty1]; ReturnValue; value; manual | +| 41 | Summary: My.Qltest; TestExtensions+extension(T); false; set_GenericProperty1; (T,T); ; Argument[1]; Argument[0].SyntheticField[TestExtensions.GenericProperty1]; value; manual | edges | ExternalFlow.cs:9:20:9:23 | access to local variable arg1 : Object | ExternalFlow.cs:10:29:10:32 | access to local variable arg1 : Object | provenance | | | ExternalFlow.cs:9:27:9:38 | object creation of type Object : Object | ExternalFlow.cs:9:20:9:23 | access to local variable arg1 : Object | provenance | | @@ -150,6 +158,73 @@ edges | ExternalFlow.cs:344:13:344:13 | [post] access to local variable l : Library [synthetic X] : Object | ExternalFlow.cs:345:18:345:18 | access to local variable l : Library [synthetic X] : Object | provenance | | | ExternalFlow.cs:344:24:344:24 | access to local variable o : Object | ExternalFlow.cs:344:13:344:13 | [post] access to local variable l : Library [synthetic X] : Object | provenance | MaD:33 | | ExternalFlow.cs:345:18:345:18 | access to local variable l : Library [synthetic X] : Object | ExternalFlow.cs:345:18:345:29 | call to method GetValue | provenance | MaD:31 | +| ExternalFlow.cs:373:17:373:19 | access to local variable obj : Object | ExternalFlow.cs:374:22:374:24 | access to local variable obj : Object | provenance | | +| ExternalFlow.cs:373:17:373:19 | access to local variable obj : Object | ExternalFlow.cs:377:45:377:47 | access to local variable obj : Object | provenance | | +| ExternalFlow.cs:373:23:373:34 | object creation of type Object : Object | ExternalFlow.cs:373:17:373:19 | access to local variable obj : Object | provenance | | +| ExternalFlow.cs:374:17:374:18 | access to local variable o1 : Object | ExternalFlow.cs:375:18:375:19 | access to local variable o1 | provenance | | +| ExternalFlow.cs:374:22:374:24 | access to local variable obj : Object | ExternalFlow.cs:374:22:374:34 | call to method Method1 : Object | provenance | MaD:34 | +| ExternalFlow.cs:374:22:374:34 | call to method Method1 : Object | ExternalFlow.cs:374:17:374:18 | access to local variable o1 : Object | provenance | | +| ExternalFlow.cs:377:17:377:18 | access to local variable o2 : Object | ExternalFlow.cs:378:18:378:19 | access to local variable o2 | provenance | | +| ExternalFlow.cs:377:22:377:48 | call to method Method1 : Object | ExternalFlow.cs:377:17:377:18 | access to local variable o2 : Object | provenance | | +| ExternalFlow.cs:377:45:377:47 | access to local variable obj : Object | ExternalFlow.cs:377:22:377:48 | call to method Method1 : Object | provenance | MaD:34 | +| ExternalFlow.cs:383:17:383:19 | access to local variable obj : Object | ExternalFlow.cs:384:43:384:45 | access to local variable obj : Object | provenance | | +| ExternalFlow.cs:383:17:383:19 | access to local variable obj : Object | ExternalFlow.cs:387:51:387:53 | access to local variable obj : Object | provenance | | +| ExternalFlow.cs:383:23:383:34 | object creation of type Object : Object | ExternalFlow.cs:383:17:383:19 | access to local variable obj : Object | provenance | | +| ExternalFlow.cs:384:17:384:18 | access to local variable o1 : Object | ExternalFlow.cs:385:18:385:19 | access to local variable o1 | provenance | | +| ExternalFlow.cs:384:22:384:46 | call to method StaticMethod1 : Object | ExternalFlow.cs:384:17:384:18 | access to local variable o1 : Object | provenance | | +| ExternalFlow.cs:384:43:384:45 | access to local variable obj : Object | ExternalFlow.cs:384:22:384:46 | call to method StaticMethod1 : Object | provenance | MaD:35 | +| ExternalFlow.cs:387:17:387:18 | access to local variable o2 : Object | ExternalFlow.cs:388:18:388:19 | access to local variable o2 | provenance | | +| ExternalFlow.cs:387:22:387:54 | call to method StaticMethod1 : Object | ExternalFlow.cs:387:17:387:18 | access to local variable o2 : Object | provenance | | +| ExternalFlow.cs:387:51:387:53 | access to local variable obj : Object | ExternalFlow.cs:387:22:387:54 | call to method StaticMethod1 : Object | provenance | MaD:35 | +| ExternalFlow.cs:393:17:393:19 | access to local variable obj : Object | ExternalFlow.cs:394:27:394:29 | access to local variable obj : Object | provenance | | +| ExternalFlow.cs:393:23:393:34 | object creation of type Object : Object | ExternalFlow.cs:393:17:393:19 | access to local variable obj : Object | provenance | | +| ExternalFlow.cs:394:13:394:13 | [post] access to parameter o : Object [synthetic TestExtensions.Property1] : Object | ExternalFlow.cs:395:22:395:22 | access to parameter o : Object [synthetic TestExtensions.Property1] : Object | provenance | | +| ExternalFlow.cs:394:27:394:29 | access to local variable obj : Object | ExternalFlow.cs:394:13:394:13 | [post] access to parameter o : Object [synthetic TestExtensions.Property1] : Object | provenance | MaD:37 | +| ExternalFlow.cs:395:17:395:18 | access to local variable o1 : Object | ExternalFlow.cs:396:18:396:19 | access to local variable o1 | provenance | | +| ExternalFlow.cs:395:22:395:22 | access to parameter o : Object [synthetic TestExtensions.Property1] : Object | ExternalFlow.cs:395:22:395:32 | access to property Property1 : Object | provenance | MaD:36 | +| ExternalFlow.cs:395:22:395:32 | access to property Property1 : Object | ExternalFlow.cs:395:17:395:18 | access to local variable o1 : Object | provenance | | +| ExternalFlow.cs:401:17:401:19 | access to local variable obj : Object | ExternalFlow.cs:402:45:402:47 | access to local variable obj : Object | provenance | | +| ExternalFlow.cs:401:23:401:34 | object creation of type Object : Object | ExternalFlow.cs:401:17:401:19 | access to local variable obj : Object | provenance | | +| ExternalFlow.cs:402:42:402:42 | [post] access to parameter o : Object [synthetic TestExtensions.Property1] : Object | ExternalFlow.cs:403:51:403:51 | access to parameter o : Object [synthetic TestExtensions.Property1] : Object | provenance | | +| ExternalFlow.cs:402:45:402:47 | access to local variable obj : Object | ExternalFlow.cs:402:42:402:42 | [post] access to parameter o : Object [synthetic TestExtensions.Property1] : Object | provenance | MaD:37 | +| ExternalFlow.cs:403:17:403:18 | access to local variable o1 : Object | ExternalFlow.cs:404:18:404:19 | access to local variable o1 | provenance | | +| ExternalFlow.cs:403:22:403:52 | call to extension accessor get_Property1 : Object | ExternalFlow.cs:403:17:403:18 | access to local variable o1 : Object | provenance | | +| ExternalFlow.cs:403:51:403:51 | access to parameter o : Object [synthetic TestExtensions.Property1] : Object | ExternalFlow.cs:403:22:403:52 | call to extension accessor get_Property1 : Object | provenance | MaD:36 | +| ExternalFlow.cs:409:17:409:19 | access to local variable obj : Object | ExternalFlow.cs:410:22:410:24 | access to local variable obj : Object | provenance | | +| ExternalFlow.cs:409:17:409:19 | access to local variable obj : Object | ExternalFlow.cs:413:52:413:54 | access to local variable obj : Object | provenance | | +| ExternalFlow.cs:409:23:409:34 | object creation of type Object : Object | ExternalFlow.cs:409:17:409:19 | access to local variable obj : Object | provenance | | +| ExternalFlow.cs:410:17:410:18 | access to local variable o1 : Object | ExternalFlow.cs:411:18:411:19 | access to local variable o1 | provenance | | +| ExternalFlow.cs:410:22:410:24 | access to local variable obj : Object | ExternalFlow.cs:410:22:410:41 | call to method GenericMethod1 : Object | provenance | MaD:38 | +| ExternalFlow.cs:410:22:410:41 | call to method GenericMethod1 : Object | ExternalFlow.cs:410:17:410:18 | access to local variable o1 : Object | provenance | | +| ExternalFlow.cs:413:17:413:18 | access to local variable o2 : Object | ExternalFlow.cs:414:18:414:19 | access to local variable o2 | provenance | | +| ExternalFlow.cs:413:22:413:55 | call to method GenericMethod1 : Object | ExternalFlow.cs:413:17:413:18 | access to local variable o2 : Object | provenance | | +| ExternalFlow.cs:413:52:413:54 | access to local variable obj : Object | ExternalFlow.cs:413:22:413:55 | call to method GenericMethod1 : Object | provenance | MaD:38 | +| ExternalFlow.cs:419:17:419:19 | access to local variable obj : Object | ExternalFlow.cs:420:50:420:52 | access to local variable obj : Object | provenance | | +| ExternalFlow.cs:419:17:419:19 | access to local variable obj : Object | ExternalFlow.cs:423:58:423:60 | access to local variable obj : Object | provenance | | +| ExternalFlow.cs:419:23:419:34 | object creation of type Object : Object | ExternalFlow.cs:419:17:419:19 | access to local variable obj : Object | provenance | | +| ExternalFlow.cs:420:17:420:18 | access to local variable o1 : Object | ExternalFlow.cs:421:18:421:19 | access to local variable o1 | provenance | | +| ExternalFlow.cs:420:22:420:53 | call to method GenericStaticMethod1 : Object | ExternalFlow.cs:420:17:420:18 | access to local variable o1 : Object | provenance | | +| ExternalFlow.cs:420:50:420:52 | access to local variable obj : Object | ExternalFlow.cs:420:22:420:53 | call to method GenericStaticMethod1 : Object | provenance | MaD:39 | +| ExternalFlow.cs:423:17:423:18 | access to local variable o2 : Object | ExternalFlow.cs:424:18:424:19 | access to local variable o2 | provenance | | +| ExternalFlow.cs:423:22:423:61 | call to method GenericStaticMethod1 : Object | ExternalFlow.cs:423:17:423:18 | access to local variable o2 : Object | provenance | | +| ExternalFlow.cs:423:58:423:60 | access to local variable obj : Object | ExternalFlow.cs:423:22:423:61 | call to method GenericStaticMethod1 : Object | provenance | MaD:39 | +| ExternalFlow.cs:429:17:429:19 | access to local variable obj : Object | ExternalFlow.cs:430:34:430:36 | access to local variable obj : Object | provenance | | +| ExternalFlow.cs:429:23:429:34 | object creation of type Object : Object | ExternalFlow.cs:429:17:429:19 | access to local variable obj : Object | provenance | | +| ExternalFlow.cs:430:13:430:13 | [post] access to parameter o : Object [property GenericProperty1] : Object | ExternalFlow.cs:431:22:431:22 | access to parameter o : Object [property GenericProperty1] : Object | provenance | | +| ExternalFlow.cs:430:13:430:13 | [post] access to parameter o : Object [synthetic TestExtensions.GenericProperty1] : Object | ExternalFlow.cs:431:22:431:22 | access to parameter o : Object [synthetic TestExtensions.GenericProperty1] : Object | provenance | | +| ExternalFlow.cs:430:34:430:36 | access to local variable obj : Object | ExternalFlow.cs:430:13:430:13 | [post] access to parameter o : Object [property GenericProperty1] : Object | provenance | | +| ExternalFlow.cs:430:34:430:36 | access to local variable obj : Object | ExternalFlow.cs:430:13:430:13 | [post] access to parameter o : Object [synthetic TestExtensions.GenericProperty1] : Object | provenance | MaD:41 | +| ExternalFlow.cs:431:17:431:18 | access to local variable o1 : Object | ExternalFlow.cs:432:18:432:19 | access to local variable o1 | provenance | | +| ExternalFlow.cs:431:22:431:22 | access to parameter o : Object [property GenericProperty1] : Object | ExternalFlow.cs:431:22:431:39 | access to property GenericProperty1 : Object | provenance | | +| ExternalFlow.cs:431:22:431:22 | access to parameter o : Object [synthetic TestExtensions.GenericProperty1] : Object | ExternalFlow.cs:431:22:431:39 | access to property GenericProperty1 : Object | provenance | MaD:40 | +| ExternalFlow.cs:431:22:431:39 | access to property GenericProperty1 : Object | ExternalFlow.cs:431:17:431:18 | access to local variable o1 : Object | provenance | | +| ExternalFlow.cs:437:17:437:19 | access to local variable obj : Object | ExternalFlow.cs:438:52:438:54 | access to local variable obj : Object | provenance | | +| ExternalFlow.cs:437:23:437:34 | object creation of type Object : Object | ExternalFlow.cs:437:17:437:19 | access to local variable obj : Object | provenance | | +| ExternalFlow.cs:438:49:438:49 | [post] access to parameter o : Object [synthetic TestExtensions.GenericProperty1] : Object | ExternalFlow.cs:439:58:439:58 | access to parameter o : Object [synthetic TestExtensions.GenericProperty1] : Object | provenance | | +| ExternalFlow.cs:438:52:438:54 | access to local variable obj : Object | ExternalFlow.cs:438:49:438:49 | [post] access to parameter o : Object [synthetic TestExtensions.GenericProperty1] : Object | provenance | MaD:41 | +| ExternalFlow.cs:439:17:439:18 | access to local variable o1 : Object | ExternalFlow.cs:440:18:440:19 | access to local variable o1 | provenance | | +| ExternalFlow.cs:439:22:439:59 | call to extension accessor get_GenericProperty1 : Object | ExternalFlow.cs:439:17:439:18 | access to local variable o1 : Object | provenance | | +| ExternalFlow.cs:439:58:439:58 | access to parameter o : Object [synthetic TestExtensions.GenericProperty1] : Object | ExternalFlow.cs:439:22:439:59 | call to extension accessor get_GenericProperty1 : Object | provenance | MaD:40 | nodes | ExternalFlow.cs:9:20:9:23 | access to local variable arg1 : Object | semmle.label | access to local variable arg1 : Object | | ExternalFlow.cs:9:27:9:38 | object creation of type Object : Object | semmle.label | object creation of type Object : Object | @@ -294,6 +369,80 @@ nodes | ExternalFlow.cs:344:24:344:24 | access to local variable o : Object | semmle.label | access to local variable o : Object | | ExternalFlow.cs:345:18:345:18 | access to local variable l : Library [synthetic X] : Object | semmle.label | access to local variable l : Library [synthetic X] : Object | | ExternalFlow.cs:345:18:345:29 | call to method GetValue | semmle.label | call to method GetValue | +| ExternalFlow.cs:373:17:373:19 | access to local variable obj : Object | semmle.label | access to local variable obj : Object | +| ExternalFlow.cs:373:23:373:34 | object creation of type Object : Object | semmle.label | object creation of type Object : Object | +| ExternalFlow.cs:374:17:374:18 | access to local variable o1 : Object | semmle.label | access to local variable o1 : Object | +| ExternalFlow.cs:374:22:374:24 | access to local variable obj : Object | semmle.label | access to local variable obj : Object | +| ExternalFlow.cs:374:22:374:34 | call to method Method1 : Object | semmle.label | call to method Method1 : Object | +| ExternalFlow.cs:375:18:375:19 | access to local variable o1 | semmle.label | access to local variable o1 | +| ExternalFlow.cs:377:17:377:18 | access to local variable o2 : Object | semmle.label | access to local variable o2 : Object | +| ExternalFlow.cs:377:22:377:48 | call to method Method1 : Object | semmle.label | call to method Method1 : Object | +| ExternalFlow.cs:377:45:377:47 | access to local variable obj : Object | semmle.label | access to local variable obj : Object | +| ExternalFlow.cs:378:18:378:19 | access to local variable o2 | semmle.label | access to local variable o2 | +| ExternalFlow.cs:383:17:383:19 | access to local variable obj : Object | semmle.label | access to local variable obj : Object | +| ExternalFlow.cs:383:23:383:34 | object creation of type Object : Object | semmle.label | object creation of type Object : Object | +| ExternalFlow.cs:384:17:384:18 | access to local variable o1 : Object | semmle.label | access to local variable o1 : Object | +| ExternalFlow.cs:384:22:384:46 | call to method StaticMethod1 : Object | semmle.label | call to method StaticMethod1 : Object | +| ExternalFlow.cs:384:43:384:45 | access to local variable obj : Object | semmle.label | access to local variable obj : Object | +| ExternalFlow.cs:385:18:385:19 | access to local variable o1 | semmle.label | access to local variable o1 | +| ExternalFlow.cs:387:17:387:18 | access to local variable o2 : Object | semmle.label | access to local variable o2 : Object | +| ExternalFlow.cs:387:22:387:54 | call to method StaticMethod1 : Object | semmle.label | call to method StaticMethod1 : Object | +| ExternalFlow.cs:387:51:387:53 | access to local variable obj : Object | semmle.label | access to local variable obj : Object | +| ExternalFlow.cs:388:18:388:19 | access to local variable o2 | semmle.label | access to local variable o2 | +| ExternalFlow.cs:393:17:393:19 | access to local variable obj : Object | semmle.label | access to local variable obj : Object | +| ExternalFlow.cs:393:23:393:34 | object creation of type Object : Object | semmle.label | object creation of type Object : Object | +| ExternalFlow.cs:394:13:394:13 | [post] access to parameter o : Object [synthetic TestExtensions.Property1] : Object | semmle.label | [post] access to parameter o : Object [synthetic TestExtensions.Property1] : Object | +| ExternalFlow.cs:394:27:394:29 | access to local variable obj : Object | semmle.label | access to local variable obj : Object | +| ExternalFlow.cs:395:17:395:18 | access to local variable o1 : Object | semmle.label | access to local variable o1 : Object | +| ExternalFlow.cs:395:22:395:22 | access to parameter o : Object [synthetic TestExtensions.Property1] : Object | semmle.label | access to parameter o : Object [synthetic TestExtensions.Property1] : Object | +| ExternalFlow.cs:395:22:395:32 | access to property Property1 : Object | semmle.label | access to property Property1 : Object | +| ExternalFlow.cs:396:18:396:19 | access to local variable o1 | semmle.label | access to local variable o1 | +| ExternalFlow.cs:401:17:401:19 | access to local variable obj : Object | semmle.label | access to local variable obj : Object | +| ExternalFlow.cs:401:23:401:34 | object creation of type Object : Object | semmle.label | object creation of type Object : Object | +| ExternalFlow.cs:402:42:402:42 | [post] access to parameter o : Object [synthetic TestExtensions.Property1] : Object | semmle.label | [post] access to parameter o : Object [synthetic TestExtensions.Property1] : Object | +| ExternalFlow.cs:402:45:402:47 | access to local variable obj : Object | semmle.label | access to local variable obj : Object | +| ExternalFlow.cs:403:17:403:18 | access to local variable o1 : Object | semmle.label | access to local variable o1 : Object | +| ExternalFlow.cs:403:22:403:52 | call to extension accessor get_Property1 : Object | semmle.label | call to extension accessor get_Property1 : Object | +| ExternalFlow.cs:403:51:403:51 | access to parameter o : Object [synthetic TestExtensions.Property1] : Object | semmle.label | access to parameter o : Object [synthetic TestExtensions.Property1] : Object | +| ExternalFlow.cs:404:18:404:19 | access to local variable o1 | semmle.label | access to local variable o1 | +| ExternalFlow.cs:409:17:409:19 | access to local variable obj : Object | semmle.label | access to local variable obj : Object | +| ExternalFlow.cs:409:23:409:34 | object creation of type Object : Object | semmle.label | object creation of type Object : Object | +| ExternalFlow.cs:410:17:410:18 | access to local variable o1 : Object | semmle.label | access to local variable o1 : Object | +| ExternalFlow.cs:410:22:410:24 | access to local variable obj : Object | semmle.label | access to local variable obj : Object | +| ExternalFlow.cs:410:22:410:41 | call to method GenericMethod1 : Object | semmle.label | call to method GenericMethod1 : Object | +| ExternalFlow.cs:411:18:411:19 | access to local variable o1 | semmle.label | access to local variable o1 | +| ExternalFlow.cs:413:17:413:18 | access to local variable o2 : Object | semmle.label | access to local variable o2 : Object | +| ExternalFlow.cs:413:22:413:55 | call to method GenericMethod1 : Object | semmle.label | call to method GenericMethod1 : Object | +| ExternalFlow.cs:413:52:413:54 | access to local variable obj : Object | semmle.label | access to local variable obj : Object | +| ExternalFlow.cs:414:18:414:19 | access to local variable o2 | semmle.label | access to local variable o2 | +| ExternalFlow.cs:419:17:419:19 | access to local variable obj : Object | semmle.label | access to local variable obj : Object | +| ExternalFlow.cs:419:23:419:34 | object creation of type Object : Object | semmle.label | object creation of type Object : Object | +| ExternalFlow.cs:420:17:420:18 | access to local variable o1 : Object | semmle.label | access to local variable o1 : Object | +| ExternalFlow.cs:420:22:420:53 | call to method GenericStaticMethod1 : Object | semmle.label | call to method GenericStaticMethod1 : Object | +| ExternalFlow.cs:420:50:420:52 | access to local variable obj : Object | semmle.label | access to local variable obj : Object | +| ExternalFlow.cs:421:18:421:19 | access to local variable o1 | semmle.label | access to local variable o1 | +| ExternalFlow.cs:423:17:423:18 | access to local variable o2 : Object | semmle.label | access to local variable o2 : Object | +| ExternalFlow.cs:423:22:423:61 | call to method GenericStaticMethod1 : Object | semmle.label | call to method GenericStaticMethod1 : Object | +| ExternalFlow.cs:423:58:423:60 | access to local variable obj : Object | semmle.label | access to local variable obj : Object | +| ExternalFlow.cs:424:18:424:19 | access to local variable o2 | semmle.label | access to local variable o2 | +| ExternalFlow.cs:429:17:429:19 | access to local variable obj : Object | semmle.label | access to local variable obj : Object | +| ExternalFlow.cs:429:23:429:34 | object creation of type Object : Object | semmle.label | object creation of type Object : Object | +| ExternalFlow.cs:430:13:430:13 | [post] access to parameter o : Object [property GenericProperty1] : Object | semmle.label | [post] access to parameter o : Object [property GenericProperty1] : Object | +| ExternalFlow.cs:430:13:430:13 | [post] access to parameter o : Object [synthetic TestExtensions.GenericProperty1] : Object | semmle.label | [post] access to parameter o : Object [synthetic TestExtensions.GenericProperty1] : Object | +| ExternalFlow.cs:430:34:430:36 | access to local variable obj : Object | semmle.label | access to local variable obj : Object | +| ExternalFlow.cs:431:17:431:18 | access to local variable o1 : Object | semmle.label | access to local variable o1 : Object | +| ExternalFlow.cs:431:22:431:22 | access to parameter o : Object [property GenericProperty1] : Object | semmle.label | access to parameter o : Object [property GenericProperty1] : Object | +| ExternalFlow.cs:431:22:431:22 | access to parameter o : Object [synthetic TestExtensions.GenericProperty1] : Object | semmle.label | access to parameter o : Object [synthetic TestExtensions.GenericProperty1] : Object | +| ExternalFlow.cs:431:22:431:39 | access to property GenericProperty1 : Object | semmle.label | access to property GenericProperty1 : Object | +| ExternalFlow.cs:432:18:432:19 | access to local variable o1 | semmle.label | access to local variable o1 | +| ExternalFlow.cs:437:17:437:19 | access to local variable obj : Object | semmle.label | access to local variable obj : Object | +| ExternalFlow.cs:437:23:437:34 | object creation of type Object : Object | semmle.label | object creation of type Object : Object | +| ExternalFlow.cs:438:49:438:49 | [post] access to parameter o : Object [synthetic TestExtensions.GenericProperty1] : Object | semmle.label | [post] access to parameter o : Object [synthetic TestExtensions.GenericProperty1] : Object | +| ExternalFlow.cs:438:52:438:54 | access to local variable obj : Object | semmle.label | access to local variable obj : Object | +| ExternalFlow.cs:439:17:439:18 | access to local variable o1 : Object | semmle.label | access to local variable o1 : Object | +| ExternalFlow.cs:439:22:439:59 | call to extension accessor get_GenericProperty1 : Object | semmle.label | call to extension accessor get_GenericProperty1 : Object | +| ExternalFlow.cs:439:58:439:58 | access to parameter o : Object [synthetic TestExtensions.GenericProperty1] : Object | semmle.label | access to parameter o : Object [synthetic TestExtensions.GenericProperty1] : Object | +| ExternalFlow.cs:440:18:440:19 | access to local variable o1 | semmle.label | access to local variable o1 | subpaths | ExternalFlow.cs:84:29:84:32 | access to local variable objs : null [element] : Object | ExternalFlow.cs:84:35:84:35 | o : Object | ExternalFlow.cs:84:40:84:40 | access to parameter o : Object | ExternalFlow.cs:84:25:84:41 | call to method Map : T[] [element] : Object | invalidModelRow @@ -328,3 +477,15 @@ invalidModelRow | ExternalFlow.cs:324:18:324:44 | call to method GetMyNestedSyntheticField | ExternalFlow.cs:322:21:322:32 | object creation of type Object : Object | ExternalFlow.cs:324:18:324:44 | call to method GetMyNestedSyntheticField | $@ | ExternalFlow.cs:322:21:322:32 | object creation of type Object : Object | object creation of type Object : Object | | ExternalFlow.cs:331:18:331:45 | call to method GetMyFieldOnSyntheticField | ExternalFlow.cs:329:21:329:32 | object creation of type Object : Object | ExternalFlow.cs:331:18:331:45 | call to method GetMyFieldOnSyntheticField | $@ | ExternalFlow.cs:329:21:329:32 | object creation of type Object : Object | object creation of type Object : Object | | ExternalFlow.cs:345:18:345:29 | call to method GetValue | ExternalFlow.cs:343:21:343:32 | object creation of type Object : Object | ExternalFlow.cs:345:18:345:29 | call to method GetValue | $@ | ExternalFlow.cs:343:21:343:32 | object creation of type Object : Object | object creation of type Object : Object | +| ExternalFlow.cs:375:18:375:19 | access to local variable o1 | ExternalFlow.cs:373:23:373:34 | object creation of type Object : Object | ExternalFlow.cs:375:18:375:19 | access to local variable o1 | $@ | ExternalFlow.cs:373:23:373:34 | object creation of type Object : Object | object creation of type Object : Object | +| ExternalFlow.cs:378:18:378:19 | access to local variable o2 | ExternalFlow.cs:373:23:373:34 | object creation of type Object : Object | ExternalFlow.cs:378:18:378:19 | access to local variable o2 | $@ | ExternalFlow.cs:373:23:373:34 | object creation of type Object : Object | object creation of type Object : Object | +| ExternalFlow.cs:385:18:385:19 | access to local variable o1 | ExternalFlow.cs:383:23:383:34 | object creation of type Object : Object | ExternalFlow.cs:385:18:385:19 | access to local variable o1 | $@ | ExternalFlow.cs:383:23:383:34 | object creation of type Object : Object | object creation of type Object : Object | +| ExternalFlow.cs:388:18:388:19 | access to local variable o2 | ExternalFlow.cs:383:23:383:34 | object creation of type Object : Object | ExternalFlow.cs:388:18:388:19 | access to local variable o2 | $@ | ExternalFlow.cs:383:23:383:34 | object creation of type Object : Object | object creation of type Object : Object | +| ExternalFlow.cs:396:18:396:19 | access to local variable o1 | ExternalFlow.cs:393:23:393:34 | object creation of type Object : Object | ExternalFlow.cs:396:18:396:19 | access to local variable o1 | $@ | ExternalFlow.cs:393:23:393:34 | object creation of type Object : Object | object creation of type Object : Object | +| ExternalFlow.cs:404:18:404:19 | access to local variable o1 | ExternalFlow.cs:401:23:401:34 | object creation of type Object : Object | ExternalFlow.cs:404:18:404:19 | access to local variable o1 | $@ | ExternalFlow.cs:401:23:401:34 | object creation of type Object : Object | object creation of type Object : Object | +| ExternalFlow.cs:411:18:411:19 | access to local variable o1 | ExternalFlow.cs:409:23:409:34 | object creation of type Object : Object | ExternalFlow.cs:411:18:411:19 | access to local variable o1 | $@ | ExternalFlow.cs:409:23:409:34 | object creation of type Object : Object | object creation of type Object : Object | +| ExternalFlow.cs:414:18:414:19 | access to local variable o2 | ExternalFlow.cs:409:23:409:34 | object creation of type Object : Object | ExternalFlow.cs:414:18:414:19 | access to local variable o2 | $@ | ExternalFlow.cs:409:23:409:34 | object creation of type Object : Object | object creation of type Object : Object | +| ExternalFlow.cs:421:18:421:19 | access to local variable o1 | ExternalFlow.cs:419:23:419:34 | object creation of type Object : Object | ExternalFlow.cs:421:18:421:19 | access to local variable o1 | $@ | ExternalFlow.cs:419:23:419:34 | object creation of type Object : Object | object creation of type Object : Object | +| ExternalFlow.cs:424:18:424:19 | access to local variable o2 | ExternalFlow.cs:419:23:419:34 | object creation of type Object : Object | ExternalFlow.cs:424:18:424:19 | access to local variable o2 | $@ | ExternalFlow.cs:419:23:419:34 | object creation of type Object : Object | object creation of type Object : Object | +| ExternalFlow.cs:432:18:432:19 | access to local variable o1 | ExternalFlow.cs:429:23:429:34 | object creation of type Object : Object | ExternalFlow.cs:432:18:432:19 | access to local variable o1 | $@ | ExternalFlow.cs:429:23:429:34 | object creation of type Object : Object | object creation of type Object : Object | +| ExternalFlow.cs:440:18:440:19 | access to local variable o1 | ExternalFlow.cs:437:23:437:34 | object creation of type Object : Object | ExternalFlow.cs:440:18:440:19 | access to local variable o1 | $@ | ExternalFlow.cs:437:23:437:34 | object creation of type Object : Object | object creation of type Object : Object | diff --git a/csharp/ql/test/library-tests/dataflow/external-models/ExternalFlow.ext.yml b/csharp/ql/test/library-tests/dataflow/external-models/ExternalFlow.ext.yml index a582a581cf12..21e66b840669 100644 --- a/csharp/ql/test/library-tests/dataflow/external-models/ExternalFlow.ext.yml +++ b/csharp/ql/test/library-tests/dataflow/external-models/ExternalFlow.ext.yml @@ -45,6 +45,14 @@ extensions: - ["My.Qltest", "K", false, "GetMyFieldOnSyntheticField", "()", "", "Argument[this].SyntheticField[My.Qltest.K.MySyntheticField2].Field[My.Qltest.K.MyField]", "ReturnValue", "value", "manual"] - ["My.Qltest", "Library", false, "SetValue", "(System.Object)", "", "Argument[0]", "Argument[this].SyntheticField[X]", "value", "dfc-generated"] - ["My.Qltest", "Library", false, "GetValue", "()", "", "Argument[this].SyntheticField[X]", "ReturnValue", "value", "dfc-generated"] + - ["My.Qltest", "TestExtensions+extension(System.Object)", false, "Method1", "(System.Object)", "", "Argument[0]", "ReturnValue", "value", "manual"] + - ["My.Qltest", "TestExtensions+extension(System.Object)", false, "StaticMethod1", "(System.Object)", "", "Argument[0]", "ReturnValue", "value", "manual"] + - ["My.Qltest", "TestExtensions+extension(System.Object)", false, "get_Property1", "(System.Object)", "", "Argument[0].SyntheticField[TestExtensions.Property1]", "ReturnValue", "value", "manual"] + - ["My.Qltest", "TestExtensions+extension(System.Object)", false, "set_Property1", "(System.Object,System.Object)", "", "Argument[1]", "Argument[0].SyntheticField[TestExtensions.Property1]", "value", "manual"] + - ["My.Qltest", "TestExtensions+extension(T)", false, "GenericMethod1", "(T)", "", "Argument[0]", "ReturnValue", "value", "manual"] + - ["My.Qltest", "TestExtensions+extension(T)", false, "GenericStaticMethod1", "(T)", "", "Argument[0]", "ReturnValue", "value", "manual"] + - ["My.Qltest", "TestExtensions+extension(T)", false, "get_GenericProperty1", "(T)", "", "Argument[0].SyntheticField[TestExtensions.GenericProperty1]", "ReturnValue", "value", "manual"] + - ["My.Qltest", "TestExtensions+extension(T)", false, "set_GenericProperty1", "(T,T)", "", "Argument[1]", "Argument[0].SyntheticField[TestExtensions.GenericProperty1]", "value", "manual"] - addsTo: pack: codeql/csharp-all diff --git a/csharp/ql/test/library-tests/dataflow/global/DataFlowPath.expected b/csharp/ql/test/library-tests/dataflow/global/DataFlowPath.expected index 81f76ca4dc06..1bdd6ddf95ab 100644 --- a/csharp/ql/test/library-tests/dataflow/global/DataFlowPath.expected +++ b/csharp/ql/test/library-tests/dataflow/global/DataFlowPath.expected @@ -29,7 +29,6 @@ edges | Capture.cs:29:26:29:32 | access to parameter tainted : String | Capture.cs:29:17:29:22 | access to local variable sink29 : String | provenance | | | Capture.cs:33:30:33:39 | access to local variable captureIn3 : Func [captured tainted] : String | Capture.cs:29:26:29:32 | access to parameter tainted : String | provenance | MaD:3 | | Capture.cs:33:30:33:39 | access to local variable captureIn3 : Func [captured tainted] : String | Capture.cs:29:26:29:32 | access to parameter tainted : String | provenance | MaD:4 | -| Capture.cs:33:30:33:39 | access to local variable captureIn3 : Func [captured tainted] : String | Capture.cs:29:26:29:32 | access to parameter tainted : String | provenance | heuristic-callback | | Capture.cs:50:50:50:55 | sink39 : String | Capture.cs:52:23:59:13 | (...) => ... : (...) => ... [captured sink39] : String | provenance | | | Capture.cs:52:23:59:13 | (...) => ... : (...) => ... [captured sink39] : String | Capture.cs:350:34:350:34 | a : (...) => ... [captured sink39] : String | provenance | | | Capture.cs:55:27:58:17 | (...) => ... : (...) => ... [captured sink39] : String | Capture.cs:350:34:350:34 | a : (...) => ... [captured sink39] : String | provenance | | @@ -40,7 +39,6 @@ edges | Capture.cs:81:13:81:13 | [post] access to local function M : M [captured sink31] : String | Capture.cs:83:9:83:19 | [post] access to local function CaptureOut2 : CaptureOut2 [captured sink31] : String | provenance | | | Capture.cs:83:9:83:19 | [post] access to local function CaptureOut2 : CaptureOut2 [captured sink31] : String | Capture.cs:84:15:84:20 | access to local variable sink31 | provenance | | | Capture.cs:89:22:89:35 | "taint source" : String | Capture.cs:92:30:92:40 | [post] access to local variable captureOut3 : (...) => ... [captured sink32] : String | provenance | | -| Capture.cs:89:22:89:35 | "taint source" : String | Capture.cs:92:30:92:40 | [post] access to local variable captureOut3 : (...) => ... [captured sink32] : String | provenance | heuristic-callback | | Capture.cs:92:30:92:40 | [post] access to local variable captureOut3 : (...) => ... [captured sink32] : String | Capture.cs:93:15:93:20 | access to local variable sink32 | provenance | | | Capture.cs:114:23:117:13 | [post] (...) => ... : (...) => ... [captured sink40] : String | Capture.cs:123:9:123:33 | [post] access to local function CaptureOutMultipleLambdas : CaptureOutMultipleLambdas [captured sink40] : String | provenance | | | Capture.cs:116:26:116:39 | "taint source" : String | Capture.cs:352:9:352:9 | [post] access to parameter a : (...) => ... [captured sink40] : String | provenance | | @@ -62,10 +60,8 @@ edges | Capture.cs:155:30:155:44 | [post] access to local variable captureThrough3 : (...) => ... [captured sink35] : String | Capture.cs:156:15:156:20 | access to local variable sink35 | provenance | | | Capture.cs:155:30:155:44 | access to local variable captureThrough3 : Func [captured tainted] : String | Capture.cs:152:22:152:28 | access to parameter tainted : String | provenance | MaD:3 | | Capture.cs:155:30:155:44 | access to local variable captureThrough3 : Func [captured tainted] : String | Capture.cs:152:22:152:28 | access to parameter tainted : String | provenance | MaD:4 | -| Capture.cs:155:30:155:44 | access to local variable captureThrough3 : Func [captured tainted] : String | Capture.cs:152:22:152:28 | access to parameter tainted : String | provenance | heuristic-callback | | Capture.cs:155:30:155:44 | access to local variable captureThrough3 : Func [captured tainted] : String | Capture.cs:155:30:155:44 | [post] access to local variable captureThrough3 : (...) => ... [captured sink35] : String | provenance | MaD:3 | | Capture.cs:155:30:155:44 | access to local variable captureThrough3 : Func [captured tainted] : String | Capture.cs:155:30:155:44 | [post] access to local variable captureThrough3 : (...) => ... [captured sink35] : String | provenance | MaD:4 | -| Capture.cs:155:30:155:44 | access to local variable captureThrough3 : Func [captured tainted] : String | Capture.cs:155:30:155:44 | [post] access to local variable captureThrough3 : (...) => ... [captured sink35] : String | provenance | heuristic-callback | | Capture.cs:162:13:162:18 | access to local variable sink36 : String | Capture.cs:163:15:163:20 | access to local variable sink36 | provenance | | | Capture.cs:162:22:162:36 | access to local function CaptureThrough4 : CaptureThrough4 [captured tainted] : String | Capture.cs:160:20:160:26 | access to parameter tainted : String | provenance | | | Capture.cs:162:22:162:36 | access to local function CaptureThrough4 : CaptureThrough4 [captured tainted] : String | Capture.cs:162:22:162:38 | call to local function CaptureThrough4 : String | provenance | | @@ -94,10 +90,8 @@ edges | Capture.cs:228:17:228:30 | "taint source" : String | Capture.cs:229:20:233:9 | (...) => ... : (...) => ... [captured x] : String | provenance | | | Capture.cs:228:17:228:30 | "taint source" : String | Capture.cs:234:15:234:15 | access to local variable x | provenance | | | Capture.cs:229:20:233:9 | (...) => ... : (...) => ... [captured x] : String | Capture.cs:231:19:231:19 | access to local variable x | provenance | MaD:1 | -| Capture.cs:229:20:233:9 | (...) => ... : (...) => ... [captured x] : String | Capture.cs:231:19:231:19 | access to local variable x | provenance | heuristic-callback | | Capture.cs:229:20:233:9 | [post] (...) => ... : (...) => ... [captured x] : String | Capture.cs:234:15:234:15 | access to local variable x | provenance | | | Capture.cs:232:17:232:30 | "taint source" : String | Capture.cs:229:20:233:9 | [post] (...) => ... : (...) => ... [captured x] : String | provenance | | -| Capture.cs:232:17:232:30 | "taint source" : String | Capture.cs:229:20:233:9 | [post] (...) => ... : (...) => ... [captured x] : String | provenance | heuristic-callback | | Capture.cs:242:9:242:9 | [post] access to local variable c : Capture [field Field] : String | Capture.cs:249:9:249:9 | access to local variable a : Action [captured c, field Field] : String | provenance | | | Capture.cs:242:9:242:9 | [post] access to local variable c : Capture [field Field] : String | Capture.cs:251:15:251:15 | access to local variable c : Capture [field Field] : String | provenance | | | Capture.cs:242:19:242:32 | "taint source" : String | Capture.cs:242:9:242:9 | [post] access to local variable c : Capture [field Field] : String | provenance | | diff --git a/csharp/ql/test/library-tests/dataflow/global/TaintTrackingPath.expected b/csharp/ql/test/library-tests/dataflow/global/TaintTrackingPath.expected index 7a6f90e961da..d02d0612c42c 100644 --- a/csharp/ql/test/library-tests/dataflow/global/TaintTrackingPath.expected +++ b/csharp/ql/test/library-tests/dataflow/global/TaintTrackingPath.expected @@ -39,7 +39,6 @@ edges | Capture.cs:29:26:29:32 | access to parameter tainted : String | Capture.cs:29:17:29:22 | access to local variable sink29 : String | provenance | | | Capture.cs:33:30:33:39 | access to local variable captureIn3 : Func [captured tainted] : String | Capture.cs:29:26:29:32 | access to parameter tainted : String | provenance | MaD:5 | | Capture.cs:33:30:33:39 | access to local variable captureIn3 : Func [captured tainted] : String | Capture.cs:29:26:29:32 | access to parameter tainted : String | provenance | MaD:6 | -| Capture.cs:33:30:33:39 | access to local variable captureIn3 : Func [captured tainted] : String | Capture.cs:29:26:29:32 | access to parameter tainted : String | provenance | heuristic-callback | | Capture.cs:50:50:50:55 | sink39 : String | Capture.cs:52:23:59:13 | (...) => ... : (...) => ... [captured sink39] : String | provenance | | | Capture.cs:52:23:59:13 | (...) => ... : (...) => ... [captured sink39] : String | Capture.cs:350:34:350:34 | a : (...) => ... [captured sink39] : String | provenance | | | Capture.cs:55:27:58:17 | (...) => ... : (...) => ... [captured sink39] : String | Capture.cs:350:34:350:34 | a : (...) => ... [captured sink39] : String | provenance | | @@ -50,7 +49,6 @@ edges | Capture.cs:81:13:81:13 | [post] access to local function M : M [captured sink31] : String | Capture.cs:83:9:83:19 | [post] access to local function CaptureOut2 : CaptureOut2 [captured sink31] : String | provenance | | | Capture.cs:83:9:83:19 | [post] access to local function CaptureOut2 : CaptureOut2 [captured sink31] : String | Capture.cs:84:15:84:20 | access to local variable sink31 | provenance | | | Capture.cs:89:22:89:35 | "taint source" : String | Capture.cs:92:30:92:40 | [post] access to local variable captureOut3 : (...) => ... [captured sink32] : String | provenance | | -| Capture.cs:89:22:89:35 | "taint source" : String | Capture.cs:92:30:92:40 | [post] access to local variable captureOut3 : (...) => ... [captured sink32] : String | provenance | heuristic-callback | | Capture.cs:92:30:92:40 | [post] access to local variable captureOut3 : (...) => ... [captured sink32] : String | Capture.cs:93:15:93:20 | access to local variable sink32 | provenance | | | Capture.cs:114:23:117:13 | [post] (...) => ... : (...) => ... [captured sink40] : String | Capture.cs:123:9:123:33 | [post] access to local function CaptureOutMultipleLambdas : CaptureOutMultipleLambdas [captured sink40] : String | provenance | | | Capture.cs:116:26:116:39 | "taint source" : String | Capture.cs:352:9:352:9 | [post] access to parameter a : (...) => ... [captured sink40] : String | provenance | | @@ -72,10 +70,8 @@ edges | Capture.cs:155:30:155:44 | [post] access to local variable captureThrough3 : (...) => ... [captured sink35] : String | Capture.cs:156:15:156:20 | access to local variable sink35 | provenance | | | Capture.cs:155:30:155:44 | access to local variable captureThrough3 : Func [captured tainted] : String | Capture.cs:152:22:152:28 | access to parameter tainted : String | provenance | MaD:5 | | Capture.cs:155:30:155:44 | access to local variable captureThrough3 : Func [captured tainted] : String | Capture.cs:152:22:152:28 | access to parameter tainted : String | provenance | MaD:6 | -| Capture.cs:155:30:155:44 | access to local variable captureThrough3 : Func [captured tainted] : String | Capture.cs:152:22:152:28 | access to parameter tainted : String | provenance | heuristic-callback | | Capture.cs:155:30:155:44 | access to local variable captureThrough3 : Func [captured tainted] : String | Capture.cs:155:30:155:44 | [post] access to local variable captureThrough3 : (...) => ... [captured sink35] : String | provenance | MaD:5 | | Capture.cs:155:30:155:44 | access to local variable captureThrough3 : Func [captured tainted] : String | Capture.cs:155:30:155:44 | [post] access to local variable captureThrough3 : (...) => ... [captured sink35] : String | provenance | MaD:6 | -| Capture.cs:155:30:155:44 | access to local variable captureThrough3 : Func [captured tainted] : String | Capture.cs:155:30:155:44 | [post] access to local variable captureThrough3 : (...) => ... [captured sink35] : String | provenance | heuristic-callback | | Capture.cs:162:13:162:18 | access to local variable sink36 : String | Capture.cs:163:15:163:20 | access to local variable sink36 | provenance | | | Capture.cs:162:22:162:36 | access to local function CaptureThrough4 : CaptureThrough4 [captured tainted] : String | Capture.cs:160:20:160:26 | access to parameter tainted : String | provenance | | | Capture.cs:162:22:162:36 | access to local function CaptureThrough4 : CaptureThrough4 [captured tainted] : String | Capture.cs:162:22:162:38 | call to local function CaptureThrough4 : String | provenance | | @@ -104,10 +100,8 @@ edges | Capture.cs:228:17:228:30 | "taint source" : String | Capture.cs:229:20:233:9 | (...) => ... : (...) => ... [captured x] : String | provenance | | | Capture.cs:228:17:228:30 | "taint source" : String | Capture.cs:234:15:234:15 | access to local variable x | provenance | | | Capture.cs:229:20:233:9 | (...) => ... : (...) => ... [captured x] : String | Capture.cs:231:19:231:19 | access to local variable x | provenance | MaD:1 | -| Capture.cs:229:20:233:9 | (...) => ... : (...) => ... [captured x] : String | Capture.cs:231:19:231:19 | access to local variable x | provenance | heuristic-callback | | Capture.cs:229:20:233:9 | [post] (...) => ... : (...) => ... [captured x] : String | Capture.cs:234:15:234:15 | access to local variable x | provenance | | | Capture.cs:232:17:232:30 | "taint source" : String | Capture.cs:229:20:233:9 | [post] (...) => ... : (...) => ... [captured x] : String | provenance | | -| Capture.cs:232:17:232:30 | "taint source" : String | Capture.cs:229:20:233:9 | [post] (...) => ... : (...) => ... [captured x] : String | provenance | heuristic-callback | | Capture.cs:242:9:242:9 | [post] access to local variable c : Capture [field Field] : String | Capture.cs:249:9:249:9 | access to local variable a : Action [captured c, field Field] : String | provenance | | | Capture.cs:242:9:242:9 | [post] access to local variable c : Capture [field Field] : String | Capture.cs:251:15:251:15 | access to local variable c : Capture [field Field] : String | provenance | | | Capture.cs:242:19:242:32 | "taint source" : String | Capture.cs:242:9:242:9 | [post] access to local variable c : Capture [field Field] : String | provenance | | diff --git a/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected b/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected index 1a067f2644bd..b7ae291bf0fb 100644 --- a/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected +++ b/csharp/ql/test/library-tests/dataflow/library/FlowSummaries.expected @@ -905,29 +905,14 @@ summary | Microsoft.AspNetCore.Builder;ComponentEndpointConventionBuilder;Finally;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.AspNetCore.Builder;ComponentEndpointRouteBuilderExtensions;MapBlazorHub;(Microsoft.AspNetCore.Routing.IEndpointRouteBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.AspNetCore.Builder;ComponentEndpointRouteBuilderExtensions;MapBlazorHub;(Microsoft.AspNetCore.Routing.IEndpointRouteBuilder,System.String,System.Action);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| Microsoft.AspNetCore.Builder;ConfigureHostBuilder;ConfigureAppConfiguration;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.AspNetCore.Builder;ConfigureHostBuilder;ConfigureAppConfiguration;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| Microsoft.AspNetCore.Builder;ConfigureHostBuilder;ConfigureAppConfiguration;(System.Action);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.AspNetCore.Builder;ConfigureHostBuilder;ConfigureAppConfiguration;(System.Action);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.AspNetCore.Builder;ConfigureHostBuilder;ConfigureContainer;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.AspNetCore.Builder;ConfigureHostBuilder;ConfigureContainer;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| Microsoft.AspNetCore.Builder;ConfigureHostBuilder;ConfigureContainer;(System.Action);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.AspNetCore.Builder;ConfigureHostBuilder;ConfigureContainer;(System.Action);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.AspNetCore.Builder;ConfigureHostBuilder;ConfigureHostConfiguration;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.AspNetCore.Builder;ConfigureHostBuilder;ConfigureHostConfiguration;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| Microsoft.AspNetCore.Builder;ConfigureHostBuilder;ConfigureHostConfiguration;(System.Action);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.AspNetCore.Builder;ConfigureHostBuilder;ConfigureHostConfiguration;(System.Action);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.AspNetCore.Builder;ConfigureHostBuilder;ConfigureServices;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.AspNetCore.Builder;ConfigureHostBuilder;ConfigureServices;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| Microsoft.AspNetCore.Builder;ConfigureHostBuilder;ConfigureServices;(System.Action);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.AspNetCore.Builder;ConfigureHostBuilder;ConfigureServices;(System.Action);Argument[this];ReturnValue;value;hq-generated | | Microsoft.AspNetCore.Builder;ConfigureHostBuilder;ConfigureWebHost;(System.Action,System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.AspNetCore.Builder;ConfigureHostBuilder;ConfigureWebHost;(System.Action,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.AspNetCore.Builder;ConfigureHostBuilder;UseServiceProviderFactory;(Microsoft.Extensions.DependencyInjection.IServiceProviderFactory);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.AspNetCore.Builder;ConfigureHostBuilder;UseServiceProviderFactory;(System.Func>);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.AspNetCore.Builder;ConfigureHostBuilder;UseServiceProviderFactory;(System.Func>);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| Microsoft.AspNetCore.Builder;ConfigureHostBuilder;UseServiceProviderFactory;(System.Func>);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.AspNetCore.Builder;ConfigureHostBuilder;UseServiceProviderFactory;(System.Func>);Argument[this];ReturnValue;value;hq-generated | | Microsoft.AspNetCore.Builder;ConfigureWebHostBuilder;Configure;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.AspNetCore.Builder;ConfigureWebHostBuilder;Configure;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.AspNetCore.Builder;ConfigureWebHostBuilder;ConfigureAppConfiguration;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | @@ -1851,12 +1836,8 @@ summary | Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;AddExpirationToken;(Microsoft.Extensions.Caching.Memory.ICacheEntry,Microsoft.Extensions.Primitives.IChangeToken);Argument[1];Argument[0].Property[Microsoft.Extensions.Caching.Memory.ICacheEntry.ExpirationTokens].Element;value;dfc-generated | | Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;AddExpirationToken;(Microsoft.Extensions.Caching.Memory.ICacheEntry,Microsoft.Extensions.Primitives.IChangeToken);Argument[1];ReturnValue.Property[Microsoft.Extensions.Caching.Memory.ICacheEntry.ExpirationTokens].Element;value;dfc-generated | | Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;RegisterPostEvictionCallback;(Microsoft.Extensions.Caching.Memory.ICacheEntry,Microsoft.Extensions.Caching.Memory.PostEvictionDelegate);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;RegisterPostEvictionCallback;(Microsoft.Extensions.Caching.Memory.ICacheEntry,Microsoft.Extensions.Caching.Memory.PostEvictionDelegate);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;RegisterPostEvictionCallback;(Microsoft.Extensions.Caching.Memory.ICacheEntry,Microsoft.Extensions.Caching.Memory.PostEvictionDelegate);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;RegisterPostEvictionCallback;(Microsoft.Extensions.Caching.Memory.ICacheEntry,Microsoft.Extensions.Caching.Memory.PostEvictionDelegate);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;RegisterPostEvictionCallback;(Microsoft.Extensions.Caching.Memory.ICacheEntry,Microsoft.Extensions.Caching.Memory.PostEvictionDelegate,System.Object);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;RegisterPostEvictionCallback;(Microsoft.Extensions.Caching.Memory.ICacheEntry,Microsoft.Extensions.Caching.Memory.PostEvictionDelegate,System.Object);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;RegisterPostEvictionCallback;(Microsoft.Extensions.Caching.Memory.ICacheEntry,Microsoft.Extensions.Caching.Memory.PostEvictionDelegate,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;RegisterPostEvictionCallback;(Microsoft.Extensions.Caching.Memory.ICacheEntry,Microsoft.Extensions.Caching.Memory.PostEvictionDelegate,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;SetAbsoluteExpiration;(Microsoft.Extensions.Caching.Memory.ICacheEntry,System.DateTimeOffset);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;SetAbsoluteExpiration;(Microsoft.Extensions.Caching.Memory.ICacheEntry,System.TimeSpan);Argument[0];ReturnValue;value;dfc-generated | @@ -1866,12 +1847,8 @@ summary | Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;SetSlidingExpiration;(Microsoft.Extensions.Caching.Memory.ICacheEntry,System.TimeSpan);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;SetValue;(Microsoft.Extensions.Caching.Memory.ICacheEntry,System.Object);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Caching.Memory;CacheExtensions;GetOrCreate;(Microsoft.Extensions.Caching.Memory.IMemoryCache,System.Object,System.Func);Argument[2].ReturnValue;ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Caching.Memory;CacheExtensions;GetOrCreate;(Microsoft.Extensions.Caching.Memory.IMemoryCache,System.Object,System.Func);Argument[2].ReturnValue;ReturnValue;value;hq-generated | -| Microsoft.Extensions.Caching.Memory;CacheExtensions;GetOrCreate;(Microsoft.Extensions.Caching.Memory.IMemoryCache,System.Object,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Caching.Memory;CacheExtensions;GetOrCreate;(Microsoft.Extensions.Caching.Memory.IMemoryCache,System.Object,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Caching.Memory;CacheExtensions;GetOrCreate;(Microsoft.Extensions.Caching.Memory.IMemoryCache,System.Object,System.Func,Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions);Argument[2].ReturnValue;ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Caching.Memory;CacheExtensions;GetOrCreate;(Microsoft.Extensions.Caching.Memory.IMemoryCache,System.Object,System.Func,Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions);Argument[2].ReturnValue;ReturnValue;value;hq-generated | -| Microsoft.Extensions.Caching.Memory;CacheExtensions;GetOrCreate;(Microsoft.Extensions.Caching.Memory.IMemoryCache,System.Object,System.Func,Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Caching.Memory;CacheExtensions;GetOrCreate;(Microsoft.Extensions.Caching.Memory.IMemoryCache,System.Object,System.Func,Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Caching.Memory;CacheExtensions;GetOrCreateAsync;(Microsoft.Extensions.Caching.Memory.IMemoryCache,System.Object,System.Func>);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Caching.Memory;CacheExtensions;GetOrCreateAsync;(Microsoft.Extensions.Caching.Memory.IMemoryCache,System.Object,System.Func>,Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | @@ -1891,12 +1868,8 @@ summary | Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;AddExpirationToken;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,Microsoft.Extensions.Primitives.IChangeToken);Argument[1];Argument[0].Property[Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions.ExpirationTokens].Element;value;dfc-generated | | Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;AddExpirationToken;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,Microsoft.Extensions.Primitives.IChangeToken);Argument[1];ReturnValue.Property[Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions.ExpirationTokens].Element;value;dfc-generated | | Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;RegisterPostEvictionCallback;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,Microsoft.Extensions.Caching.Memory.PostEvictionDelegate);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;RegisterPostEvictionCallback;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,Microsoft.Extensions.Caching.Memory.PostEvictionDelegate);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;RegisterPostEvictionCallback;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,Microsoft.Extensions.Caching.Memory.PostEvictionDelegate);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;RegisterPostEvictionCallback;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,Microsoft.Extensions.Caching.Memory.PostEvictionDelegate);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;RegisterPostEvictionCallback;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,Microsoft.Extensions.Caching.Memory.PostEvictionDelegate,System.Object);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;RegisterPostEvictionCallback;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,Microsoft.Extensions.Caching.Memory.PostEvictionDelegate,System.Object);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;RegisterPostEvictionCallback;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,Microsoft.Extensions.Caching.Memory.PostEvictionDelegate,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;RegisterPostEvictionCallback;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,Microsoft.Extensions.Caching.Memory.PostEvictionDelegate,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;SetAbsoluteExpiration;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,System.DateTimeOffset);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;SetAbsoluteExpiration;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,System.TimeSpan);Argument[0];ReturnValue;value;dfc-generated | @@ -1947,7 +1920,6 @@ summary | Microsoft.Extensions.Configuration;ChainedConfigurationProvider;get_Configuration;();Argument[this].SyntheticField[Microsoft.Extensions.Configuration.ChainedConfigurationProvider._config];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Configuration;ChainedConfigurationSource;Build;(Microsoft.Extensions.Configuration.IConfigurationBuilder);Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Configuration;CommandLineConfigurationExtensions;AddCommandLine;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);Argument[1];Argument[0];taint;manual | -| Microsoft.Extensions.Configuration;CommandLineConfigurationExtensions;AddCommandLine;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | Microsoft.Extensions.Configuration;CommandLineConfigurationExtensions;AddCommandLine;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);Argument[1];ReturnValue;taint;manual | | Microsoft.Extensions.Configuration;CommandLineConfigurationExtensions;AddCommandLine;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String[]);Argument[1];Argument[0];taint;manual | | Microsoft.Extensions.Configuration;CommandLineConfigurationExtensions;AddCommandLine;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String[]);Argument[1];ReturnValue;taint;manual | @@ -1959,24 +1931,17 @@ summary | Microsoft.Extensions.Configuration;ConfigurationBinder;Get;(Microsoft.Extensions.Configuration.IConfiguration,System.Type);Argument[0].Property[Microsoft.Extensions.Configuration.IConfigurationSection.Value];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Configuration;ConfigurationBinder;Get;(Microsoft.Extensions.Configuration.IConfiguration,System.Type);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Configuration;ConfigurationBinder;Get;(Microsoft.Extensions.Configuration.IConfiguration,System.Type,System.Action);Argument[0].Property[Microsoft.Extensions.Configuration.IConfigurationSection.Value];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Configuration;ConfigurationBinder;Get;(Microsoft.Extensions.Configuration.IConfiguration,System.Type,System.Action);Argument[0].Property[Microsoft.Extensions.Configuration.IConfigurationSection.Value];ReturnValue;value;hq-generated | | Microsoft.Extensions.Configuration;ConfigurationBinder;Get;(Microsoft.Extensions.Configuration.IConfiguration,System.Type,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Configuration;ConfigurationBinder;Get;(Microsoft.Extensions.Configuration.IConfiguration,System.Type,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Configuration;ConfigurationBinder;Get;(Microsoft.Extensions.Configuration.IConfiguration,System.Type,System.Action);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Configuration;ConfigurationBinder;Get;(Microsoft.Extensions.Configuration.IConfiguration,System.Type,System.Action);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Configuration;ConfigurationBinder;Get;(Microsoft.Extensions.Configuration.IConfiguration);Argument[0].Property[Microsoft.Extensions.Configuration.IConfigurationSection.Value];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Configuration;ConfigurationBinder;Get;(Microsoft.Extensions.Configuration.IConfiguration);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Configuration;ConfigurationBinder;Get;(Microsoft.Extensions.Configuration.IConfiguration,System.Action);Argument[0].Property[Microsoft.Extensions.Configuration.IConfigurationSection.Value];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Configuration;ConfigurationBinder;Get;(Microsoft.Extensions.Configuration.IConfiguration,System.Action);Argument[0].Property[Microsoft.Extensions.Configuration.IConfigurationSection.Value];ReturnValue;value;hq-generated | | Microsoft.Extensions.Configuration;ConfigurationBinder;Get;(Microsoft.Extensions.Configuration.IConfiguration,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Configuration;ConfigurationBinder;Get;(Microsoft.Extensions.Configuration.IConfiguration,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Configuration;ConfigurationBinder;Get;(Microsoft.Extensions.Configuration.IConfiguration,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Configuration;ConfigurationBinder;Get;(Microsoft.Extensions.Configuration.IConfiguration,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Configuration;ConfigurationBinder;GetValue;(Microsoft.Extensions.Configuration.IConfiguration,System.Type,System.String,System.Object);Argument[3];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Configuration;ConfigurationBinder;GetValue;(Microsoft.Extensions.Configuration.IConfiguration,System.String,T);Argument[2];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Configuration;ConfigurationBuilder;Add;(Microsoft.Extensions.Configuration.IConfigurationSource);Argument[0];Argument[this].SyntheticField[Microsoft.Extensions.Configuration.ConfigurationBuilder._sources].Element;value;dfc-generated | | Microsoft.Extensions.Configuration;ConfigurationBuilder;Add;(Microsoft.Extensions.Configuration.IConfigurationSource);Argument[0];ReturnValue.SyntheticField[Microsoft.Extensions.Configuration.ConfigurationBuilder._sources].Element;value;dfc-generated | -| Microsoft.Extensions.Configuration;ConfigurationBuilder;Add;(Microsoft.Extensions.Configuration.IConfigurationSource);Argument[this];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Configuration;ConfigurationBuilder;Build;();Argument[this];ReturnValue;taint;manual | | Microsoft.Extensions.Configuration;ConfigurationBuilder;get_Properties;();Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;ConfigurationBuilder;get_Sources;();Argument[this].SyntheticField[Microsoft.Extensions.Configuration.ConfigurationBuilder._sources];ReturnValue;value;dfc-generated | @@ -1985,13 +1950,10 @@ summary | Microsoft.Extensions.Configuration;ConfigurationDebugViewContext;ConfigurationDebugViewContext;(System.String,System.String,System.String,Microsoft.Extensions.Configuration.IConfigurationProvider);Argument[2];Argument[this].Property[Microsoft.Extensions.Configuration.ConfigurationDebugViewContext.Value];value;dfc-generated | | Microsoft.Extensions.Configuration;ConfigurationDebugViewContext;ConfigurationDebugViewContext;(System.String,System.String,System.String,Microsoft.Extensions.Configuration.IConfigurationProvider);Argument[3];Argument[this].Property[Microsoft.Extensions.Configuration.ConfigurationDebugViewContext.ConfigurationProvider];value;dfc-generated | | Microsoft.Extensions.Configuration;ConfigurationExtensions;Add;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Configuration;ConfigurationExtensions;Add;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Configuration;ConfigurationExtensions;Add;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Configuration;ConfigurationExtensions;Add;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Configuration;ConfigurationKeyNameAttribute;ConfigurationKeyNameAttribute;(System.String);Argument[0];Argument[this].Property[Microsoft.Extensions.Configuration.ConfigurationKeyNameAttribute.Name];value;dfc-generated | | Microsoft.Extensions.Configuration;ConfigurationManager;Add;(Microsoft.Extensions.Configuration.IConfigurationSource);Argument[0];Argument[this].SyntheticField[Microsoft.Extensions.Configuration.ConfigurationManager._sources].Element;value;dfc-generated | | Microsoft.Extensions.Configuration;ConfigurationManager;Add;(Microsoft.Extensions.Configuration.IConfigurationSource);Argument[0];ReturnValue.SyntheticField[Microsoft.Extensions.Configuration.ConfigurationManager._sources].Element;value;dfc-generated | -| Microsoft.Extensions.Configuration;ConfigurationManager;Add;(Microsoft.Extensions.Configuration.IConfigurationSource);Argument[this];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Configuration;ConfigurationManager;Build;();Argument[this];ReturnValue;taint;manual | | Microsoft.Extensions.Configuration;ConfigurationManager;GetReloadToken;();Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;ConfigurationManager;get_Item;(System.String);Argument[this];ReturnValue;taint;manual | @@ -2005,23 +1967,14 @@ summary | Microsoft.Extensions.Configuration;ConfigurationProvider;GetChildKeys;(System.Collections.Generic.IEnumerable,System.String);Argument[0].Element;ReturnValue.Element;value;dfc-generated | | Microsoft.Extensions.Configuration;ConfigurationProvider;GetReloadToken;();Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;ConfigurationProvider;Set;(System.String,System.String);Argument[1];Argument[this];taint;df-generated | -| Microsoft.Extensions.Configuration;ConfigurationReloadToken;RegisterChangeCallback;(System.Action,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Configuration;ConfigurationReloadToken;RegisterChangeCallback;(System.Action,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| Microsoft.Extensions.Configuration;ConfigurationReloadToken;RegisterChangeCallback;(System.Action,System.Object);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Configuration;ConfigurationReloadToken;RegisterChangeCallback;(System.Action,System.Object);Argument[this];ReturnValue;value;hq-generated | | Microsoft.Extensions.Configuration;ConfigurationRoot;ConfigurationRoot;(System.Collections.Generic.IList);Argument[0];Argument[this].SyntheticField[Microsoft.Extensions.Configuration.ConfigurationRoot._providers];value;dfc-generated | | Microsoft.Extensions.Configuration;ConfigurationRoot;GetReloadToken;();Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;ConfigurationRoot;get_Item;(System.String);Argument[this];ReturnValue;taint;manual | -| Microsoft.Extensions.Configuration;ConfigurationRoot;get_Providers;();Argument[this].SyntheticField[Microsoft.Extensions.Configuration.ConfigurationRoot._providers];ReturnValue;value;df-generated | | Microsoft.Extensions.Configuration;ConfigurationRoot;get_Providers;();Argument[this].SyntheticField[Microsoft.Extensions.Configuration.ConfigurationRoot._providers];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Configuration;ConfigurationRoot;get_Providers;();Argument[this];ReturnValue;taint;df-generated | -| Microsoft.Extensions.Configuration;ConfigurationRoot;get_Providers;();Argument[this];ReturnValue;taint;dfc-generated | | Microsoft.Extensions.Configuration;ConfigurationRootExtensions;GetDebugView;(Microsoft.Extensions.Configuration.IConfigurationRoot);Argument[0].Property[Microsoft.Extensions.Configuration.IConfigurationRoot.Providers].Element;ReturnValue;taint;dfc-generated | | Microsoft.Extensions.Configuration;ConfigurationRootExtensions;GetDebugView;(Microsoft.Extensions.Configuration.IConfigurationRoot,System.Func);Argument[0].Property[Microsoft.Extensions.Configuration.IConfigurationRoot.Providers].Element;ReturnValue;taint;dfc-generated | -| Microsoft.Extensions.Configuration;ConfigurationRootExtensions;GetDebugView;(Microsoft.Extensions.Configuration.IConfigurationRoot,System.Func);Argument[0].Property[Microsoft.Extensions.Configuration.IConfigurationRoot.Providers].Element;ReturnValue;taint;hq-generated | | Microsoft.Extensions.Configuration;ConfigurationRootExtensions;GetDebugView;(Microsoft.Extensions.Configuration.IConfigurationRoot,System.Func);Argument[1].ReturnValue;ReturnValue;taint;dfc-generated | -| Microsoft.Extensions.Configuration;ConfigurationRootExtensions;GetDebugView;(Microsoft.Extensions.Configuration.IConfigurationRoot,System.Func);Argument[1].ReturnValue;ReturnValue;taint;hq-generated | -| Microsoft.Extensions.Configuration;ConfigurationRootExtensions;GetDebugView;(Microsoft.Extensions.Configuration.IConfigurationRoot,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Configuration;ConfigurationRootExtensions;GetDebugView;(Microsoft.Extensions.Configuration.IConfigurationRoot,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Configuration;ConfigurationSection;ConfigurationSection;(Microsoft.Extensions.Configuration.IConfigurationRoot,System.String);Argument[1];Argument[this].SyntheticField[Microsoft.Extensions.Configuration.ConfigurationSection._path];value;dfc-generated | | Microsoft.Extensions.Configuration;ConfigurationSection;GetReloadToken;();Argument[this];ReturnValue;taint;df-generated | @@ -2029,16 +1982,12 @@ summary | Microsoft.Extensions.Configuration;ConfigurationSection;get_Path;();Argument[this].SyntheticField[Microsoft.Extensions.Configuration.ConfigurationSection._path];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Configuration;EnvironmentVariablesExtensions;AddEnvironmentVariables;(Microsoft.Extensions.Configuration.IConfigurationBuilder);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Configuration;EnvironmentVariablesExtensions;AddEnvironmentVariables;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Configuration;EnvironmentVariablesExtensions;AddEnvironmentVariables;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Configuration;EnvironmentVariablesExtensions;AddEnvironmentVariables;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Configuration;EnvironmentVariablesExtensions;AddEnvironmentVariables;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Configuration;EnvironmentVariablesExtensions;AddEnvironmentVariables;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Configuration;FileConfigurationExtensions;GetFileLoadExceptionHandler;(Microsoft.Extensions.Configuration.IConfigurationBuilder);Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;FileConfigurationExtensions;GetFileProvider;(Microsoft.Extensions.Configuration.IConfigurationBuilder);Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;FileConfigurationExtensions;SetBasePath;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Configuration;FileConfigurationExtensions;SetFileLoadExceptionHandler;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Configuration;FileConfigurationExtensions;SetFileLoadExceptionHandler;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Configuration;FileConfigurationExtensions;SetFileLoadExceptionHandler;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Configuration;FileConfigurationExtensions;SetFileLoadExceptionHandler;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Configuration;FileConfigurationExtensions;SetFileProvider;(Microsoft.Extensions.Configuration.IConfigurationBuilder,Microsoft.Extensions.FileProviders.IFileProvider);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Configuration;FileConfigurationProvider;FileConfigurationProvider;(Microsoft.Extensions.Configuration.FileConfigurationSource);Argument[0];Argument[this].Property[Microsoft.Extensions.Configuration.FileConfigurationProvider.Source];value;dfc-generated | @@ -2059,8 +2008,6 @@ summary | Microsoft.Extensions.Configuration;IConfigurationSource;Build;(Microsoft.Extensions.Configuration.IConfigurationBuilder);Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Configuration;IniConfigurationExtensions;AddIniFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,Microsoft.Extensions.FileProviders.IFileProvider,System.String,System.Boolean,System.Boolean);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Configuration;IniConfigurationExtensions;AddIniFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Configuration;IniConfigurationExtensions;AddIniFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Configuration;IniConfigurationExtensions;AddIniFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Configuration;IniConfigurationExtensions;AddIniFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Configuration;IniConfigurationExtensions;AddIniFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Configuration;IniConfigurationExtensions;AddIniFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String,System.Boolean);Argument[0];ReturnValue;value;dfc-generated | @@ -2068,8 +2015,6 @@ summary | Microsoft.Extensions.Configuration;IniConfigurationExtensions;AddIniStream;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.IO.Stream);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Configuration;JsonConfigurationExtensions;AddJsonFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,Microsoft.Extensions.FileProviders.IFileProvider,System.String,System.Boolean,System.Boolean);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Configuration;JsonConfigurationExtensions;AddJsonFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Configuration;JsonConfigurationExtensions;AddJsonFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Configuration;JsonConfigurationExtensions;AddJsonFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Configuration;JsonConfigurationExtensions;AddJsonFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Configuration;JsonConfigurationExtensions;AddJsonFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Configuration;JsonConfigurationExtensions;AddJsonFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String,System.Boolean);Argument[0];ReturnValue;value;dfc-generated | @@ -2091,8 +2036,6 @@ summary | Microsoft.Extensions.Configuration;UserSecretsConfigurationExtensions;AddUserSecrets;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Boolean,System.Boolean);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Configuration;XmlConfigurationExtensions;AddXmlFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,Microsoft.Extensions.FileProviders.IFileProvider,System.String,System.Boolean,System.Boolean);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Configuration;XmlConfigurationExtensions;AddXmlFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Configuration;XmlConfigurationExtensions;AddXmlFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Configuration;XmlConfigurationExtensions;AddXmlFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Configuration;XmlConfigurationExtensions;AddXmlFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Configuration;XmlConfigurationExtensions;AddXmlFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Configuration;XmlConfigurationExtensions;AddXmlFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String,System.Boolean);Argument[0];ReturnValue;value;dfc-generated | @@ -2134,7 +2077,6 @@ summary | Microsoft.Extensions.DependencyInjection;AsyncServiceScope;DisposeAsync;();Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.DependencyInjection;AsyncServiceScope;get_ServiceProvider;();Argument[this].SyntheticField[Microsoft.Extensions.DependencyInjection.AsyncServiceScope._serviceScope].Property[Microsoft.Extensions.DependencyInjection.IServiceScope.ServiceProvider];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;AsyncServiceScope;get_ServiceProvider;();Argument[this].SyntheticField[Microsoft.Extensions.DependencyInjection.AsyncServiceScope._serviceScope];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;AsyncServiceScope;get_ServiceProvider;();Argument[this];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;AuthenticationCoreServiceCollectionExtensions;AddAuthenticationCore;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;AuthenticationServiceCollectionExtensions;AddAuthentication;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;AuthorizationServiceCollectionExtensions;AddAuthorizationCore;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | @@ -2174,73 +2116,43 @@ summary | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;AddAsKeyed;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,Microsoft.Extensions.DependencyInjection.ServiceLifetime);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;AddDefaultLogger;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;AddHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;AddHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;AddHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;AddHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;AddHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;AddHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;AddHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;AddHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;AddHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;AddLogger;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func,System.Boolean);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;AddLogger;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func,System.Boolean);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;AddLogger;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func,System.Boolean);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;AddLogger;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func,System.Boolean);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;AddLogger;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Boolean);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;AddTypedClient;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;AddTypedClient;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;AddTypedClient;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;AddTypedClient;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;AddTypedClient;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;AddTypedClient;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;AddTypedClient;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;AddTypedClient;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;AddTypedClient;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;AddTypedClient;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigureAdditionalHttpMessageHandlers;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action,System.IServiceProvider>);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigureAdditionalHttpMessageHandlers;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action,System.IServiceProvider>);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigureAdditionalHttpMessageHandlers;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action,System.IServiceProvider>);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigureAdditionalHttpMessageHandlers;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action,System.IServiceProvider>);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigureHttpClient;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigureHttpClient;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigureHttpClient;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigureHttpClient;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigureHttpClient;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigureHttpClient;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigureHttpClient;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigureHttpClient;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigureHttpMessageHandlerBuilder;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigureHttpMessageHandlerBuilder;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigureHttpMessageHandlerBuilder;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigureHttpMessageHandlerBuilder;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigurePrimaryHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigurePrimaryHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigurePrimaryHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigurePrimaryHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigurePrimaryHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigurePrimaryHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigurePrimaryHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigurePrimaryHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigurePrimaryHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigurePrimaryHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigurePrimaryHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigurePrimaryHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigurePrimaryHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;RedactLoggedHeaders;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Collections.Generic.IEnumerable);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;RedactLoggedHeaders;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;RedactLoggedHeaders;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;RedactLoggedHeaders;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;RedactLoggedHeaders;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;RemoveAllLoggers;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;RemoveAsKeyed;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;SetHandlerLifetime;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.TimeSpan);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;UseSocketsHttpHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;UseSocketsHttpHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;UseSocketsHttpHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;UseSocketsHttpHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;UseSocketsHttpHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;UseSocketsHttpHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;UseSocketsHttpHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;UseSocketsHttpHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;AddHttpClient;(Microsoft.Extensions.DependencyInjection.IServiceCollection);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;AddHttpClient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String);Argument[0].Element;ReturnValue;taint;df-generated | @@ -2266,8 +2178,6 @@ summary | Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;AddHttpClient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,System.Action);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;AddHttpClient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,System.Action);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;ConfigureHttpClientDefaults;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;ConfigureHttpClientDefaults;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;ConfigureHttpClientDefaults;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;ConfigureHttpClientDefaults;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;HttpJsonServiceExtensions;ConfigureHttpJsonOptions;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;HttpLoggingServicesExtensions;AddHttpLogging;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | @@ -2283,23 +2193,15 @@ summary | Microsoft.Extensions.DependencyInjection;LocalizationServiceCollectionExtensions;AddLocalization;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;LoggingServiceCollectionExtensions;AddLogging;(Microsoft.Extensions.DependencyInjection.IServiceCollection);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;LoggingServiceCollectionExtensions;AddLogging;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;LoggingServiceCollectionExtensions;AddLogging;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;LoggingServiceCollectionExtensions;AddLogging;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;LoggingServiceCollectionExtensions;AddLogging;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;MemoryCacheServiceCollectionExtensions;AddDistributedMemoryCache;(Microsoft.Extensions.DependencyInjection.IServiceCollection);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;MemoryCacheServiceCollectionExtensions;AddDistributedMemoryCache;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;MemoryCacheServiceCollectionExtensions;AddDistributedMemoryCache;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;MemoryCacheServiceCollectionExtensions;AddDistributedMemoryCache;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;MemoryCacheServiceCollectionExtensions;AddDistributedMemoryCache;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;MemoryCacheServiceCollectionExtensions;AddMemoryCache;(Microsoft.Extensions.DependencyInjection.IServiceCollection);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;MemoryCacheServiceCollectionExtensions;AddMemoryCache;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;MemoryCacheServiceCollectionExtensions;AddMemoryCache;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;MemoryCacheServiceCollectionExtensions;AddMemoryCache;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;MemoryCacheServiceCollectionExtensions;AddMemoryCache;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;MetricsServiceExtensions;AddMetrics;(Microsoft.Extensions.DependencyInjection.IServiceCollection);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;MetricsServiceExtensions;AddMetrics;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;MetricsServiceExtensions;AddMetrics;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;MetricsServiceExtensions;AddMetrics;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;MetricsServiceExtensions;AddMetrics;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;MvcCoreMvcBuilderExtensions;AddFormatterMappings;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;MvcCoreMvcBuilderExtensions;AddJsonOptions;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | @@ -2366,52 +2268,32 @@ summary | Microsoft.Extensions.DependencyInjection;ObjectFactory;BeginInvoke;(System.IServiceProvider,System.Object[],System.AsyncCallback,System.Object);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;OptionsBuilderConfigurationExtensions;Bind;(Microsoft.Extensions.Options.OptionsBuilder,Microsoft.Extensions.Configuration.IConfiguration);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;OptionsBuilderConfigurationExtensions;Bind;(Microsoft.Extensions.Options.OptionsBuilder,Microsoft.Extensions.Configuration.IConfiguration,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;OptionsBuilderConfigurationExtensions;Bind;(Microsoft.Extensions.Options.OptionsBuilder,Microsoft.Extensions.Configuration.IConfiguration,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;OptionsBuilderConfigurationExtensions;Bind;(Microsoft.Extensions.Options.OptionsBuilder,Microsoft.Extensions.Configuration.IConfiguration,System.Action);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;OptionsBuilderConfigurationExtensions;Bind;(Microsoft.Extensions.Options.OptionsBuilder,Microsoft.Extensions.Configuration.IConfiguration,System.Action);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;OptionsBuilderConfigurationExtensions;BindConfiguration;(Microsoft.Extensions.Options.OptionsBuilder,System.String,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;OptionsBuilderConfigurationExtensions;BindConfiguration;(Microsoft.Extensions.Options.OptionsBuilder,System.String,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;OptionsBuilderConfigurationExtensions;BindConfiguration;(Microsoft.Extensions.Options.OptionsBuilder,System.String,System.Action);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;OptionsBuilderConfigurationExtensions;BindConfiguration;(Microsoft.Extensions.Options.OptionsBuilder,System.String,System.Action);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;OptionsBuilderDataAnnotationsExtensions;ValidateDataAnnotations;(Microsoft.Extensions.Options.OptionsBuilder);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;OptionsBuilderExtensions;ValidateOnStart;(Microsoft.Extensions.Options.OptionsBuilder);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;OptionsConfigurationServiceCollectionExtensions;Configure;(Microsoft.Extensions.DependencyInjection.IServiceCollection,Microsoft.Extensions.Configuration.IConfiguration);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;OptionsConfigurationServiceCollectionExtensions;Configure;(Microsoft.Extensions.DependencyInjection.IServiceCollection,Microsoft.Extensions.Configuration.IConfiguration,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;OptionsConfigurationServiceCollectionExtensions;Configure;(Microsoft.Extensions.DependencyInjection.IServiceCollection,Microsoft.Extensions.Configuration.IConfiguration,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;OptionsConfigurationServiceCollectionExtensions;Configure;(Microsoft.Extensions.DependencyInjection.IServiceCollection,Microsoft.Extensions.Configuration.IConfiguration,System.Action);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;OptionsConfigurationServiceCollectionExtensions;Configure;(Microsoft.Extensions.DependencyInjection.IServiceCollection,Microsoft.Extensions.Configuration.IConfiguration,System.Action);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;OptionsConfigurationServiceCollectionExtensions;Configure;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,Microsoft.Extensions.Configuration.IConfiguration);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;OptionsConfigurationServiceCollectionExtensions;Configure;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,Microsoft.Extensions.Configuration.IConfiguration,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;OptionsConfigurationServiceCollectionExtensions;Configure;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,Microsoft.Extensions.Configuration.IConfiguration,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;OptionsConfigurationServiceCollectionExtensions;Configure;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,Microsoft.Extensions.Configuration.IConfiguration,System.Action);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;OptionsConfigurationServiceCollectionExtensions;Configure;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,Microsoft.Extensions.Configuration.IConfiguration,System.Action);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;AddOptions;(Microsoft.Extensions.DependencyInjection.IServiceCollection);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;Configure;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;Configure;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;Configure;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;Configure;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;Configure;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;Configure;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;Configure;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,System.Action);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;Configure;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,System.Action);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;ConfigureAll;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;ConfigureAll;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;ConfigureAll;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;ConfigureAll;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;ConfigureOptions;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;ConfigureOptions;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;ConfigureOptions;(Microsoft.Extensions.DependencyInjection.IServiceCollection);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;PostConfigure;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;PostConfigure;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;PostConfigure;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;PostConfigure;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;PostConfigure;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;PostConfigure;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;PostConfigure;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,System.Action);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;PostConfigure;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,System.Action);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;PostConfigureAll;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;PostConfigureAll;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;PostConfigureAll;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;PostConfigureAll;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;OutputCacheConventionBuilderExtensions;CacheOutput;(TBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;OutputCacheConventionBuilderExtensions;CacheOutput;(TBuilder,System.Action,System.Boolean);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | @@ -2442,108 +2324,70 @@ summary | Microsoft.Extensions.DependencyInjection;ServiceCollectionContainerBuilderExtensions;BuildServiceProvider;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Boolean);Argument[0].Element;ReturnValue;taint;df-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionHostedServiceExtensions;AddHostedService;(Microsoft.Extensions.DependencyInjection.IServiceCollection);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionHostedServiceExtensions;AddHostedService;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionHostedServiceExtensions;AddHostedService;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionHostedServiceExtensions;AddHostedService;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionHostedServiceExtensions;AddHostedService;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Object);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Object,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Object,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Object,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Object,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Object,System.Type);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Object);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Object,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Object,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Object,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Object,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Object,System.Object);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Object,System.Type);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,TService);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Object);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Object,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Object,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Object,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Object,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Object,System.Type);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Type);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Object);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Type);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,TService);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Type);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceDescriptor;Describe;(System.Type,System.Func,Microsoft.Extensions.DependencyInjection.ServiceLifetime);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceDescriptor;DescribeKeyed;(System.Type,System.Object,System.Func,Microsoft.Extensions.DependencyInjection.ServiceLifetime);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | @@ -2582,8 +2426,6 @@ summary | Microsoft.Extensions.DependencyInjection;SignalRDependencyInjectionExtensions;AddSignalR;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;SocketsHttpHandlerBuilderExtensions;Configure;(Microsoft.Extensions.DependencyInjection.ISocketsHttpHandlerBuilder,Microsoft.Extensions.Configuration.IConfiguration);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;SocketsHttpHandlerBuilderExtensions;Configure;(Microsoft.Extensions.DependencyInjection.ISocketsHttpHandlerBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;SocketsHttpHandlerBuilderExtensions;Configure;(Microsoft.Extensions.DependencyInjection.ISocketsHttpHandlerBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;SocketsHttpHandlerBuilderExtensions;Configure;(Microsoft.Extensions.DependencyInjection.ISocketsHttpHandlerBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;SocketsHttpHandlerBuilderExtensions;Configure;(Microsoft.Extensions.DependencyInjection.ISocketsHttpHandlerBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;TagHelperServicesExtensions;AddCacheTagHelperLimits;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;TagHelperServicesExtensions;AddCacheTagHelperLimits;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | @@ -2633,24 +2475,15 @@ summary | Microsoft.Extensions.FileProviders.Physical;PhysicalFilesWatcher;PhysicalFilesWatcher;(System.String,System.IO.FileSystemWatcher,System.Boolean,Microsoft.Extensions.FileProviders.Physical.ExclusionFilters);Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.FileProviders.Physical;PhysicalFilesWatcher;PhysicalFilesWatcher;(System.String,System.IO.FileSystemWatcher,System.Boolean,Microsoft.Extensions.FileProviders.Physical.ExclusionFilters);Argument[1];Argument[this];taint;df-generated | | Microsoft.Extensions.FileProviders.Physical;PollingFileChangeToken;PollingFileChangeToken;(System.IO.FileInfo);Argument[0];Argument[this];taint;df-generated | -| Microsoft.Extensions.FileProviders.Physical;PollingFileChangeToken;RegisterChangeCallback;(System.Action,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.FileProviders.Physical;PollingFileChangeToken;RegisterChangeCallback;(System.Action,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| Microsoft.Extensions.FileProviders.Physical;PollingFileChangeToken;RegisterChangeCallback;(System.Action,System.Object);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.FileProviders.Physical;PollingFileChangeToken;RegisterChangeCallback;(System.Action,System.Object);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.Extensions.FileProviders.Physical;PollingWildCardChangeToken;RegisterChangeCallback;(System.Action,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.FileProviders.Physical;PollingWildCardChangeToken;RegisterChangeCallback;(System.Action,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| Microsoft.Extensions.FileProviders.Physical;PollingWildCardChangeToken;RegisterChangeCallback;(System.Action,System.Object);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.FileProviders.Physical;PollingWildCardChangeToken;RegisterChangeCallback;(System.Action,System.Object);Argument[this];ReturnValue;value;hq-generated | | Microsoft.Extensions.FileProviders;CompositeFileProvider;CompositeFileProvider;(Microsoft.Extensions.FileProviders.IFileProvider[]);Argument[0];Argument[this].SyntheticField[Microsoft.Extensions.FileProviders.CompositeFileProvider._fileProviders];value;dfc-generated | | Microsoft.Extensions.FileProviders;CompositeFileProvider;CompositeFileProvider;(System.Collections.Generic.IEnumerable);Argument[0].Element;Argument[this].SyntheticField[Microsoft.Extensions.FileProviders.CompositeFileProvider._fileProviders].Element;value;dfc-generated | | Microsoft.Extensions.FileProviders;CompositeFileProvider;get_FileProviders;();Argument[this].SyntheticField[Microsoft.Extensions.FileProviders.CompositeFileProvider._fileProviders];ReturnValue;value;dfc-generated | | Microsoft.Extensions.FileProviders;NotFoundDirectoryContents;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | | Microsoft.Extensions.FileProviders;NotFoundDirectoryContents;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | Microsoft.Extensions.FileProviders;NotFoundFileInfo;NotFoundFileInfo;(System.String);Argument[0];Argument[this].Property[Microsoft.Extensions.FileProviders.NotFoundFileInfo.Name];value;dfc-generated | -| Microsoft.Extensions.FileProviders;NullChangeToken;RegisterChangeCallback;(System.Action,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.FileProviders;NullChangeToken;RegisterChangeCallback;(System.Action,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| Microsoft.Extensions.FileProviders;NullChangeToken;RegisterChangeCallback;(System.Action,System.Object);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.FileProviders;NullChangeToken;RegisterChangeCallback;(System.Action,System.Object);Argument[this];ReturnValue;value;hq-generated | | Microsoft.Extensions.FileProviders;PhysicalFileProvider;PhysicalFileProvider;(System.String,Microsoft.Extensions.FileProviders.Physical.ExclusionFilters);Argument[0];Argument[this].Property[Microsoft.Extensions.FileProviders.PhysicalFileProvider.Root];taint;dfc-generated | | Microsoft.Extensions.FileSystemGlobbing.Abstractions;DirectoryInfoBase;EnumerateFileSystemInfos;();Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.FileSystemGlobbing.Abstractions;DirectoryInfoBase;GetDirectory;(System.String);Argument[this];ReturnValue;taint;df-generated | @@ -2660,14 +2493,8 @@ summary | Microsoft.Extensions.FileSystemGlobbing.Abstractions;DirectoryInfoWrapper;get_Name;();Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.FileSystemGlobbing.Abstractions;DirectoryInfoWrapper;get_ParentDirectory;();Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.FileSystemGlobbing.Abstractions;FileInfoWrapper;FileInfoWrapper;(System.IO.FileInfo);Argument[0];Argument[this].SyntheticField[Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileInfoWrapper._fileInfo];value;dfc-generated | -| Microsoft.Extensions.FileSystemGlobbing.Abstractions;FileInfoWrapper;get_FullName;();Argument[this].SyntheticField[Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileInfoWrapper._fileInfo].Property[System.IO.FileSystemInfo.FullName];ReturnValue;value;df-generated | | Microsoft.Extensions.FileSystemGlobbing.Abstractions;FileInfoWrapper;get_FullName;();Argument[this].SyntheticField[Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileInfoWrapper._fileInfo].Property[System.IO.FileSystemInfo.FullName];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.FileSystemGlobbing.Abstractions;FileInfoWrapper;get_FullName;();Argument[this];ReturnValue;taint;df-generated | -| Microsoft.Extensions.FileSystemGlobbing.Abstractions;FileInfoWrapper;get_FullName;();Argument[this];ReturnValue;taint;dfc-generated | -| Microsoft.Extensions.FileSystemGlobbing.Abstractions;FileInfoWrapper;get_Name;();Argument[this].SyntheticField[Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileInfoWrapper._fileInfo].Property[System.IO.FileInfo.Name];ReturnValue;value;df-generated | | Microsoft.Extensions.FileSystemGlobbing.Abstractions;FileInfoWrapper;get_Name;();Argument[this].SyntheticField[Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileInfoWrapper._fileInfo].Property[System.IO.FileInfo.Name];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.FileSystemGlobbing.Abstractions;FileInfoWrapper;get_Name;();Argument[this];ReturnValue;taint;df-generated | -| Microsoft.Extensions.FileSystemGlobbing.Abstractions;FileInfoWrapper;get_Name;();Argument[this];ReturnValue;taint;dfc-generated | | Microsoft.Extensions.FileSystemGlobbing.Abstractions;FileInfoWrapper;get_ParentDirectory;();Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.FileSystemGlobbing.Abstractions;FileSystemInfoBase;get_FullName;();Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.FileSystemGlobbing.Abstractions;FileSystemInfoBase;get_Name;();Argument[this];ReturnValue;taint;df-generated | @@ -2691,11 +2518,7 @@ summary | Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts;PatternContextRagged;CalculateStem;(Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileInfoBase);Argument[0].Property[Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileSystemInfoBase.Name];ReturnValue;value;dfc-generated | | Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts;PatternContextRagged;CalculateStem;(Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileInfoBase);Argument[this].Field[Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContext`1.Frame].Property[Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContextRagged+FrameData.Stem];ReturnValue;taint;dfc-generated | | Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts;PatternContextRagged;PatternContextRagged;(Microsoft.Extensions.FileSystemGlobbing.Internal.IRaggedPattern);Argument[0];Argument[this].Property[Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContextRagged.Pattern];value;dfc-generated | -| Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts;PatternContextRagged;PushDirectory;(Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase);Argument[0];Argument[this];taint;df-generated | -| Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts;PatternContextRagged;PushDirectory;(Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase);Argument[0];Argument[this];taint;dfc-generated | -| Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts;PatternContextRagged;PushDirectory;(Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase);Argument[this].Property[Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContextRagged.Pattern].Property[Microsoft.Extensions.FileSystemGlobbing.Internal.IRaggedPattern.EndsWith];Argument[this].Field[Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContext`1.Frame].Field[Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContextRagged+FrameData.SegmentGroup];value;df-generated | | Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts;PatternContextRagged;PushDirectory;(Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase);Argument[this].Property[Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContextRagged.Pattern].Property[Microsoft.Extensions.FileSystemGlobbing.Internal.IRaggedPattern.EndsWith];Argument[this].Field[Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContext`1.Frame].Field[Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContextRagged+FrameData.SegmentGroup];value;dfc-generated | -| Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts;PatternContextRagged;PushDirectory;(Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase);Argument[this].Property[Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContextRagged.Pattern].Property[Microsoft.Extensions.FileSystemGlobbing.Internal.IRaggedPattern.StartsWith];Argument[this].Field[Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContext`1.Frame].Field[Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContextRagged+FrameData.SegmentGroup];value;df-generated | | Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts;PatternContextRagged;PushDirectory;(Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase);Argument[this].Property[Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContextRagged.Pattern].Property[Microsoft.Extensions.FileSystemGlobbing.Internal.IRaggedPattern.StartsWith];Argument[this].Field[Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContext`1.Frame].Field[Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContextRagged+FrameData.SegmentGroup];value;dfc-generated | | Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts;PatternContextRagged;Test;(Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileInfoBase);Argument[0].Property[Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileSystemInfoBase.Name];ReturnValue.Property[Microsoft.Extensions.FileSystemGlobbing.Internal.PatternTestResult.Stem];value;dfc-generated | | Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts;PatternContextRagged;Test;(Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileInfoBase);Argument[this].Field[Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContext`1.Frame].Property[Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContextRagged+FrameData.Stem];ReturnValue.Property[Microsoft.Extensions.FileSystemGlobbing.Internal.PatternTestResult.Stem];taint;dfc-generated | @@ -2745,79 +2568,40 @@ summary | Microsoft.Extensions.Hosting;HostApplicationBuilder;get_Metrics;();Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Hosting;HostApplicationBuilder;get_Properties;();Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Hosting;HostApplicationBuilder;get_Services;();Argument[this];ReturnValue;taint;df-generated | -| Microsoft.Extensions.Hosting;HostBuilder;ConfigureAppConfiguration;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Hosting;HostBuilder;ConfigureAppConfiguration;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| Microsoft.Extensions.Hosting;HostBuilder;ConfigureAppConfiguration;(System.Action);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Hosting;HostBuilder;ConfigureAppConfiguration;(System.Action);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Hosting;HostBuilder;ConfigureContainer;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Hosting;HostBuilder;ConfigureContainer;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| Microsoft.Extensions.Hosting;HostBuilder;ConfigureContainer;(System.Action);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Hosting;HostBuilder;ConfigureContainer;(System.Action);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Hosting;HostBuilder;ConfigureHostConfiguration;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Hosting;HostBuilder;ConfigureHostConfiguration;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| Microsoft.Extensions.Hosting;HostBuilder;ConfigureHostConfiguration;(System.Action);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Hosting;HostBuilder;ConfigureHostConfiguration;(System.Action);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Hosting;HostBuilder;ConfigureServices;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Hosting;HostBuilder;ConfigureServices;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| Microsoft.Extensions.Hosting;HostBuilder;ConfigureServices;(System.Action);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Hosting;HostBuilder;ConfigureServices;(System.Action);Argument[this];ReturnValue;value;hq-generated | | Microsoft.Extensions.Hosting;HostBuilder;UseServiceProviderFactory;(Microsoft.Extensions.DependencyInjection.IServiceProviderFactory);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Hosting;HostBuilder;UseServiceProviderFactory;(System.Func>);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Hosting;HostBuilder;UseServiceProviderFactory;(System.Func>);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| Microsoft.Extensions.Hosting;HostBuilder;UseServiceProviderFactory;(System.Func>);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Hosting;HostBuilder;UseServiceProviderFactory;(System.Func>);Argument[this];ReturnValue;value;hq-generated | | Microsoft.Extensions.Hosting;HostBuilderContext;HostBuilderContext;(System.Collections.Generic.IDictionary);Argument[0];Argument[this].Property[Microsoft.Extensions.Hosting.HostBuilderContext.Properties];value;dfc-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureAppConfiguration;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureAppConfiguration;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureAppConfiguration;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureAppConfiguration;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureContainer;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureContainer;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureContainer;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureContainer;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureDefaults;(Microsoft.Extensions.Hosting.IHostBuilder,System.String[]);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureHostOptions;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureHostOptions;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureHostOptions;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureHostOptions;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureHostOptions;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureHostOptions;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureHostOptions;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureHostOptions;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureLogging;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureLogging;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureLogging;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureLogging;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureLogging;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureLogging;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureLogging;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureLogging;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureMetrics;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureMetrics;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureMetrics;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureMetrics;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureMetrics;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureMetrics;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureMetrics;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureMetrics;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureServices;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureServices;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureServices;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureServices;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;RunConsoleAsync;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;UseConsoleLifetime;(Microsoft.Extensions.Hosting.IHostBuilder);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;UseConsoleLifetime;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;UseConsoleLifetime;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;UseConsoleLifetime;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;UseConsoleLifetime;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;UseContentRoot;(Microsoft.Extensions.Hosting.IHostBuilder,System.String);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;UseDefaultServiceProvider;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;UseDefaultServiceProvider;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;UseDefaultServiceProvider;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;UseDefaultServiceProvider;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;UseDefaultServiceProvider;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;UseDefaultServiceProvider;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;UseDefaultServiceProvider;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;UseDefaultServiceProvider;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;UseEnvironment;(Microsoft.Extensions.Hosting.IHostBuilder,System.String);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Hosting;IApplicationLifetime;get_ApplicationStarted;();Argument[this];ReturnValue;taint;df-generated | @@ -2832,27 +2616,17 @@ summary | Microsoft.Extensions.Hosting;IHostApplicationLifetime;get_ApplicationStarted;();Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Hosting;IHostApplicationLifetime;get_ApplicationStopped;();Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Hosting;IHostApplicationLifetime;get_ApplicationStopping;();Argument[this];ReturnValue;taint;df-generated | -| Microsoft.Extensions.Hosting;IHostBuilder;ConfigureAppConfiguration;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Hosting;IHostBuilder;ConfigureAppConfiguration;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Hosting;IHostBuilder;ConfigureAppConfiguration;(System.Action);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Hosting;IHostBuilder;ConfigureAppConfiguration;(System.Action);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Hosting;IHostBuilder;ConfigureContainer;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Hosting;IHostBuilder;ConfigureContainer;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Hosting;IHostBuilder;ConfigureContainer;(System.Action);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Hosting;IHostBuilder;ConfigureContainer;(System.Action);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Hosting;IHostBuilder;ConfigureHostConfiguration;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Hosting;IHostBuilder;ConfigureHostConfiguration;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Hosting;IHostBuilder;ConfigureHostConfiguration;(System.Action);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Hosting;IHostBuilder;ConfigureHostConfiguration;(System.Action);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Hosting;IHostBuilder;ConfigureServices;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Hosting;IHostBuilder;ConfigureServices;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Hosting;IHostBuilder;ConfigureServices;(System.Action);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Hosting;IHostBuilder;ConfigureServices;(System.Action);Argument[this];ReturnValue;value;hq-generated | | Microsoft.Extensions.Hosting;IHostBuilder;UseServiceProviderFactory;(Microsoft.Extensions.DependencyInjection.IServiceProviderFactory);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Hosting;IHostBuilder;UseServiceProviderFactory;(System.Func>);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Hosting;IHostBuilder;UseServiceProviderFactory;(System.Func>);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Hosting;IHostBuilder;UseServiceProviderFactory;(System.Func>);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Hosting;IHostBuilder;UseServiceProviderFactory;(System.Func>);Argument[this];ReturnValue;value;hq-generated | | Microsoft.Extensions.Hosting;IHostLifetime;WaitForStartAsync;(System.Threading.CancellationToken);Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Http.Logging;LoggingHttpMessageHandler;LoggingHttpMessageHandler;(Microsoft.Extensions.Logging.ILogger);Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Http.Logging;LoggingHttpMessageHandler;LoggingHttpMessageHandler;(Microsoft.Extensions.Logging.ILogger,Microsoft.Extensions.Http.HttpClientFactoryOptions);Argument[0];Argument[this];taint;df-generated | @@ -2868,32 +2642,16 @@ summary | Microsoft.Extensions.Localization;IResourceNamesCache;GetOrAdd;(System.String,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Localization;ResourceNamesCache;GetOrAdd;(System.String,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging.Abstractions;LogEntry;LogEntry;(Microsoft.Extensions.Logging.LogLevel,System.String,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[1];Argument[this].Property[Microsoft.Extensions.Logging.Abstractions.LogEntry`1.Category];value;dfc-generated | -| Microsoft.Extensions.Logging.Abstractions;LogEntry;LogEntry;(Microsoft.Extensions.Logging.LogLevel,System.String,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[1];Argument[this].Property[Microsoft.Extensions.Logging.Abstractions.LogEntry`1.Category];value;hq-generated | | Microsoft.Extensions.Logging.Abstractions;LogEntry;LogEntry;(Microsoft.Extensions.Logging.LogLevel,System.String,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[2];Argument[this].Property[Microsoft.Extensions.Logging.Abstractions.LogEntry`1.EventId];value;dfc-generated | -| Microsoft.Extensions.Logging.Abstractions;LogEntry;LogEntry;(Microsoft.Extensions.Logging.LogLevel,System.String,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[2];Argument[this].Property[Microsoft.Extensions.Logging.Abstractions.LogEntry`1.EventId];value;hq-generated | | Microsoft.Extensions.Logging.Abstractions;LogEntry;LogEntry;(Microsoft.Extensions.Logging.LogLevel,System.String,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[3];Argument[this].Property[Microsoft.Extensions.Logging.Abstractions.LogEntry`1.State];value;dfc-generated | -| Microsoft.Extensions.Logging.Abstractions;LogEntry;LogEntry;(Microsoft.Extensions.Logging.LogLevel,System.String,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[3];Argument[this].Property[Microsoft.Extensions.Logging.Abstractions.LogEntry`1.State];value;hq-generated | | Microsoft.Extensions.Logging.Abstractions;LogEntry;LogEntry;(Microsoft.Extensions.Logging.LogLevel,System.String,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[4];Argument[this].Property[Microsoft.Extensions.Logging.Abstractions.LogEntry`1.Exception];value;dfc-generated | -| Microsoft.Extensions.Logging.Abstractions;LogEntry;LogEntry;(Microsoft.Extensions.Logging.LogLevel,System.String,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[4];Argument[this].Property[Microsoft.Extensions.Logging.Abstractions.LogEntry`1.Exception];value;hq-generated | -| Microsoft.Extensions.Logging.Abstractions;LogEntry;LogEntry;(Microsoft.Extensions.Logging.LogLevel,System.String,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[5];Argument[5].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging.Abstractions;LogEntry;LogEntry;(Microsoft.Extensions.Logging.LogLevel,System.String,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging.Abstractions;LogEntry;LogEntry;(Microsoft.Extensions.Logging.LogLevel,System.String,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[5];Argument[this].Property[Microsoft.Extensions.Logging.Abstractions.LogEntry`1.Formatter];value;dfc-generated | -| Microsoft.Extensions.Logging.Abstractions;LogEntry;LogEntry;(Microsoft.Extensions.Logging.LogLevel,System.String,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[5];Argument[this].Property[Microsoft.Extensions.Logging.Abstractions.LogEntry`1.Formatter];value;hq-generated | | Microsoft.Extensions.Logging.Abstractions;NullLogger;BeginScope;(TState);Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Logging.Abstractions;NullLogger;BeginScope;(TState);Argument[this];ReturnValue;taint;df-generated | -| Microsoft.Extensions.Logging.Abstractions;NullLogger;Log;(Microsoft.Extensions.Logging.LogLevel,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[2];Argument[4].Parameter[0];value;dfc-generated | -| Microsoft.Extensions.Logging.Abstractions;NullLogger;Log;(Microsoft.Extensions.Logging.LogLevel,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[2];Argument[4].Parameter[0];value;hq-generated | -| Microsoft.Extensions.Logging.Abstractions;NullLogger;Log;(Microsoft.Extensions.Logging.LogLevel,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[3];Argument[4].Parameter[1];value;dfc-generated | -| Microsoft.Extensions.Logging.Abstractions;NullLogger;Log;(Microsoft.Extensions.Logging.LogLevel,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[3];Argument[4].Parameter[1];value;hq-generated | -| Microsoft.Extensions.Logging.Abstractions;NullLogger;Log;(Microsoft.Extensions.Logging.LogLevel,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[4];Argument[4].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging.Abstractions;NullLogger;Log;(Microsoft.Extensions.Logging.LogLevel,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging.Abstractions;NullLogger;BeginScope;(TState);Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Logging.Abstractions;NullLogger;BeginScope;(TState);Argument[this];ReturnValue;taint;df-generated | -| Microsoft.Extensions.Logging.Abstractions;NullLogger;Log;(Microsoft.Extensions.Logging.LogLevel,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[2];Argument[4].Parameter[0];value;dfc-generated | -| Microsoft.Extensions.Logging.Abstractions;NullLogger;Log;(Microsoft.Extensions.Logging.LogLevel,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[2];Argument[4].Parameter[0];value;hq-generated | -| Microsoft.Extensions.Logging.Abstractions;NullLogger;Log;(Microsoft.Extensions.Logging.LogLevel,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[3];Argument[4].Parameter[1];value;dfc-generated | -| Microsoft.Extensions.Logging.Abstractions;NullLogger;Log;(Microsoft.Extensions.Logging.LogLevel,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[3];Argument[4].Parameter[1];value;hq-generated | -| Microsoft.Extensions.Logging.Abstractions;NullLogger;Log;(Microsoft.Extensions.Logging.LogLevel,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[4];Argument[4].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging.Abstractions;NullLogger;Log;(Microsoft.Extensions.Logging.LogLevel,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging.Abstractions;NullLoggerFactory;AddProvider;(Microsoft.Extensions.Logging.ILoggerProvider);Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Logging.Abstractions;NullLoggerFactory;AddProvider;(Microsoft.Extensions.Logging.ILoggerProvider);Argument[this];Argument[0];taint;df-generated | @@ -2938,43 +2696,27 @@ summary | Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddConsole;(Microsoft.Extensions.Logging.ILoggerFactory,Microsoft.Extensions.Logging.LogLevel,System.Boolean);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddConsole;(Microsoft.Extensions.Logging.ILoggerFactory,System.Boolean);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddConsole;(Microsoft.Extensions.Logging.ILoggerFactory,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddConsole;(Microsoft.Extensions.Logging.ILoggerFactory,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddConsole;(Microsoft.Extensions.Logging.ILoggerFactory,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddConsole;(Microsoft.Extensions.Logging.ILoggerFactory,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddConsole;(Microsoft.Extensions.Logging.ILoggerFactory,System.Func,System.Boolean);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddConsole;(Microsoft.Extensions.Logging.ILoggerFactory,System.Func,System.Boolean);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddConsole;(Microsoft.Extensions.Logging.ILoggerFactory,System.Func,System.Boolean);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddConsole;(Microsoft.Extensions.Logging.ILoggerFactory,System.Func,System.Boolean);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddConsole;(Microsoft.Extensions.Logging.ILoggingBuilder);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddConsole;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddConsole;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddConsole;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddConsole;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddConsoleFormatter;(Microsoft.Extensions.Logging.ILoggingBuilder);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddConsoleFormatter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddConsoleFormatter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddConsoleFormatter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddConsoleFormatter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddJsonConsole;(Microsoft.Extensions.Logging.ILoggingBuilder);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddJsonConsole;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddJsonConsole;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddJsonConsole;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddJsonConsole;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddSimpleConsole;(Microsoft.Extensions.Logging.ILoggingBuilder);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddSimpleConsole;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddSimpleConsole;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddSimpleConsole;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddSimpleConsole;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddSystemdConsole;(Microsoft.Extensions.Logging.ILoggingBuilder);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddSystemdConsole;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddSystemdConsole;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddSystemdConsole;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddSystemdConsole;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;DebugLoggerFactoryExtensions;AddDebug;(Microsoft.Extensions.Logging.ILoggerFactory);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Logging;DebugLoggerFactoryExtensions;AddDebug;(Microsoft.Extensions.Logging.ILoggerFactory,Microsoft.Extensions.Logging.LogLevel);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Logging;DebugLoggerFactoryExtensions;AddDebug;(Microsoft.Extensions.Logging.ILoggerFactory,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Logging;DebugLoggerFactoryExtensions;AddDebug;(Microsoft.Extensions.Logging.ILoggerFactory,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Logging;DebugLoggerFactoryExtensions;AddDebug;(Microsoft.Extensions.Logging.ILoggerFactory,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;DebugLoggerFactoryExtensions;AddDebug;(Microsoft.Extensions.Logging.ILoggerFactory,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;DebugLoggerFactoryExtensions;AddDebug;(Microsoft.Extensions.Logging.ILoggingBuilder);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Logging;EventId;EventId;(System.Int32,System.String);Argument[1];Argument[this].Property[Microsoft.Extensions.Logging.EventId.Name];value;dfc-generated | @@ -2985,84 +2727,49 @@ summary | Microsoft.Extensions.Logging;EventLoggerFactoryExtensions;AddEventLog;(Microsoft.Extensions.Logging.ILoggingBuilder);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Logging;EventLoggerFactoryExtensions;AddEventLog;(Microsoft.Extensions.Logging.ILoggingBuilder,Microsoft.Extensions.Logging.EventLog.EventLogSettings);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Logging;EventLoggerFactoryExtensions;AddEventLog;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Logging;EventLoggerFactoryExtensions;AddEventLog;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Logging;EventLoggerFactoryExtensions;AddEventLog;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;EventLoggerFactoryExtensions;AddEventLog;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;EventSourceLoggerFactoryExtensions;AddEventSourceLogger;(Microsoft.Extensions.Logging.ILoggerFactory);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Logging;EventSourceLoggerFactoryExtensions;AddEventSourceLogger;(Microsoft.Extensions.Logging.ILoggingBuilder);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.String,Microsoft.Extensions.Logging.LogLevel);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.String,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.String,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.String,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.String,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.String,Microsoft.Extensions.Logging.LogLevel);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.String,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.String,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.String,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.String,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.String,Microsoft.Extensions.Logging.LogLevel);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.String,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.String,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.String,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.String,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.String,Microsoft.Extensions.Logging.LogLevel);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.String,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.String,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.String,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.String,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| Microsoft.Extensions.Logging;IExternalScopeProvider;ForEachScope;(System.Action,TState);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;IExternalScopeProvider;ForEachScope;(System.Action,TState);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;IExternalScopeProvider;ForEachScope;(System.Action,TState);Argument[1];Argument[0].Parameter[1];value;dfc-generated | -| Microsoft.Extensions.Logging;IExternalScopeProvider;ForEachScope;(System.Action,TState);Argument[1];Argument[0].Parameter[1];value;hq-generated | | Microsoft.Extensions.Logging;IExternalScopeProvider;Push;(System.Object);Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Logging;IExternalScopeProvider;Push;(System.Object);Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Logging;ILogger;BeginScope;(TState);Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Logging;ILogger;BeginScope;(TState);Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Logging;ILogger;Log;(Microsoft.Extensions.Logging.LogLevel,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[2];Argument[4].Parameter[0];value;dfc-generated | -| Microsoft.Extensions.Logging;ILogger;Log;(Microsoft.Extensions.Logging.LogLevel,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[2];Argument[4].Parameter[0];value;hq-generated | | Microsoft.Extensions.Logging;ILogger;Log;(Microsoft.Extensions.Logging.LogLevel,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[3];Argument[4].Parameter[1];value;dfc-generated | -| Microsoft.Extensions.Logging;ILogger;Log;(Microsoft.Extensions.Logging.LogLevel,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[3];Argument[4].Parameter[1];value;hq-generated | -| Microsoft.Extensions.Logging;ILogger;Log;(Microsoft.Extensions.Logging.LogLevel,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[4];Argument[4].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;ILogger;Log;(Microsoft.Extensions.Logging.LogLevel,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;ILoggerFactory;AddProvider;(Microsoft.Extensions.Logging.ILoggerProvider);Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Logging;ILoggerFactory;AddProvider;(Microsoft.Extensions.Logging.ILoggerProvider);Argument[this];Argument[0];taint;df-generated | @@ -3074,19 +2781,11 @@ summary | Microsoft.Extensions.Logging;ISupportExternalScope;SetScopeProvider;(Microsoft.Extensions.Logging.IExternalScopeProvider);Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Logging;Logger;BeginScope;(TState);Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Logging;Logger;BeginScope;(TState);Argument[this];ReturnValue;taint;df-generated | -| Microsoft.Extensions.Logging;Logger;Log;(Microsoft.Extensions.Logging.LogLevel,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[2];Argument[4].Parameter[0];value;dfc-generated | -| Microsoft.Extensions.Logging;Logger;Log;(Microsoft.Extensions.Logging.LogLevel,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[2];Argument[4].Parameter[0];value;hq-generated | -| Microsoft.Extensions.Logging;Logger;Log;(Microsoft.Extensions.Logging.LogLevel,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[3];Argument[4].Parameter[1];value;dfc-generated | -| Microsoft.Extensions.Logging;Logger;Log;(Microsoft.Extensions.Logging.LogLevel,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[3];Argument[4].Parameter[1];value;hq-generated | -| Microsoft.Extensions.Logging;Logger;Log;(Microsoft.Extensions.Logging.LogLevel,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[4];Argument[4].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;Logger;Log;(Microsoft.Extensions.Logging.LogLevel,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;LoggerExtensions;BeginScope;(Microsoft.Extensions.Logging.ILogger,System.String,System.Object[]);Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Logging;LoggerExtensions;BeginScope;(Microsoft.Extensions.Logging.ILogger,System.String,System.Object[]);Argument[1];ReturnValue;taint;df-generated | | Microsoft.Extensions.Logging;LoggerExtensions;BeginScope;(Microsoft.Extensions.Logging.ILogger,System.String,System.Object[]);Argument[2].Element;ReturnValue;taint;df-generated | -| Microsoft.Extensions.Logging;LoggerExternalScopeProvider;ForEachScope;(System.Action,TState);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;LoggerExternalScopeProvider;ForEachScope;(System.Action,TState);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| Microsoft.Extensions.Logging;LoggerExternalScopeProvider;ForEachScope;(System.Action,TState);Argument[1];Argument[0].Parameter[1];value;dfc-generated | -| Microsoft.Extensions.Logging;LoggerExternalScopeProvider;ForEachScope;(System.Action,TState);Argument[1];Argument[0].Parameter[1];value;hq-generated | | Microsoft.Extensions.Logging;LoggerExternalScopeProvider;Push;(System.Object);Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Logging;LoggerExternalScopeProvider;Push;(System.Object);Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Logging;LoggerFactory;AddProvider;(Microsoft.Extensions.Logging.ILoggerProvider);Argument[0];Argument[this];taint;df-generated | @@ -3100,15 +2799,10 @@ summary | Microsoft.Extensions.Logging;LoggerFactory;LoggerFactory;(System.Collections.Generic.IEnumerable,Microsoft.Extensions.Options.IOptionsMonitor,Microsoft.Extensions.Options.IOptions,Microsoft.Extensions.Logging.IExternalScopeProvider);Argument[3];Argument[this];taint;df-generated | | Microsoft.Extensions.Logging;LoggerFilterOptions;get_Rules;();Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Logging;LoggerFilterRule;LoggerFilterRule;(System.String,System.String,System.Nullable,System.Func);Argument[0];Argument[this].Property[Microsoft.Extensions.Logging.LoggerFilterRule.ProviderName];value;dfc-generated | -| Microsoft.Extensions.Logging;LoggerFilterRule;LoggerFilterRule;(System.String,System.String,System.Nullable,System.Func);Argument[0];Argument[this].Property[Microsoft.Extensions.Logging.LoggerFilterRule.ProviderName];value;hq-generated | | Microsoft.Extensions.Logging;LoggerFilterRule;LoggerFilterRule;(System.String,System.String,System.Nullable,System.Func);Argument[1];Argument[this].Property[Microsoft.Extensions.Logging.LoggerFilterRule.CategoryName];value;dfc-generated | -| Microsoft.Extensions.Logging;LoggerFilterRule;LoggerFilterRule;(System.String,System.String,System.Nullable,System.Func);Argument[1];Argument[this].Property[Microsoft.Extensions.Logging.LoggerFilterRule.CategoryName];value;hq-generated | | Microsoft.Extensions.Logging;LoggerFilterRule;LoggerFilterRule;(System.String,System.String,System.Nullable,System.Func);Argument[2];Argument[this].Property[Microsoft.Extensions.Logging.LoggerFilterRule.LogLevel];value;dfc-generated | -| Microsoft.Extensions.Logging;LoggerFilterRule;LoggerFilterRule;(System.String,System.String,System.Nullable,System.Func);Argument[2];Argument[this].Property[Microsoft.Extensions.Logging.LoggerFilterRule.LogLevel];value;hq-generated | -| Microsoft.Extensions.Logging;LoggerFilterRule;LoggerFilterRule;(System.String,System.String,System.Nullable,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;LoggerFilterRule;LoggerFilterRule;(System.String,System.String,System.Nullable,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;LoggerFilterRule;LoggerFilterRule;(System.String,System.String,System.Nullable,System.Func);Argument[3];Argument[this].Property[Microsoft.Extensions.Logging.LoggerFilterRule.Filter];value;dfc-generated | -| Microsoft.Extensions.Logging;LoggerFilterRule;LoggerFilterRule;(System.String,System.String,System.Nullable,System.Func);Argument[3];Argument[this].Property[Microsoft.Extensions.Logging.LoggerFilterRule.Filter];value;hq-generated | | Microsoft.Extensions.Logging;LoggerFilterRule;ToString;();Argument[this].Property[Microsoft.Extensions.Logging.LoggerFilterRule.CategoryName];ReturnValue;taint;dfc-generated | | Microsoft.Extensions.Logging;LoggerFilterRule;ToString;();Argument[this].Property[Microsoft.Extensions.Logging.LoggerFilterRule.ProviderName];ReturnValue;taint;dfc-generated | | Microsoft.Extensions.Logging;LoggerMessageAttribute;LoggerMessageAttribute;(Microsoft.Extensions.Logging.LogLevel,System.String);Argument[1];Argument[this].Property[Microsoft.Extensions.Logging.LoggerMessageAttribute.Message];value;dfc-generated | @@ -3118,8 +2812,6 @@ summary | Microsoft.Extensions.Logging;LoggingBuilderExtensions;AddProvider;(Microsoft.Extensions.Logging.ILoggingBuilder,Microsoft.Extensions.Logging.ILoggerProvider);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Logging;LoggingBuilderExtensions;ClearProviders;(Microsoft.Extensions.Logging.ILoggingBuilder);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Logging;LoggingBuilderExtensions;Configure;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Logging;LoggingBuilderExtensions;Configure;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Logging;LoggingBuilderExtensions;Configure;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;LoggingBuilderExtensions;Configure;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;LoggingBuilderExtensions;SetMinimumLevel;(Microsoft.Extensions.Logging.ILoggingBuilder,Microsoft.Extensions.Logging.LogLevel);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Logging;ProviderAliasAttribute;ProviderAliasAttribute;(System.String);Argument[0];Argument[this].Property[Microsoft.Extensions.Logging.ProviderAliasAttribute.Alias];value;dfc-generated | @@ -3136,188 +2828,105 @@ summary | Microsoft.Extensions.Options;ConfigureNamedOptions;Configure;(System.String,TOptions);Argument[1];Argument[this];taint;df-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;Configure;(TOptions);Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`6.Name];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`6.Name];value;hq-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`6.Dependency1];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`6.Dependency1];value;hq-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`6.Dependency2];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`6.Dependency2];value;hq-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[3];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`6.Dependency3];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[3];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`6.Dependency3];value;hq-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[4];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`6.Dependency4];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[4];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`6.Dependency4];value;hq-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[5];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`6.Dependency5];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[5];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`6.Dependency5];value;hq-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[6];Argument[6].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[6];Argument[6].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[6];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`6.Action];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[6];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`6.Action];value;hq-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;Configure;(System.String,TOptions);Argument[1];Argument[this];taint;df-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;Configure;(TOptions);Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`5.Name];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`5.Name];value;hq-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`5.Dependency1];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`5.Dependency1];value;hq-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`5.Dependency2];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`5.Dependency2];value;hq-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[3];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`5.Dependency3];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[3];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`5.Dependency3];value;hq-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[4];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`5.Dependency4];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[4];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`5.Dependency4];value;hq-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[5];Argument[5].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[5];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`5.Action];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[5];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`5.Action];value;hq-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;Configure;(System.String,TOptions);Argument[1];Argument[this];taint;df-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;Configure;(TOptions);Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,System.Action);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`4.Name];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,System.Action);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`4.Name];value;hq-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,System.Action);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`4.Dependency1];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,System.Action);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`4.Dependency1];value;hq-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,System.Action);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`4.Dependency2];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,System.Action);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`4.Dependency2];value;hq-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,System.Action);Argument[3];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`4.Dependency3];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,System.Action);Argument[3];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`4.Dependency3];value;hq-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,System.Action);Argument[4];Argument[4].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,System.Action);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,System.Action);Argument[4];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`4.Action];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,System.Action);Argument[4];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`4.Action];value;hq-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;Configure;(System.String,TOptions);Argument[1];Argument[this];taint;df-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;Configure;(TOptions);Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,System.Action);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`3.Name];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,System.Action);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`3.Name];value;hq-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,System.Action);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`3.Dependency1];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,System.Action);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`3.Dependency1];value;hq-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,System.Action);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`3.Dependency2];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,System.Action);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`3.Dependency2];value;hq-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,System.Action);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,System.Action);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,System.Action);Argument[3];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`3.Action];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,System.Action);Argument[3];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`3.Action];value;hq-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;Configure;(System.String,TOptions);Argument[1];Argument[this];taint;df-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;Configure;(TOptions);Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep,System.Action);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`2.Name];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep,System.Action);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`2.Name];value;hq-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep,System.Action);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`2.Dependency];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep,System.Action);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`2.Dependency];value;hq-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep,System.Action);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep,System.Action);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep,System.Action);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`2.Action];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep,System.Action);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`2.Action];value;hq-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;Configure;(System.String,TOptions);Argument[1];Argument[this];taint;df-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;Configure;(TOptions);Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,System.Action);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`1.Name];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,System.Action);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`1.Name];value;hq-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,System.Action);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`1.Action];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,System.Action);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`1.Action];value;hq-generated | | Microsoft.Extensions.Options;ConfigureOptions;Configure;(TOptions);Argument[0];Argument[this];taint;df-generated | -| Microsoft.Extensions.Options;ConfigureOptions;ConfigureOptions;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;ConfigureOptions;ConfigureOptions;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;ConfigureOptions;ConfigureOptions;(System.Action);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.ConfigureOptions`1.Action];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureOptions;ConfigureOptions;(System.Action);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.ConfigureOptions`1.Action];value;hq-generated | | Microsoft.Extensions.Options;DataAnnotationValidateOptions;DataAnnotationValidateOptions;(System.String);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.DataAnnotationValidateOptions`1.Name];value;dfc-generated | | Microsoft.Extensions.Options;IOptionsMonitor;OnChange;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;IOptionsMonitorCache;GetOrAdd;(System.String,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;NamedConfigureFromConfigurationOptions;NamedConfigureFromConfigurationOptions;(System.String,Microsoft.Extensions.Configuration.IConfiguration,System.Action);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Configure;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;OptionsBuilder;Configure;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;OptionsBuilder;Configure;(System.Action);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Configure;(System.Action);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Configure;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;OptionsBuilder;Configure;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;OptionsBuilder;Configure;(System.Action);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Configure;(System.Action);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Configure;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;OptionsBuilder;Configure;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;OptionsBuilder;Configure;(System.Action);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Configure;(System.Action);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Configure;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;OptionsBuilder;Configure;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;OptionsBuilder;Configure;(System.Action);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Configure;(System.Action);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Configure;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;OptionsBuilder;Configure;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;OptionsBuilder;Configure;(System.Action);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Configure;(System.Action);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Configure;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;OptionsBuilder;Configure;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;OptionsBuilder;Configure;(System.Action);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Configure;(System.Action);Argument[this];ReturnValue;value;hq-generated | | Microsoft.Extensions.Options;OptionsBuilder;OptionsBuilder;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.OptionsBuilder`1.Services];value;dfc-generated | | Microsoft.Extensions.Options;OptionsBuilder;OptionsBuilder;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.OptionsBuilder`1.Name];value;dfc-generated | -| Microsoft.Extensions.Options;OptionsBuilder;PostConfigure;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;OptionsBuilder;PostConfigure;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;OptionsBuilder;PostConfigure;(System.Action);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Options;OptionsBuilder;PostConfigure;(System.Action);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Options;OptionsBuilder;PostConfigure;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;OptionsBuilder;PostConfigure;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;OptionsBuilder;PostConfigure;(System.Action);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Options;OptionsBuilder;PostConfigure;(System.Action);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Options;OptionsBuilder;PostConfigure;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;OptionsBuilder;PostConfigure;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;OptionsBuilder;PostConfigure;(System.Action);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Options;OptionsBuilder;PostConfigure;(System.Action);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Options;OptionsBuilder;PostConfigure;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;OptionsBuilder;PostConfigure;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;OptionsBuilder;PostConfigure;(System.Action);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Options;OptionsBuilder;PostConfigure;(System.Action);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Options;OptionsBuilder;PostConfigure;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;OptionsBuilder;PostConfigure;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;OptionsBuilder;PostConfigure;(System.Action);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Options;OptionsBuilder;PostConfigure;(System.Action);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Options;OptionsBuilder;PostConfigure;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;OptionsBuilder;PostConfigure;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;OptionsBuilder;PostConfigure;(System.Action);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Options;OptionsBuilder;PostConfigure;(System.Action);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func,System.String);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func,System.String);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func,System.String);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func,System.String);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func,System.String);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func,System.String);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func,System.String);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func,System.String);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func,System.String);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func,System.String);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func,System.String);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func,System.String);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func,System.String);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func,System.String);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func,System.String);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func,System.String);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func,System.String);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func,System.String);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func,System.String);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func,System.String);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func,System.String);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func,System.String);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func,System.String);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func,System.String);Argument[this];ReturnValue;value;hq-generated | | Microsoft.Extensions.Options;OptionsCache;GetOrAdd;(System.String,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;OptionsFactory;Create;(System.String);Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Options;OptionsFactory;OptionsFactory;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEnumerable>);Argument[0].Element;Argument[this];taint;df-generated | @@ -3332,175 +2941,102 @@ summary | Microsoft.Extensions.Options;OptionsValidationException;OptionsValidationException;(System.String,System.Type,System.Collections.Generic.IEnumerable);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.OptionsValidationException.OptionsName];value;dfc-generated | | Microsoft.Extensions.Options;OptionsValidationException;OptionsValidationException;(System.String,System.Type,System.Collections.Generic.IEnumerable);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.OptionsValidationException.Failures];value;dfc-generated | | Microsoft.Extensions.Options;OptionsValidationException;get_Message;();Argument[this].Property[Microsoft.Extensions.Options.OptionsValidationException.Failures].Element;ReturnValue;taint;dfc-generated | -| Microsoft.Extensions.Options;OptionsValidationException;get_Message;();Argument[this].SyntheticField[System.Exception._message];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Options;OptionsWrapper;OptionsWrapper;(TOptions);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.OptionsWrapper`1.Value];value;dfc-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigure;(System.String,TOptions);Argument[1];Argument[this];taint;df-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigure;(TOptions);Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`6.Name];value;dfc-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`6.Name];value;hq-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`6.Dependency1];value;dfc-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`6.Dependency1];value;hq-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`6.Dependency2];value;dfc-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`6.Dependency2];value;hq-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[3];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`6.Dependency3];value;dfc-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[3];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`6.Dependency3];value;hq-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[4];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`6.Dependency4];value;dfc-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[4];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`6.Dependency4];value;hq-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[5];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`6.Dependency5];value;dfc-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[5];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`6.Dependency5];value;hq-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[6];Argument[6].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[6];Argument[6].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[6];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`6.Action];value;dfc-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[6];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`6.Action];value;hq-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigure;(System.String,TOptions);Argument[1];Argument[this];taint;df-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigure;(TOptions);Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`5.Name];value;dfc-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`5.Name];value;hq-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`5.Dependency1];value;dfc-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`5.Dependency1];value;hq-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`5.Dependency2];value;dfc-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`5.Dependency2];value;hq-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[3];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`5.Dependency3];value;dfc-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[3];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`5.Dependency3];value;hq-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[4];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`5.Dependency4];value;dfc-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[4];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`5.Dependency4];value;hq-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[5];Argument[5].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[5];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`5.Action];value;dfc-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[5];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`5.Action];value;hq-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigure;(System.String,TOptions);Argument[1];Argument[this];taint;df-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigure;(TOptions);Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,System.Action);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`4.Name];value;dfc-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,System.Action);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`4.Name];value;hq-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,System.Action);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`4.Dependency1];value;dfc-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,System.Action);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`4.Dependency1];value;hq-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,System.Action);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`4.Dependency2];value;dfc-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,System.Action);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`4.Dependency2];value;hq-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,System.Action);Argument[3];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`4.Dependency3];value;dfc-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,System.Action);Argument[3];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`4.Dependency3];value;hq-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,System.Action);Argument[4];Argument[4].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,System.Action);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,System.Action);Argument[4];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`4.Action];value;dfc-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,System.Action);Argument[4];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`4.Action];value;hq-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigure;(System.String,TOptions);Argument[1];Argument[this];taint;df-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigure;(TOptions);Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,System.Action);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`3.Name];value;dfc-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,System.Action);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`3.Name];value;hq-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,System.Action);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`3.Dependency1];value;dfc-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,System.Action);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`3.Dependency1];value;hq-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,System.Action);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`3.Dependency2];value;dfc-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,System.Action);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`3.Dependency2];value;hq-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,System.Action);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,System.Action);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,System.Action);Argument[3];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`3.Action];value;dfc-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,System.Action);Argument[3];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`3.Action];value;hq-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigure;(System.String,TOptions);Argument[1];Argument[this];taint;df-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigure;(TOptions);Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep,System.Action);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`2.Name];value;dfc-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep,System.Action);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`2.Name];value;hq-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep,System.Action);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`2.Dependency];value;dfc-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep,System.Action);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`2.Dependency];value;hq-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep,System.Action);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep,System.Action);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep,System.Action);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`2.Action];value;dfc-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep,System.Action);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`2.Action];value;hq-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigure;(System.String,TOptions);Argument[1];Argument[this];taint;df-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,System.Action);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`1.Name];value;dfc-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,System.Action);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`1.Name];value;hq-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,System.Action);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`1.Action];value;dfc-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,System.Action);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`1.Action];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;Validate;(System.String,TOptions);Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`6.FailureMessage];ReturnValue.Property[Microsoft.Extensions.Options.ValidateOptionsResult.FailureMessage];value;dfc-generated | | Microsoft.Extensions.Options;ValidateOptions;Validate;(System.String,TOptions);Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`6.FailureMessage];ReturnValue.Property[Microsoft.Extensions.Options.ValidateOptionsResult.Failures].Element;value;dfc-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Func,System.String);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`6.Name];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Func,System.String);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`6.Name];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Func,System.String);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`6.Dependency1];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Func,System.String);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`6.Dependency1];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Func,System.String);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`6.Dependency2];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Func,System.String);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`6.Dependency2];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Func,System.String);Argument[3];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`6.Dependency3];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Func,System.String);Argument[3];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`6.Dependency3];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Func,System.String);Argument[4];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`6.Dependency4];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Func,System.String);Argument[4];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`6.Dependency4];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Func,System.String);Argument[5];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`6.Dependency5];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Func,System.String);Argument[5];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`6.Dependency5];value;hq-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Func,System.String);Argument[6];Argument[6].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Func,System.String);Argument[6];Argument[6].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Func,System.String);Argument[6];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`6.Validation];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Func,System.String);Argument[6];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`6.Validation];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Func,System.String);Argument[7];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`6.FailureMessage];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Func,System.String);Argument[7];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`6.FailureMessage];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;Validate;(System.String,TOptions);Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`5.FailureMessage];ReturnValue.Property[Microsoft.Extensions.Options.ValidateOptionsResult.FailureMessage];value;dfc-generated | | Microsoft.Extensions.Options;ValidateOptions;Validate;(System.String,TOptions);Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`5.FailureMessage];ReturnValue.Property[Microsoft.Extensions.Options.ValidateOptionsResult.Failures].Element;value;dfc-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Func,System.String);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`5.Name];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Func,System.String);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`5.Name];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Func,System.String);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`5.Dependency1];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Func,System.String);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`5.Dependency1];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Func,System.String);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`5.Dependency2];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Func,System.String);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`5.Dependency2];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Func,System.String);Argument[3];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`5.Dependency3];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Func,System.String);Argument[3];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`5.Dependency3];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Func,System.String);Argument[4];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`5.Dependency4];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Func,System.String);Argument[4];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`5.Dependency4];value;hq-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Func,System.String);Argument[5];Argument[5].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Func,System.String);Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Func,System.String);Argument[5];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`5.Validation];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Func,System.String);Argument[5];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`5.Validation];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Func,System.String);Argument[6];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`5.FailureMessage];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Func,System.String);Argument[6];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`5.FailureMessage];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;Validate;(System.String,TOptions);Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`4.FailureMessage];ReturnValue.Property[Microsoft.Extensions.Options.ValidateOptionsResult.FailureMessage];value;dfc-generated | | Microsoft.Extensions.Options;ValidateOptions;Validate;(System.String,TOptions);Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`4.FailureMessage];ReturnValue.Property[Microsoft.Extensions.Options.ValidateOptionsResult.Failures].Element;value;dfc-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,System.Func,System.String);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`4.Name];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,System.Func,System.String);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`4.Name];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,System.Func,System.String);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`4.Dependency1];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,System.Func,System.String);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`4.Dependency1];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,System.Func,System.String);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`4.Dependency2];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,System.Func,System.String);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`4.Dependency2];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,System.Func,System.String);Argument[3];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`4.Dependency3];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,System.Func,System.String);Argument[3];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`4.Dependency3];value;hq-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,System.Func,System.String);Argument[4];Argument[4].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,System.Func,System.String);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,System.Func,System.String);Argument[4];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`4.Validation];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,System.Func,System.String);Argument[4];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`4.Validation];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,System.Func,System.String);Argument[5];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`4.FailureMessage];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,System.Func,System.String);Argument[5];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`4.FailureMessage];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;Validate;(System.String,TOptions);Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`3.FailureMessage];ReturnValue.Property[Microsoft.Extensions.Options.ValidateOptionsResult.FailureMessage];value;dfc-generated | | Microsoft.Extensions.Options;ValidateOptions;Validate;(System.String,TOptions);Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`3.FailureMessage];ReturnValue.Property[Microsoft.Extensions.Options.ValidateOptionsResult.Failures].Element;value;dfc-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,System.Func,System.String);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`3.Name];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,System.Func,System.String);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`3.Name];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,System.Func,System.String);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`3.Dependency1];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,System.Func,System.String);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`3.Dependency1];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,System.Func,System.String);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`3.Dependency2];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,System.Func,System.String);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`3.Dependency2];value;hq-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,System.Func,System.String);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,System.Func,System.String);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,System.Func,System.String);Argument[3];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`3.Validation];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,System.Func,System.String);Argument[3];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`3.Validation];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,System.Func,System.String);Argument[4];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`3.FailureMessage];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,System.Func,System.String);Argument[4];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`3.FailureMessage];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;Validate;(System.String,TOptions);Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`2.FailureMessage];ReturnValue.Property[Microsoft.Extensions.Options.ValidateOptionsResult.FailureMessage];value;dfc-generated | | Microsoft.Extensions.Options;ValidateOptions;Validate;(System.String,TOptions);Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`2.FailureMessage];ReturnValue.Property[Microsoft.Extensions.Options.ValidateOptionsResult.Failures].Element;value;dfc-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep,System.Func,System.String);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`2.Name];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep,System.Func,System.String);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`2.Name];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep,System.Func,System.String);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`2.Dependency];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep,System.Func,System.String);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`2.Dependency];value;hq-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep,System.Func,System.String);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep,System.Func,System.String);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep,System.Func,System.String);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`2.Validation];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep,System.Func,System.String);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`2.Validation];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep,System.Func,System.String);Argument[3];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`2.FailureMessage];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep,System.Func,System.String);Argument[3];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`2.FailureMessage];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;Validate;(System.String,TOptions);Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`1.FailureMessage];ReturnValue.Property[Microsoft.Extensions.Options.ValidateOptionsResult.FailureMessage];value;dfc-generated | | Microsoft.Extensions.Options;ValidateOptions;Validate;(System.String,TOptions);Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`1.FailureMessage];ReturnValue.Property[Microsoft.Extensions.Options.ValidateOptionsResult.Failures].Element;value;dfc-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,System.Func,System.String);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`1.Name];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,System.Func,System.String);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`1.Name];value;hq-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,System.Func,System.String);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,System.Func,System.String);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,System.Func,System.String);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`1.Validation];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,System.Func,System.String);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`1.Validation];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,System.Func,System.String);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`1.FailureMessage];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,System.Func,System.String);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`1.FailureMessage];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptionsResult;Fail;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue.Property[Microsoft.Extensions.Options.ValidateOptionsResult.FailureMessage];taint;dfc-generated | | Microsoft.Extensions.Options;ValidateOptionsResult;Fail;(System.Collections.Generic.IEnumerable);Argument[0];ReturnValue.Property[Microsoft.Extensions.Options.ValidateOptionsResult.Failures];value;dfc-generated | | Microsoft.Extensions.Options;ValidateOptionsResult;Fail;(System.String);Argument[0];ReturnValue.Property[Microsoft.Extensions.Options.ValidateOptionsResult.FailureMessage];value;dfc-generated | @@ -3512,26 +3048,18 @@ summary | Microsoft.Extensions.Options;ValidateOptionsResultBuilder;AddResults;(System.Collections.Generic.IEnumerable);Argument[0].Element;Argument[this];taint;df-generated | | Microsoft.Extensions.Options;ValidateOptionsResultBuilder;Build;();Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Primitives;CancellationChangeToken;CancellationChangeToken;(System.Threading.CancellationToken);Argument[0];Argument[this];taint;df-generated | -| Microsoft.Extensions.Primitives;CancellationChangeToken;RegisterChangeCallback;(System.Action,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Primitives;CancellationChangeToken;RegisterChangeCallback;(System.Action,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| Microsoft.Extensions.Primitives;CancellationChangeToken;RegisterChangeCallback;(System.Action,System.Object);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Primitives;CancellationChangeToken;RegisterChangeCallback;(System.Action,System.Object);Argument[this];ReturnValue;value;hq-generated | | Microsoft.Extensions.Primitives;ChangeToken;OnChange;(System.Func,System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Primitives;ChangeToken;OnChange;(System.Func,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Primitives;ChangeToken;OnChange;(System.Func,System.Action,TState);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Primitives;ChangeToken;OnChange;(System.Func,System.Action,TState);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Primitives;CompositeChangeToken;CompositeChangeToken;(System.Collections.Generic.IReadOnlyList);Argument[0];Argument[this].Property[Microsoft.Extensions.Primitives.CompositeChangeToken.ChangeTokens];value;dfc-generated | -| Microsoft.Extensions.Primitives;CompositeChangeToken;RegisterChangeCallback;(System.Action,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Primitives;CompositeChangeToken;RegisterChangeCallback;(System.Action,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| Microsoft.Extensions.Primitives;CompositeChangeToken;RegisterChangeCallback;(System.Action,System.Object);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Primitives;CompositeChangeToken;RegisterChangeCallback;(System.Action,System.Object);Argument[this];ReturnValue;value;hq-generated | | Microsoft.Extensions.Primitives;Extensions;Append;(System.Text.StringBuilder,Microsoft.Extensions.Primitives.StringSegment);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Primitives;Extensions;Append;(System.Text.StringBuilder,Microsoft.Extensions.Primitives.StringSegment);Argument[1].Property[Microsoft.Extensions.Primitives.StringSegment.Buffer];Argument[0];taint;dfc-generated | | Microsoft.Extensions.Primitives;Extensions;Append;(System.Text.StringBuilder,Microsoft.Extensions.Primitives.StringSegment);Argument[1].Property[Microsoft.Extensions.Primitives.StringSegment.Buffer];ReturnValue;taint;dfc-generated | -| Microsoft.Extensions.Primitives;IChangeToken;RegisterChangeCallback;(System.Action,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Primitives;IChangeToken;RegisterChangeCallback;(System.Action,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Primitives;IChangeToken;RegisterChangeCallback;(System.Action,System.Object);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Primitives;IChangeToken;RegisterChangeCallback;(System.Action,System.Object);Argument[this];ReturnValue;value;hq-generated | | Microsoft.Extensions.Primitives;InplaceStringBuilder;ToString;();Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Primitives;StringSegment;StringSegment;(System.String);Argument[0];Argument[this].Property[Microsoft.Extensions.Primitives.StringSegment.Buffer];value;dfc-generated | | Microsoft.Extensions.Primitives;StringSegment;StringSegment;(System.String,System.Int32,System.Int32);Argument[0];Argument[this].Property[Microsoft.Extensions.Primitives.StringSegment.Buffer];value;dfc-generated | @@ -3541,10 +3069,7 @@ summary | Microsoft.Extensions.Primitives;StringSegment;ToString;();Argument[this].Property[Microsoft.Extensions.Primitives.StringSegment.Value];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Primitives;StringSegment;get_Value;();Argument[this].Property[Microsoft.Extensions.Primitives.StringSegment.Buffer];ReturnValue;taint;dfc-generated | | Microsoft.Extensions.Primitives;StringTokenizer+Enumerator;Enumerator;(Microsoft.Extensions.Primitives.StringTokenizer);Argument[0].Element;Argument[this];taint;df-generated | -| Microsoft.Extensions.Primitives;StringTokenizer+Enumerator;get_Current;();Argument[this].Property[Microsoft.Extensions.Primitives.StringTokenizer+Enumerator.Current];ReturnValue;value;df-generated | | Microsoft.Extensions.Primitives;StringTokenizer+Enumerator;get_Current;();Argument[this].Property[Microsoft.Extensions.Primitives.StringTokenizer+Enumerator.Current];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Primitives;StringTokenizer+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| Microsoft.Extensions.Primitives;StringTokenizer+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | Microsoft.Extensions.Primitives;StringTokenizer;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | | Microsoft.Extensions.Primitives;StringTokenizer;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | Microsoft.Extensions.Primitives;StringTokenizer;GetEnumerator;();Argument[this];ReturnValue;taint;df-generated | @@ -3552,7 +3077,6 @@ summary | Microsoft.Extensions.Primitives;StringTokenizer;StringTokenizer;(Microsoft.Extensions.Primitives.StringSegment,System.Char[]);Argument[1].Element;Argument[this];taint;df-generated | | Microsoft.Extensions.Primitives;StringTokenizer;StringTokenizer;(System.String,System.Char[]);Argument[1].Element;Argument[this];taint;df-generated | | Microsoft.Extensions.Primitives;StringValues+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| Microsoft.Extensions.Primitives;StringValues;Add;(System.String);Argument[0];Argument[this].Element;value;manual | | Microsoft.Extensions.Primitives;StringValues;Add;(System.String);Argument[0];ReturnValue;taint;manual | | Microsoft.Extensions.Primitives;StringValues;Add;(System.String);Argument[this];ReturnValue;taint;manual | | Microsoft.Extensions.Primitives;StringValues;Clear;();Argument[this].WithoutElement;Argument[this];value;manual | @@ -3566,7 +3090,6 @@ summary | Microsoft.Extensions.Primitives;StringValues;Contains;(System.String);Argument[this];ReturnValue;taint;manual | | Microsoft.Extensions.Primitives;StringValues;CopyTo;(System.String[],System.Int32);Argument[0].Element;ReturnValue;taint;manual | | Microsoft.Extensions.Primitives;StringValues;CopyTo;(System.String[],System.Int32);Argument[1];ReturnValue;taint;manual | -| Microsoft.Extensions.Primitives;StringValues;CopyTo;(System.String[],System.Int32);Argument[this].Element;Argument[0].Element;value;manual | | Microsoft.Extensions.Primitives;StringValues;CopyTo;(System.String[],System.Int32);Argument[this];ReturnValue;taint;manual | | Microsoft.Extensions.Primitives;StringValues;Equals;(Microsoft.Extensions.Primitives.StringValues);Argument[0];ReturnValue;taint;manual | | Microsoft.Extensions.Primitives;StringValues;Equals;(Microsoft.Extensions.Primitives.StringValues);Argument[this];ReturnValue;taint;manual | @@ -3586,14 +3109,11 @@ summary | Microsoft.Extensions.Primitives;StringValues;Equals;(System.String[]);Argument[this];ReturnValue;taint;manual | | Microsoft.Extensions.Primitives;StringValues;Equals;(System.String[],Microsoft.Extensions.Primitives.StringValues);Argument[0].Element;ReturnValue;taint;manual | | Microsoft.Extensions.Primitives;StringValues;Equals;(System.String[],Microsoft.Extensions.Primitives.StringValues);Argument[1];ReturnValue;taint;manual | -| Microsoft.Extensions.Primitives;StringValues;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | -| Microsoft.Extensions.Primitives;StringValues;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | Microsoft.Extensions.Primitives;StringValues;GetEnumerator;();Argument[this];ReturnValue;taint;manual | | Microsoft.Extensions.Primitives;StringValues;GetHashCode;();Argument[this];ReturnValue;taint;manual | | Microsoft.Extensions.Primitives;StringValues;IndexOf;(System.String);Argument[0];ReturnValue;taint;manual | | Microsoft.Extensions.Primitives;StringValues;IndexOf;(System.String);Argument[this];ReturnValue;taint;manual | | Microsoft.Extensions.Primitives;StringValues;Insert;(System.Int32,System.String);Argument[0];ReturnValue;taint;manual | -| Microsoft.Extensions.Primitives;StringValues;Insert;(System.Int32,System.String);Argument[1];Argument[this].Element;value;manual | | Microsoft.Extensions.Primitives;StringValues;Insert;(System.Int32,System.String);Argument[1];ReturnValue;taint;manual | | Microsoft.Extensions.Primitives;StringValues;Insert;(System.Int32,System.String);Argument[this];ReturnValue;taint;manual | | Microsoft.Extensions.Primitives;StringValues;IsNullOrEmpty;(Microsoft.Extensions.Primitives.StringValues);Argument[0];ReturnValue;taint;manual | @@ -3608,10 +3128,8 @@ summary | Microsoft.Extensions.Primitives;StringValues;get_Count;();Argument[this];ReturnValue;taint;manual | | Microsoft.Extensions.Primitives;StringValues;get_IsReadOnly;();Argument[this];ReturnValue;taint;manual | | Microsoft.Extensions.Primitives;StringValues;get_Item;(System.Int32);Argument[0];ReturnValue;taint;manual | -| Microsoft.Extensions.Primitives;StringValues;get_Item;(System.Int32);Argument[this].Element;ReturnValue;value;manual | | Microsoft.Extensions.Primitives;StringValues;get_Item;(System.Int32);Argument[this];ReturnValue;taint;manual | | Microsoft.Extensions.Primitives;StringValues;set_Item;(System.Int32,System.String);Argument[0];ReturnValue;taint;manual | -| Microsoft.Extensions.Primitives;StringValues;set_Item;(System.Int32,System.String);Argument[1];Argument[this].Element;value;manual | | Microsoft.Extensions.Primitives;StringValues;set_Item;(System.Int32,System.String);Argument[1];ReturnValue;taint;manual | | Microsoft.Extensions.Primitives;StringValues;set_Item;(System.Int32,System.String);Argument[this];ReturnValue;taint;manual | | Microsoft.Extensions.Validation;ValidateContext;add_OnValidationError;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | @@ -3727,7 +3245,6 @@ summary | Newtonsoft.Json.Linq;JEnumerable;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | Newtonsoft.Json.Linq;JObject;Add;(System.Collections.Generic.KeyValuePair);Argument[0].Property[System.Collections.Generic.KeyValuePair`2.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | | Newtonsoft.Json.Linq;JObject;Add;(System.Collections.Generic.KeyValuePair);Argument[0].Property[System.Collections.Generic.KeyValuePair`2.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;manual | -| Newtonsoft.Json.Linq;JObject;Add;(System.Collections.Generic.KeyValuePair);Argument[0];Argument[this].Element;value;manual | | Newtonsoft.Json.Linq;JObject;Add;(System.String,Newtonsoft.Json.Linq.JToken);Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | | Newtonsoft.Json.Linq;JObject;Add;(System.String,Newtonsoft.Json.Linq.JToken);Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;manual | | Newtonsoft.Json.Linq;JObject;Clear;();Argument[this].WithoutElement;Argument[this];value;manual | @@ -3746,7 +3263,6 @@ summary | Newtonsoft.Json.Linq;JObject;add_PropertyChanging;(System.ComponentModel.PropertyChangingEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Newtonsoft.Json.Linq;JObject;get_Item;(System.Object);Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];ReturnValue;value;manual | | Newtonsoft.Json.Linq;JObject;get_Item;(System.Object);Argument[this].Element;ReturnValue;value;manual | -| Newtonsoft.Json.Linq;JObject;get_Item;(System.String);Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];ReturnValue;value;manual | | Newtonsoft.Json.Linq;JObject;get_Item;(System.String);Argument[this].Element;ReturnValue;value;manual | | Newtonsoft.Json.Linq;JObject;get_Keys;();Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];ReturnValue.Element;value;manual | | Newtonsoft.Json.Linq;JObject;get_Values;();Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];ReturnValue.Element;value;manual | @@ -3755,8 +3271,6 @@ summary | Newtonsoft.Json.Linq;JObject;set_Item;(System.Object,Newtonsoft.Json.Linq.JToken);Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | | Newtonsoft.Json.Linq;JObject;set_Item;(System.Object,Newtonsoft.Json.Linq.JToken);Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;manual | | Newtonsoft.Json.Linq;JObject;set_Item;(System.Object,Newtonsoft.Json.Linq.JToken);Argument[1];Argument[this].Element;value;manual | -| Newtonsoft.Json.Linq;JObject;set_Item;(System.String,Newtonsoft.Json.Linq.JToken);Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | -| Newtonsoft.Json.Linq;JObject;set_Item;(System.String,Newtonsoft.Json.Linq.JToken);Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;manual | | Newtonsoft.Json.Linq;JObject;set_Item;(System.String,Newtonsoft.Json.Linq.JToken);Argument[1];Argument[this].Element;value;manual | | Newtonsoft.Json.Linq;JPropertyDescriptor;ResetValue;(System.Object);Argument[this];Argument[0];taint;df-generated | | Newtonsoft.Json.Linq;JPropertyDescriptor;SetValue;(System.Object,System.Object);Argument[0];Argument[this];taint;df-generated | @@ -4242,11 +3756,6 @@ summary | ServiceStack.Jobs;BackgroundJobOptions;set_OnSuccess;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | ServiceStack.Jobs;JobLogger;BeginScope;(TState);Argument[0];ReturnValue;taint;df-generated | | ServiceStack.Jobs;JobLogger;BeginScope;(TState);Argument[this];ReturnValue;taint;df-generated | -| ServiceStack.Jobs;JobLogger;Log;(Microsoft.Extensions.Logging.LogLevel,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[2];Argument[4].Parameter[0];value;dfc-generated | -| ServiceStack.Jobs;JobLogger;Log;(Microsoft.Extensions.Logging.LogLevel,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[2];Argument[4].Parameter[0];value;hq-generated | -| ServiceStack.Jobs;JobLogger;Log;(Microsoft.Extensions.Logging.LogLevel,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[3];Argument[4].Parameter[1];value;dfc-generated | -| ServiceStack.Jobs;JobLogger;Log;(Microsoft.Extensions.Logging.LogLevel,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[3];Argument[4].Parameter[1];value;hq-generated | -| ServiceStack.Jobs;JobLogger;Log;(Microsoft.Extensions.Logging.LogLevel,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[4];Argument[4].Parameter[delegate-self];value;dfc-generated | | ServiceStack.Jobs;JobLogger;Log;(Microsoft.Extensions.Logging.LogLevel,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | ServiceStack.Logging;GenericLogFactory;GenericLogFactory;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | ServiceStack.Messaging;BackgroundMqService;CreateMessageHandlerFactory;(System.Func,System.Object>,System.Action,System.Exception>);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | @@ -6274,33 +5783,12 @@ summary | System.CodeDom.Compiler;CodeGenerator;GenerateAttachEventStatement;(System.CodeDom.CodeAttachEventStatement);Argument[0];Argument[this];taint;df-generated | | System.CodeDom.Compiler;CodeGenerator;GenerateBinaryOperatorExpression;(System.CodeDom.CodeBinaryOperatorExpression);Argument[0];Argument[this];taint;df-generated | | System.CodeDom.Compiler;CodeGenerator;GenerateCastExpression;(System.CodeDom.CodeCastExpression);Argument[0];Argument[this];taint;df-generated | -| System.CodeDom.Compiler;CodeGenerator;GenerateCodeFromCompileUnit;(System.CodeDom.CodeCompileUnit,System.IO.TextWriter,System.CodeDom.Compiler.CodeGeneratorOptions);Argument[0];Argument[this];taint;df-generated | -| System.CodeDom.Compiler;CodeGenerator;GenerateCodeFromCompileUnit;(System.CodeDom.CodeCompileUnit,System.IO.TextWriter,System.CodeDom.Compiler.CodeGeneratorOptions);Argument[0];Argument[this];taint;dfc-generated | -| System.CodeDom.Compiler;CodeGenerator;GenerateCodeFromCompileUnit;(System.CodeDom.CodeCompileUnit,System.IO.TextWriter,System.CodeDom.Compiler.CodeGeneratorOptions);Argument[2];Argument[this].SyntheticField[System.CodeDom.Compiler.CodeGenerator._options];value;df-generated | | System.CodeDom.Compiler;CodeGenerator;GenerateCodeFromCompileUnit;(System.CodeDom.CodeCompileUnit,System.IO.TextWriter,System.CodeDom.Compiler.CodeGeneratorOptions);Argument[2];Argument[this].SyntheticField[System.CodeDom.Compiler.CodeGenerator._options];value;dfc-generated | -| System.CodeDom.Compiler;CodeGenerator;GenerateCodeFromCompileUnit;(System.CodeDom.CodeCompileUnit,System.IO.TextWriter,System.CodeDom.Compiler.CodeGeneratorOptions);Argument[2];Argument[this];taint;df-generated | -| System.CodeDom.Compiler;CodeGenerator;GenerateCodeFromCompileUnit;(System.CodeDom.CodeCompileUnit,System.IO.TextWriter,System.CodeDom.Compiler.CodeGeneratorOptions);Argument[2];Argument[this];taint;dfc-generated | -| System.CodeDom.Compiler;CodeGenerator;GenerateCodeFromExpression;(System.CodeDom.CodeExpression,System.IO.TextWriter,System.CodeDom.Compiler.CodeGeneratorOptions);Argument[2];Argument[this].SyntheticField[System.CodeDom.Compiler.CodeGenerator._options];value;df-generated | | System.CodeDom.Compiler;CodeGenerator;GenerateCodeFromExpression;(System.CodeDom.CodeExpression,System.IO.TextWriter,System.CodeDom.Compiler.CodeGeneratorOptions);Argument[2];Argument[this].SyntheticField[System.CodeDom.Compiler.CodeGenerator._options];value;dfc-generated | -| System.CodeDom.Compiler;CodeGenerator;GenerateCodeFromExpression;(System.CodeDom.CodeExpression,System.IO.TextWriter,System.CodeDom.Compiler.CodeGeneratorOptions);Argument[2];Argument[this];taint;df-generated | -| System.CodeDom.Compiler;CodeGenerator;GenerateCodeFromExpression;(System.CodeDom.CodeExpression,System.IO.TextWriter,System.CodeDom.Compiler.CodeGeneratorOptions);Argument[2];Argument[this];taint;dfc-generated | | System.CodeDom.Compiler;CodeGenerator;GenerateCodeFromMember;(System.CodeDom.CodeTypeMember,System.IO.TextWriter,System.CodeDom.Compiler.CodeGeneratorOptions);Argument[2];Argument[this].SyntheticField[System.CodeDom.Compiler.CodeGenerator._options];value;dfc-generated | -| System.CodeDom.Compiler;CodeGenerator;GenerateCodeFromNamespace;(System.CodeDom.CodeNamespace,System.IO.TextWriter,System.CodeDom.Compiler.CodeGeneratorOptions);Argument[0];Argument[this];taint;df-generated | -| System.CodeDom.Compiler;CodeGenerator;GenerateCodeFromNamespace;(System.CodeDom.CodeNamespace,System.IO.TextWriter,System.CodeDom.Compiler.CodeGeneratorOptions);Argument[0];Argument[this];taint;dfc-generated | -| System.CodeDom.Compiler;CodeGenerator;GenerateCodeFromNamespace;(System.CodeDom.CodeNamespace,System.IO.TextWriter,System.CodeDom.Compiler.CodeGeneratorOptions);Argument[2];Argument[this].SyntheticField[System.CodeDom.Compiler.CodeGenerator._options];value;df-generated | | System.CodeDom.Compiler;CodeGenerator;GenerateCodeFromNamespace;(System.CodeDom.CodeNamespace,System.IO.TextWriter,System.CodeDom.Compiler.CodeGeneratorOptions);Argument[2];Argument[this].SyntheticField[System.CodeDom.Compiler.CodeGenerator._options];value;dfc-generated | -| System.CodeDom.Compiler;CodeGenerator;GenerateCodeFromNamespace;(System.CodeDom.CodeNamespace,System.IO.TextWriter,System.CodeDom.Compiler.CodeGeneratorOptions);Argument[2];Argument[this];taint;df-generated | -| System.CodeDom.Compiler;CodeGenerator;GenerateCodeFromNamespace;(System.CodeDom.CodeNamespace,System.IO.TextWriter,System.CodeDom.Compiler.CodeGeneratorOptions);Argument[2];Argument[this];taint;dfc-generated | -| System.CodeDom.Compiler;CodeGenerator;GenerateCodeFromStatement;(System.CodeDom.CodeStatement,System.IO.TextWriter,System.CodeDom.Compiler.CodeGeneratorOptions);Argument[2];Argument[this].SyntheticField[System.CodeDom.Compiler.CodeGenerator._options];value;df-generated | | System.CodeDom.Compiler;CodeGenerator;GenerateCodeFromStatement;(System.CodeDom.CodeStatement,System.IO.TextWriter,System.CodeDom.Compiler.CodeGeneratorOptions);Argument[2];Argument[this].SyntheticField[System.CodeDom.Compiler.CodeGenerator._options];value;dfc-generated | -| System.CodeDom.Compiler;CodeGenerator;GenerateCodeFromStatement;(System.CodeDom.CodeStatement,System.IO.TextWriter,System.CodeDom.Compiler.CodeGeneratorOptions);Argument[2];Argument[this];taint;df-generated | -| System.CodeDom.Compiler;CodeGenerator;GenerateCodeFromStatement;(System.CodeDom.CodeStatement,System.IO.TextWriter,System.CodeDom.Compiler.CodeGeneratorOptions);Argument[2];Argument[this];taint;dfc-generated | -| System.CodeDom.Compiler;CodeGenerator;GenerateCodeFromType;(System.CodeDom.CodeTypeDeclaration,System.IO.TextWriter,System.CodeDom.Compiler.CodeGeneratorOptions);Argument[0];Argument[this];taint;df-generated | -| System.CodeDom.Compiler;CodeGenerator;GenerateCodeFromType;(System.CodeDom.CodeTypeDeclaration,System.IO.TextWriter,System.CodeDom.Compiler.CodeGeneratorOptions);Argument[0];Argument[this];taint;dfc-generated | -| System.CodeDom.Compiler;CodeGenerator;GenerateCodeFromType;(System.CodeDom.CodeTypeDeclaration,System.IO.TextWriter,System.CodeDom.Compiler.CodeGeneratorOptions);Argument[2];Argument[this].SyntheticField[System.CodeDom.Compiler.CodeGenerator._options];value;df-generated | | System.CodeDom.Compiler;CodeGenerator;GenerateCodeFromType;(System.CodeDom.CodeTypeDeclaration,System.IO.TextWriter,System.CodeDom.Compiler.CodeGeneratorOptions);Argument[2];Argument[this].SyntheticField[System.CodeDom.Compiler.CodeGenerator._options];value;dfc-generated | -| System.CodeDom.Compiler;CodeGenerator;GenerateCodeFromType;(System.CodeDom.CodeTypeDeclaration,System.IO.TextWriter,System.CodeDom.Compiler.CodeGeneratorOptions);Argument[2];Argument[this];taint;df-generated | -| System.CodeDom.Compiler;CodeGenerator;GenerateCodeFromType;(System.CodeDom.CodeTypeDeclaration,System.IO.TextWriter,System.CodeDom.Compiler.CodeGeneratorOptions);Argument[2];Argument[this];taint;dfc-generated | | System.CodeDom.Compiler;CodeGenerator;GenerateCompileUnit;(System.CodeDom.CodeCompileUnit);Argument[0];Argument[this];taint;df-generated | | System.CodeDom.Compiler;CodeGenerator;GenerateCompileUnitEnd;(System.CodeDom.CodeCompileUnit);Argument[0];Argument[this];taint;df-generated | | System.CodeDom.Compiler;CodeGenerator;GenerateCompileUnitStart;(System.CodeDom.CodeCompileUnit);Argument[0];Argument[this];taint;df-generated | @@ -6342,12 +5830,9 @@ summary | System.CodeDom.Compiler;CodeGenerator;GenerateTypes;(System.CodeDom.CodeNamespace);Argument[0].Property[System.CodeDom.CodeNamespace.Types].Element;Argument[this].SyntheticField[System.CodeDom.Compiler.CodeGenerator._currentClass];value;dfc-generated | | System.CodeDom.Compiler;CodeGenerator;GenerateVariableDeclarationStatement;(System.CodeDom.CodeVariableDeclarationStatement);Argument[0];Argument[this];taint;df-generated | | System.CodeDom.Compiler;CodeGenerator;GenerateVariableReferenceExpression;(System.CodeDom.CodeVariableReferenceExpression);Argument[0];Argument[this];taint;df-generated | -| System.CodeDom.Compiler;CodeGenerator;GetTypeOutput;(System.CodeDom.CodeTypeReference);Argument[0].Property[System.CodeDom.CodeTypeReference.ArrayElementType].Property[System.CodeDom.CodeTypeReference.BaseType];ReturnValue;taint;df-generated | | System.CodeDom.Compiler;CodeGenerator;GetTypeOutput;(System.CodeDom.CodeTypeReference);Argument[0].Property[System.CodeDom.CodeTypeReference.ArrayElementType].Property[System.CodeDom.CodeTypeReference.BaseType];ReturnValue;taint;dfc-generated | -| System.CodeDom.Compiler;CodeGenerator;GetTypeOutput;(System.CodeDom.CodeTypeReference);Argument[0].Property[System.CodeDom.CodeTypeReference.BaseType];ReturnValue;taint;df-generated | | System.CodeDom.Compiler;CodeGenerator;GetTypeOutput;(System.CodeDom.CodeTypeReference);Argument[0].Property[System.CodeDom.CodeTypeReference.BaseType];ReturnValue;taint;dfc-generated | | System.CodeDom.Compiler;CodeGenerator;GetTypeOutput;(System.CodeDom.CodeTypeReference);Argument[0];ReturnValue;taint;df-generated | -| System.CodeDom.Compiler;CodeGenerator;GetTypeOutput;(System.CodeDom.CodeTypeReference);Argument[0];ReturnValue;taint;dfc-generated | | System.CodeDom.Compiler;CodeGenerator;OutputAttributeArgument;(System.CodeDom.CodeAttributeArgument);Argument[0];Argument[this];taint;df-generated | | System.CodeDom.Compiler;CodeGenerator;OutputAttributeDeclarations;(System.CodeDom.CodeAttributeDeclarationCollection);Argument[0].Element;Argument[this];taint;df-generated | | System.CodeDom.Compiler;CodeGenerator;OutputExpressionList;(System.CodeDom.CodeExpressionCollection);Argument[0].Element;Argument[this];taint;df-generated | @@ -6408,54 +5893,22 @@ summary | System.CodeDom.Compiler;IndentedTextWriter;DisposeAsync;();Argument[this];ReturnValue;taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;FlushAsync;();Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];ReturnValue.SyntheticField[System.Threading.Tasks.Task.m_stateObject];value;dfc-generated | | System.CodeDom.Compiler;IndentedTextWriter;FlushAsync;();Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];ReturnValue.SyntheticField[System.Threading.Tasks.Task.m_stateObject];value;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;FlushAsync;();Argument[this];ReturnValue.SyntheticField[System.Threading.Tasks.Task.m_stateObject];value;dfc-generated | | System.CodeDom.Compiler;IndentedTextWriter;FlushAsync;(System.Threading.CancellationToken);Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];ReturnValue.SyntheticField[System.Threading.Tasks.Task.m_stateObject];value;dfc-generated | | System.CodeDom.Compiler;IndentedTextWriter;FlushAsync;(System.Threading.CancellationToken);Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];ReturnValue.SyntheticField[System.Threading.Tasks.Task.m_stateObject];value;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;FlushAsync;(System.Threading.CancellationToken);Argument[this];ReturnValue.SyntheticField[System.Threading.Tasks.Task.m_stateObject];value;dfc-generated | | System.CodeDom.Compiler;IndentedTextWriter;IndentedTextWriter;(System.IO.TextWriter,System.String);Argument[0];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];value;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;Write;(System.Char[]);Argument[0].Element;Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;Write;(System.Char[]);Argument[0].Element;Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;Write;(System.Char[]);Argument[0].Element;Argument[this];taint;df-generated | -| System.CodeDom.Compiler;IndentedTextWriter;Write;(System.Char[]);Argument[0].Element;Argument[this];taint;dfc-generated | | System.CodeDom.Compiler;IndentedTextWriter;Write;(System.Char[],System.Int32,System.Int32);Argument[0].Element;Argument[this];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;Write;(System.Object);Argument[0];Argument[this];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String);Argument[0];Argument[this];taint;df-generated | -| System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String,System.Object);Argument[0];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String,System.Object);Argument[0];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String,System.Object);Argument[0];Argument[this];taint;df-generated | -| System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String,System.Object);Argument[0];Argument[this];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String,System.Object);Argument[1];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String,System.Object);Argument[1];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String,System.Object);Argument[1];Argument[this];taint;df-generated | -| System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String,System.Object);Argument[1];Argument[this];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String,System.Object,System.Object);Argument[0];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String,System.Object,System.Object);Argument[0];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String,System.Object,System.Object);Argument[0];Argument[this];taint;df-generated | -| System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String,System.Object,System.Object);Argument[0];Argument[this];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String,System.Object,System.Object);Argument[1];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String,System.Object,System.Object);Argument[1];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String,System.Object,System.Object);Argument[1];Argument[this];taint;df-generated | -| System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String,System.Object,System.Object);Argument[1];Argument[this];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String,System.Object,System.Object);Argument[2];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String,System.Object,System.Object);Argument[2];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String,System.Object,System.Object);Argument[2];Argument[this];taint;df-generated | -| System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String,System.Object,System.Object);Argument[2];Argument[this];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String,System.Object[]);Argument[0];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String,System.Object[]);Argument[0];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String,System.Object[]);Argument[0];Argument[this];taint;df-generated | -| System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String,System.Object[]);Argument[0];Argument[this];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String,System.Object[]);Argument[1].Element;Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String,System.Object[]);Argument[1].Element;Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String,System.Object[]);Argument[1].Element;Argument[this];taint;df-generated | -| System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String,System.Object[]);Argument[1].Element;Argument[this];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String,System.ReadOnlySpan);Argument[0];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String,System.ReadOnlySpan);Argument[0];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String,System.ReadOnlySpan);Argument[0];Argument[this];taint;df-generated | -| System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String,System.ReadOnlySpan);Argument[0];Argument[this];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String,System.ReadOnlySpan);Argument[1].Element;Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String,System.ReadOnlySpan);Argument[1].Element;Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String,System.ReadOnlySpan);Argument[1];Argument[this];taint;df-generated | -| System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String,System.ReadOnlySpan);Argument[1];Argument[this];taint;dfc-generated | | System.CodeDom.Compiler;IndentedTextWriter;WriteAsync;(System.Char);Argument[this];ReturnValue;taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;WriteAsync;(System.Char[],System.Int32,System.Int32);Argument[0].Element;Argument[this];taint;dfc-generated | | System.CodeDom.Compiler;IndentedTextWriter;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);Argument[0];ReturnValue;taint;df-generated | @@ -6464,80 +5917,28 @@ summary | System.CodeDom.Compiler;IndentedTextWriter;WriteAsync;(System.String);Argument[0];Argument[this];taint;dfc-generated | | System.CodeDom.Compiler;IndentedTextWriter;WriteAsync;(System.Text.StringBuilder,System.Threading.CancellationToken);Argument[0];Argument[this];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;WriteAsync;(System.Text.StringBuilder,System.Threading.CancellationToken);Argument[1];ReturnValue;taint;df-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.Char[]);Argument[0].Element;Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.Char[]);Argument[0].Element;Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.Char[]);Argument[0].Element;Argument[this];taint;df-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.Char[]);Argument[0].Element;Argument[this];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.Char[],System.Int32,System.Int32);Argument[0].Element;Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.Char[],System.Int32,System.Int32);Argument[0].Element;Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.Char[],System.Int32,System.Int32);Argument[0].Element;Argument[this];taint;df-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.Char[],System.Int32,System.Int32);Argument[0].Element;Argument[this];taint;dfc-generated | | System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.Object);Argument[0];Argument[this];taint;df-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String);Argument[0];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String);Argument[0];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String);Argument[0];Argument[this];taint;df-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String);Argument[0];Argument[this];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String,System.Object);Argument[0];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String,System.Object);Argument[0];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String,System.Object);Argument[0];Argument[this];taint;df-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String,System.Object);Argument[0];Argument[this];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String,System.Object);Argument[1];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String,System.Object);Argument[1];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String,System.Object);Argument[1];Argument[this];taint;df-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String,System.Object);Argument[1];Argument[this];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String,System.Object,System.Object);Argument[0];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String,System.Object,System.Object);Argument[0];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String,System.Object,System.Object);Argument[0];Argument[this];taint;df-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String,System.Object,System.Object);Argument[0];Argument[this];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String,System.Object,System.Object);Argument[1];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String,System.Object,System.Object);Argument[1];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String,System.Object,System.Object);Argument[1];Argument[this];taint;df-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String,System.Object,System.Object);Argument[1];Argument[this];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String,System.Object,System.Object);Argument[2];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String,System.Object,System.Object);Argument[2];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String,System.Object,System.Object);Argument[2];Argument[this];taint;df-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String,System.Object,System.Object);Argument[2];Argument[this];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String,System.Object[]);Argument[0];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String,System.Object[]);Argument[0];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String,System.Object[]);Argument[0];Argument[this];taint;df-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String,System.Object[]);Argument[0];Argument[this];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String,System.Object[]);Argument[1].Element;Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String,System.Object[]);Argument[1].Element;Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String,System.Object[]);Argument[1].Element;Argument[this];taint;df-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String,System.Object[]);Argument[1].Element;Argument[this];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String,System.ReadOnlySpan);Argument[0];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String,System.ReadOnlySpan);Argument[0];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String,System.ReadOnlySpan);Argument[0];Argument[this];taint;df-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String,System.ReadOnlySpan);Argument[0];Argument[this];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String,System.ReadOnlySpan);Argument[1].Element;Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String,System.ReadOnlySpan);Argument[1].Element;Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String,System.ReadOnlySpan);Argument[1];Argument[this];taint;df-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String,System.ReadOnlySpan);Argument[1];Argument[this];taint;dfc-generated | | System.CodeDom.Compiler;IndentedTextWriter;WriteLineAsync;();Argument[this];ReturnValue;taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;WriteLineAsync;(System.Char);Argument[this];ReturnValue;taint;df-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLineAsync;(System.Char[],System.Int32,System.Int32);Argument[0].Element;Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;WriteLineAsync;(System.Char[],System.Int32,System.Int32);Argument[0].Element;Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLineAsync;(System.Char[],System.Int32,System.Int32);Argument[0].Element;Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;WriteLineAsync;(System.Char[],System.Int32,System.Int32);Argument[0].Element;Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLineAsync;(System.Char[],System.Int32,System.Int32);Argument[0].Element;Argument[this];taint;df-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLineAsync;(System.Char[],System.Int32,System.Int32);Argument[0].Element;Argument[this];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLineAsync;(System.Char[],System.Int32,System.Int32);Argument[0].Element;ReturnValue;taint;df-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLineAsync;(System.Char[],System.Int32,System.Int32);Argument[0].Element;ReturnValue;taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLineAsync;(System.Char[],System.Int32,System.Int32);Argument[this];ReturnValue;taint;df-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLineAsync;(System.Char[],System.Int32,System.Int32);Argument[this];ReturnValue;taint;dfc-generated | | System.CodeDom.Compiler;IndentedTextWriter;WriteLineAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);Argument[0];ReturnValue;taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;WriteLineAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);Argument[1];ReturnValue;taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;WriteLineAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);Argument[this];ReturnValue;taint;df-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLineAsync;(System.String);Argument[0];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;WriteLineAsync;(System.String);Argument[0];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLineAsync;(System.String);Argument[0];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;WriteLineAsync;(System.String);Argument[0];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLineAsync;(System.String);Argument[0];Argument[this];taint;df-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLineAsync;(System.String);Argument[0];Argument[this];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLineAsync;(System.String);Argument[0];ReturnValue;taint;df-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLineAsync;(System.String);Argument[0];ReturnValue;taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLineAsync;(System.String);Argument[this];ReturnValue;taint;df-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLineAsync;(System.String);Argument[this];ReturnValue;taint;dfc-generated | | System.CodeDom.Compiler;IndentedTextWriter;WriteLineAsync;(System.Text.StringBuilder,System.Threading.CancellationToken);Argument[0];Argument[this];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;WriteLineAsync;(System.Text.StringBuilder,System.Threading.CancellationToken);Argument[1];ReturnValue;taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;WriteLineAsync;(System.Text.StringBuilder,System.Threading.CancellationToken);Argument[this];ReturnValue;taint;df-generated | @@ -6545,10 +5946,7 @@ summary | System.CodeDom.Compiler;IndentedTextWriter;WriteLineNoTabsAsync;(System.String);Argument[0];Argument[this];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;WriteLineNoTabsAsync;(System.String);Argument[0];ReturnValue;taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;WriteLineNoTabsAsync;(System.String);Argument[this];ReturnValue;taint;df-generated | -| System.CodeDom.Compiler;IndentedTextWriter;get_Encoding;();Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].Property[System.IO.TextWriter.Encoding];ReturnValue;value;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;get_Encoding;();Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].Property[System.IO.TextWriter.Encoding];ReturnValue;value;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;get_Encoding;();Argument[this];ReturnValue;taint;df-generated | -| System.CodeDom.Compiler;IndentedTextWriter;get_Encoding;();Argument[this];ReturnValue;taint;dfc-generated | | System.CodeDom.Compiler;IndentedTextWriter;get_InnerWriter;();Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];ReturnValue;value;dfc-generated | | System.CodeDom.Compiler;TempFileCollection;AddExtension;(System.String);Argument[0];ReturnValue;taint;dfc-generated | | System.CodeDom.Compiler;TempFileCollection;AddExtension;(System.String);Argument[this].Property[System.CodeDom.Compiler.TempFileCollection.BasePath];ReturnValue;taint;dfc-generated | @@ -6828,47 +6226,28 @@ summary | System.Collections.Concurrent;ConcurrentBag;get_SyncRoot;();Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Concurrent;ConcurrentDictionary;Add;(System.Collections.Generic.KeyValuePair);Argument[0].Property[System.Collections.Generic.KeyValuePair`2.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | | System.Collections.Concurrent;ConcurrentDictionary;Add;(System.Collections.Generic.KeyValuePair);Argument[0].Property[System.Collections.Generic.KeyValuePair`2.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;manual | -| System.Collections.Concurrent;ConcurrentDictionary;Add;(System.Collections.Generic.KeyValuePair);Argument[0];Argument[this].Element;value;manual | | System.Collections.Concurrent;ConcurrentDictionary;Add;(System.Object,System.Object);Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | | System.Collections.Concurrent;ConcurrentDictionary;Add;(System.Object,System.Object);Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;manual | | System.Collections.Concurrent;ConcurrentDictionary;Add;(TKey,TValue);Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | | System.Collections.Concurrent;ConcurrentDictionary;Add;(TKey,TValue);Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;manual | | System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func);Argument[0];Argument[1].Parameter[0];value;dfc-generated | -| System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func);Argument[0];Argument[1].Parameter[0];value;hq-generated | | System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func);Argument[0];Argument[2].Parameter[0];value;dfc-generated | -| System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func);Argument[0];Argument[2].Parameter[0];value;hq-generated | | System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func);Argument[1].ReturnValue;ReturnValue;value;dfc-generated | -| System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func);Argument[1].ReturnValue;ReturnValue;value;hq-generated | -| System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func);Argument[2].ReturnValue;ReturnValue;value;dfc-generated | -| System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func);Argument[2].ReturnValue;ReturnValue;value;hq-generated | -| System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,TValue,System.Func);Argument[0];Argument[2].Parameter[0];value;dfc-generated | -| System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,TValue,System.Func);Argument[0];Argument[2].Parameter[0];value;hq-generated | | System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,TValue,System.Func);Argument[1];ReturnValue;value;dfc-generated | -| System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,TValue,System.Func);Argument[1];ReturnValue;value;hq-generated | | System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,TValue,System.Func);Argument[2].ReturnValue;ReturnValue;value;dfc-generated | -| System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,TValue,System.Func);Argument[2].ReturnValue;ReturnValue;value;hq-generated | -| System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,TValue,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,TValue,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func,TArg);Argument[0];Argument[1].Parameter[0];value;dfc-generated | -| System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func,TArg);Argument[0];Argument[1].Parameter[0];value;hq-generated | | System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func,TArg);Argument[0];Argument[2].Parameter[0];value;dfc-generated | -| System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func,TArg);Argument[0];Argument[2].Parameter[0];value;hq-generated | | System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func,TArg);Argument[1].ReturnValue;ReturnValue;value;dfc-generated | -| System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func,TArg);Argument[1].ReturnValue;ReturnValue;value;hq-generated | -| System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func,TArg);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func,TArg);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func,TArg);Argument[2].ReturnValue;ReturnValue;value;dfc-generated | -| System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func,TArg);Argument[2].ReturnValue;ReturnValue;value;hq-generated | -| System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func,TArg);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func,TArg);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func,TArg);Argument[3];Argument[1].Parameter[1];value;dfc-generated | -| System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func,TArg);Argument[3];Argument[1].Parameter[1];value;hq-generated | | System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func,TArg);Argument[3];Argument[2].Parameter[2];value;dfc-generated | -| System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func,TArg);Argument[3];Argument[2].Parameter[2];value;hq-generated | | System.Collections.Concurrent;ConcurrentDictionary;Clear;();Argument[this].WithoutElement;Argument[this];value;manual | | System.Collections.Concurrent;ConcurrentDictionary;ConcurrentDictionary;(System.Collections.Generic.IEnumerable>);Argument[0].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | | System.Collections.Concurrent;ConcurrentDictionary;ConcurrentDictionary;(System.Collections.Generic.IEnumerable>);Argument[0].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;manual | @@ -6883,20 +6262,13 @@ summary | System.Collections.Concurrent;ConcurrentDictionary;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Collections.Concurrent;ConcurrentDictionary;GetEnumerator;();Argument[this];ReturnValue;taint;df-generated | | System.Collections.Concurrent;ConcurrentDictionary;GetOrAdd;(TKey,System.Func);Argument[0];Argument[1].Parameter[0];value;dfc-generated | -| System.Collections.Concurrent;ConcurrentDictionary;GetOrAdd;(TKey,System.Func);Argument[0];Argument[1].Parameter[0];value;hq-generated | | System.Collections.Concurrent;ConcurrentDictionary;GetOrAdd;(TKey,System.Func);Argument[1].ReturnValue;ReturnValue;value;dfc-generated | -| System.Collections.Concurrent;ConcurrentDictionary;GetOrAdd;(TKey,System.Func);Argument[1].ReturnValue;ReturnValue;value;hq-generated | -| System.Collections.Concurrent;ConcurrentDictionary;GetOrAdd;(TKey,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Collections.Concurrent;ConcurrentDictionary;GetOrAdd;(TKey,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Concurrent;ConcurrentDictionary;GetOrAdd;(TKey,TValue);Argument[1];ReturnValue;value;dfc-generated | | System.Collections.Concurrent;ConcurrentDictionary;GetOrAdd;(TKey,System.Func,TArg);Argument[0];Argument[1].Parameter[0];value;dfc-generated | -| System.Collections.Concurrent;ConcurrentDictionary;GetOrAdd;(TKey,System.Func,TArg);Argument[0];Argument[1].Parameter[0];value;hq-generated | | System.Collections.Concurrent;ConcurrentDictionary;GetOrAdd;(TKey,System.Func,TArg);Argument[1].ReturnValue;ReturnValue;value;dfc-generated | -| System.Collections.Concurrent;ConcurrentDictionary;GetOrAdd;(TKey,System.Func,TArg);Argument[1].ReturnValue;ReturnValue;value;hq-generated | -| System.Collections.Concurrent;ConcurrentDictionary;GetOrAdd;(TKey,System.Func,TArg);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Collections.Concurrent;ConcurrentDictionary;GetOrAdd;(TKey,System.Func,TArg);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Concurrent;ConcurrentDictionary;GetOrAdd;(TKey,System.Func,TArg);Argument[2];Argument[1].Parameter[1];value;dfc-generated | -| System.Collections.Concurrent;ConcurrentDictionary;GetOrAdd;(TKey,System.Func,TArg);Argument[2];Argument[1].Parameter[1];value;hq-generated | | System.Collections.Concurrent;ConcurrentDictionary;Remove;(System.Object);Argument[0];Argument[this];taint;df-generated | | System.Collections.Concurrent;ConcurrentDictionary;get_Comparer;();Argument[this];ReturnValue;taint;df-generated | | System.Collections.Concurrent;ConcurrentDictionary;get_Item;(System.Object);Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];ReturnValue;value;manual | @@ -6941,10 +6313,8 @@ summary | System.Collections.Frozen;FrozenDictionary+AlternateLookup;ContainsKey;(TAlternateKey);Argument[0];Argument[this];taint;df-generated | | System.Collections.Frozen;FrozenDictionary+AlternateLookup;TryGetValue;(TAlternateKey,TValue);Argument[0];Argument[this];taint;df-generated | | System.Collections.Frozen;FrozenDictionary+AlternateLookup;get_Item;(TAlternateKey);Argument[0];Argument[this];taint;df-generated | -| System.Collections.Frozen;FrozenDictionary+Enumerator;get_Current;();Argument[this].Property[System.Collections.Frozen.FrozenDictionary`2+Enumerator.Current];ReturnValue;value;df-generated | | System.Collections.Frozen;FrozenDictionary+Enumerator;get_Current;();Argument[this].Property[System.Collections.Frozen.FrozenDictionary`2+Enumerator.Current];ReturnValue;value;dfc-generated | | System.Collections.Frozen;FrozenDictionary+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Collections.Frozen;FrozenDictionary+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Collections.Frozen;FrozenDictionary;Add;(System.Collections.Generic.KeyValuePair);Argument[0];Argument[this].Element;value;manual | | System.Collections.Frozen;FrozenDictionary;Add;(System.Object,System.Object);Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | | System.Collections.Frozen;FrozenDictionary;Add;(System.Object,System.Object);Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;manual | @@ -6957,7 +6327,6 @@ summary | System.Collections.Frozen;FrozenDictionary;GetAlternateLookup;();Argument[this];ReturnValue.Property[System.Collections.Frozen.FrozenDictionary`2+AlternateLookup`1.Dictionary];value;dfc-generated | | System.Collections.Frozen;FrozenDictionary;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | | System.Collections.Frozen;FrozenDictionary;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | -| System.Collections.Frozen;FrozenDictionary;GetEnumerator;();Argument[this];ReturnValue;taint;df-generated | | System.Collections.Frozen;FrozenDictionary;Remove;(System.Object);Argument[0];Argument[this];taint;df-generated | | System.Collections.Frozen;FrozenDictionary;TryGetAlternateLookup;(System.Collections.Frozen.FrozenDictionary+AlternateLookup);Argument[this];Argument[0].Property[System.Collections.Frozen.FrozenDictionary`2+AlternateLookup`1.Dictionary];value;dfc-generated | | System.Collections.Frozen;FrozenDictionary;get_Item;(System.Object);Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];ReturnValue;value;manual | @@ -6977,10 +6346,8 @@ summary | System.Collections.Frozen;FrozenSet+AlternateLookup;Contains;(TAlternate);Argument[0];Argument[this];taint;df-generated | | System.Collections.Frozen;FrozenSet+AlternateLookup;TryGetValue;(TAlternate,T);Argument[0];Argument[this];taint;df-generated | | System.Collections.Frozen;FrozenSet+AlternateLookup;TryGetValue;(TAlternate,T);Argument[this];Argument[1];taint;df-generated | -| System.Collections.Frozen;FrozenSet+Enumerator;get_Current;();Argument[this].Property[System.Collections.Frozen.FrozenSet`1+Enumerator.Current];ReturnValue;value;df-generated | | System.Collections.Frozen;FrozenSet+Enumerator;get_Current;();Argument[this].Property[System.Collections.Frozen.FrozenSet`1+Enumerator.Current];ReturnValue;value;dfc-generated | | System.Collections.Frozen;FrozenSet+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Collections.Frozen;FrozenSet+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Collections.Frozen;FrozenSet;Add;(T);Argument[0];Argument[this].Element;value;manual | | System.Collections.Frozen;FrozenSet;Clear;();Argument[this].WithoutElement;Argument[this];value;manual | | System.Collections.Frozen;FrozenSet;Contains;(T);Argument[this];Argument[0];taint;df-generated | @@ -7016,27 +6383,20 @@ summary | System.Collections.Generic;Dictionary+KeyCollection;CopyTo;(System.Array,System.Int32);Argument[this].Element;Argument[0].Element;value;manual | | System.Collections.Generic;Dictionary+KeyCollection;CopyTo;(TKey[],System.Int32);Argument[this].Element;Argument[0].Element;value;manual | | System.Collections.Generic;Dictionary+KeyCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator.Current];value;manual | -| System.Collections.Generic;Dictionary+KeyCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | -| System.Collections.Generic;Dictionary+KeyCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Collections.Generic;Dictionary+KeyCollection;KeyCollection;(System.Collections.Generic.Dictionary);Argument[0];Argument[this].SyntheticField[System.Collections.Generic.Dictionary`2+KeyCollection._dictionary];value;dfc-generated | | System.Collections.Generic;Dictionary+KeyCollection;get_SyncRoot;();Argument[this].SyntheticField[System.Collections.Generic.Dictionary`2+KeyCollection._dictionary].Property[System.Collections.ICollection.SyncRoot];ReturnValue;value;dfc-generated | | System.Collections.Generic;Dictionary+KeyCollection;get_SyncRoot;();Argument[this].SyntheticField[System.Collections.Generic.Dictionary`2+KeyCollection._dictionary];ReturnValue;value;dfc-generated | -| System.Collections.Generic;Dictionary+KeyCollection;get_SyncRoot;();Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Generic;Dictionary+ValueCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | | System.Collections.Generic;Dictionary+ValueCollection;Add;(TValue);Argument[0];Argument[this].Element;value;manual | | System.Collections.Generic;Dictionary+ValueCollection;Clear;();Argument[this].WithoutElement;Argument[this];value;manual | | System.Collections.Generic;Dictionary+ValueCollection;CopyTo;(System.Array,System.Int32);Argument[this].Element;Argument[0].Element;value;manual | | System.Collections.Generic;Dictionary+ValueCollection;CopyTo;(TValue[],System.Int32);Argument[this].Element;Argument[0].Element;value;manual | | System.Collections.Generic;Dictionary+ValueCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator.Current];value;manual | -| System.Collections.Generic;Dictionary+ValueCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | -| System.Collections.Generic;Dictionary+ValueCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Collections.Generic;Dictionary+ValueCollection;ValueCollection;(System.Collections.Generic.Dictionary);Argument[0];Argument[this].SyntheticField[System.Collections.Generic.Dictionary`2+ValueCollection._dictionary];value;dfc-generated | | System.Collections.Generic;Dictionary+ValueCollection;get_SyncRoot;();Argument[this].SyntheticField[System.Collections.Generic.Dictionary`2+ValueCollection._dictionary].Property[System.Collections.ICollection.SyncRoot];ReturnValue;value;dfc-generated | | System.Collections.Generic;Dictionary+ValueCollection;get_SyncRoot;();Argument[this].SyntheticField[System.Collections.Generic.Dictionary`2+ValueCollection._dictionary];ReturnValue;value;dfc-generated | -| System.Collections.Generic;Dictionary+ValueCollection;get_SyncRoot;();Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Generic;Dictionary;Add;(System.Collections.Generic.KeyValuePair);Argument[0].Property[System.Collections.Generic.KeyValuePair`2.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | | System.Collections.Generic;Dictionary;Add;(System.Collections.Generic.KeyValuePair);Argument[0].Property[System.Collections.Generic.KeyValuePair`2.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;manual | -| System.Collections.Generic;Dictionary;Add;(System.Collections.Generic.KeyValuePair);Argument[0];Argument[this].Element;value;manual | | System.Collections.Generic;Dictionary;Add;(System.Object,System.Object);Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | | System.Collections.Generic;Dictionary;Add;(System.Object,System.Object);Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;manual | | System.Collections.Generic;Dictionary;Add;(TKey,TValue);Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | @@ -7055,8 +6415,6 @@ summary | System.Collections.Generic;Dictionary;Dictionary;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEqualityComparer);Argument[0].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;manual | | System.Collections.Generic;Dictionary;Dictionary;(System.Int32,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[this].SyntheticField[System.Collections.Generic.Dictionary`2._comparer];value;dfc-generated | | System.Collections.Generic;Dictionary;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.Dictionary`2+Enumerator.Current];value;manual | -| System.Collections.Generic;Dictionary;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | -| System.Collections.Generic;Dictionary;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Collections.Generic;Dictionary;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | | System.Collections.Generic;Dictionary;Remove;(System.Object);Argument[0];Argument[this];taint;df-generated | | System.Collections.Generic;Dictionary;get_Comparer;();Argument[this].SyntheticField[System.Collections.Generic.Dictionary`2._comparer];ReturnValue;value;dfc-generated | @@ -7077,8 +6435,6 @@ summary | System.Collections.Generic;HashSet;Clear;();Argument[this].WithoutElement;Argument[this];value;manual | | System.Collections.Generic;HashSet;CopyTo;(T[],System.Int32);Argument[this].Element;Argument[0].Element;value;manual | | System.Collections.Generic;HashSet;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.HashSet`1+Enumerator.Current];value;manual | -| System.Collections.Generic;HashSet;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | -| System.Collections.Generic;HashSet;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Collections.Generic;HashSet;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | | System.Collections.Generic;HashSet;HashSet;(System.Collections.Generic.IEqualityComparer);Argument[0];Argument[this].SyntheticField[System.Collections.Generic.HashSet`1._comparer];value;dfc-generated | | System.Collections.Generic;HashSet;RemoveWhere;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | @@ -7108,10 +6464,8 @@ summary | System.Collections.Generic;KeyValuePair;get_Key;();Argument[this];ReturnValue;taint;df-generated | | System.Collections.Generic;KeyValuePair;get_Value;();Argument[this];ReturnValue;taint;df-generated | | System.Collections.Generic;LinkedList+Enumerator;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | -| System.Collections.Generic;LinkedList+Enumerator;get_Current;();Argument[this].Property[System.Collections.Generic.LinkedList`1+Enumerator.Current];ReturnValue;value;df-generated | | System.Collections.Generic;LinkedList+Enumerator;get_Current;();Argument[this].Property[System.Collections.Generic.LinkedList`1+Enumerator.Current];ReturnValue;value;dfc-generated | | System.Collections.Generic;LinkedList+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Collections.Generic;LinkedList+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Collections.Generic;LinkedList;Add;(T);Argument[0];Argument[this].Element;value;manual | | System.Collections.Generic;LinkedList;AddAfter;(System.Collections.Generic.LinkedListNode,System.Collections.Generic.LinkedListNode);Argument[0].SyntheticField[System.Collections.Generic.LinkedListNode`1.next].SyntheticField[System.Collections.Generic.LinkedListNode`1.prev];Argument[1].SyntheticField[System.Collections.Generic.LinkedListNode`1.prev];value;dfc-generated | | System.Collections.Generic;LinkedList;AddAfter;(System.Collections.Generic.LinkedListNode,System.Collections.Generic.LinkedListNode);Argument[0].SyntheticField[System.Collections.Generic.LinkedListNode`1.next];Argument[1].SyntheticField[System.Collections.Generic.LinkedListNode`1.next];value;dfc-generated | @@ -7140,9 +6494,7 @@ summary | System.Collections.Generic;LinkedList;CopyTo;(T[],System.Int32);Argument[this].Element;Argument[0].Element;value;manual | | System.Collections.Generic;LinkedList;Find;(T);Argument[this].Element;ReturnValue;value;manual | | System.Collections.Generic;LinkedList;FindLast;(T);Argument[this].Element;ReturnValue;value;manual | -| System.Collections.Generic;LinkedList;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | | System.Collections.Generic;LinkedList;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.LinkedList`1+Enumerator.Current];value;manual | -| System.Collections.Generic;LinkedList;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Collections.Generic;LinkedList;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | | System.Collections.Generic;LinkedList;LinkedList;(System.Collections.Generic.IEnumerable);Argument[0].Element;Argument[this];taint;df-generated | | System.Collections.Generic;LinkedList;LinkedList;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[0];Argument[this];taint;df-generated | @@ -7162,97 +6514,56 @@ summary | System.Collections.Generic;List;AsReadOnly;();Argument[this].Element;ReturnValue.Element;value;manual | | System.Collections.Generic;List;Clear;();Argument[this].WithoutElement;Argument[this];value;manual | | System.Collections.Generic;List;Contains;(System.Object);Argument[0];Argument[this];taint;df-generated | -| System.Collections.Generic;List;ConvertAll;(System.Converter);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Collections.Generic;List;ConvertAll;(System.Converter);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Generic;List;ConvertAll;(System.Converter);Argument[this].SyntheticField[System.Collections.Generic.List`1._items].Element;Argument[0].Parameter[0];value;dfc-generated | -| System.Collections.Generic;List;ConvertAll;(System.Converter);Argument[this].SyntheticField[System.Collections.Generic.List`1._items].Element;Argument[0].Parameter[0];value;hq-generated | | System.Collections.Generic;List;CopyTo;(System.Array,System.Int32);Argument[this].Element;Argument[0].Element;value;manual | | System.Collections.Generic;List;CopyTo;(T[]);Argument[this].Element;Argument[0].Element;value;dfc-generated | | System.Collections.Generic;List;CopyTo;(T[],System.Int32);Argument[this].Element;Argument[0].Element;value;manual | -| System.Collections.Generic;List;Exists;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Collections.Generic;List;Exists;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Generic;List;Exists;(System.Predicate);Argument[this].SyntheticField[System.Collections.Generic.List`1._items].Element;Argument[0].Parameter[0];value;dfc-generated | -| System.Collections.Generic;List;Exists;(System.Predicate);Argument[this].SyntheticField[System.Collections.Generic.List`1._items].Element;Argument[0].Parameter[0];value;hq-generated | -| System.Collections.Generic;List;Find;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Collections.Generic;List;Find;(System.Predicate);Argument[this].Element;Argument[0].Parameter[0];value;manual | | System.Collections.Generic;List;Find;(System.Predicate);Argument[this].Element;ReturnValue;value;manual | -| System.Collections.Generic;List;FindAll;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Collections.Generic;List;FindAll;(System.Predicate);Argument[this].Element;Argument[0].Parameter[0];value;manual | | System.Collections.Generic;List;FindAll;(System.Predicate);Argument[this].Element;ReturnValue;value;manual | -| System.Collections.Generic;List;FindIndex;(System.Int32,System.Int32,System.Predicate);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Collections.Generic;List;FindIndex;(System.Int32,System.Int32,System.Predicate);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Collections.Generic;List;FindIndex;(System.Int32,System.Int32,System.Predicate);Argument[this].SyntheticField[System.Collections.Generic.List`1._items].Element;Argument[2].Parameter[0];value;dfc-generated | -| System.Collections.Generic;List;FindIndex;(System.Int32,System.Int32,System.Predicate);Argument[this].SyntheticField[System.Collections.Generic.List`1._items].Element;Argument[2].Parameter[0];value;hq-generated | -| System.Collections.Generic;List;FindIndex;(System.Int32,System.Predicate);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Collections.Generic;List;FindIndex;(System.Int32,System.Predicate);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Generic;List;FindIndex;(System.Int32,System.Predicate);Argument[this].SyntheticField[System.Collections.Generic.List`1._items].Element;Argument[1].Parameter[0];value;dfc-generated | -| System.Collections.Generic;List;FindIndex;(System.Int32,System.Predicate);Argument[this].SyntheticField[System.Collections.Generic.List`1._items].Element;Argument[1].Parameter[0];value;hq-generated | -| System.Collections.Generic;List;FindIndex;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Collections.Generic;List;FindIndex;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Generic;List;FindIndex;(System.Predicate);Argument[this].SyntheticField[System.Collections.Generic.List`1._items].Element;Argument[0].Parameter[0];value;dfc-generated | -| System.Collections.Generic;List;FindIndex;(System.Predicate);Argument[this].SyntheticField[System.Collections.Generic.List`1._items].Element;Argument[0].Parameter[0];value;hq-generated | -| System.Collections.Generic;List;FindLast;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Collections.Generic;List;FindLast;(System.Predicate);Argument[this].Element;Argument[0].Parameter[0];value;manual | | System.Collections.Generic;List;FindLast;(System.Predicate);Argument[this].Element;ReturnValue;value;manual | -| System.Collections.Generic;List;FindLastIndex;(System.Int32,System.Int32,System.Predicate);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Collections.Generic;List;FindLastIndex;(System.Int32,System.Int32,System.Predicate);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Collections.Generic;List;FindLastIndex;(System.Int32,System.Int32,System.Predicate);Argument[this].SyntheticField[System.Collections.Generic.List`1._items].Element;Argument[2].Parameter[0];value;dfc-generated | -| System.Collections.Generic;List;FindLastIndex;(System.Int32,System.Int32,System.Predicate);Argument[this].SyntheticField[System.Collections.Generic.List`1._items].Element;Argument[2].Parameter[0];value;hq-generated | -| System.Collections.Generic;List;FindLastIndex;(System.Int32,System.Predicate);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Collections.Generic;List;FindLastIndex;(System.Int32,System.Predicate);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Generic;List;FindLastIndex;(System.Int32,System.Predicate);Argument[this].SyntheticField[System.Collections.Generic.List`1._items].Element;Argument[1].Parameter[0];value;dfc-generated | -| System.Collections.Generic;List;FindLastIndex;(System.Int32,System.Predicate);Argument[this].SyntheticField[System.Collections.Generic.List`1._items].Element;Argument[1].Parameter[0];value;hq-generated | -| System.Collections.Generic;List;FindLastIndex;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Collections.Generic;List;FindLastIndex;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Generic;List;FindLastIndex;(System.Predicate);Argument[this].SyntheticField[System.Collections.Generic.List`1._items].Element;Argument[0].Parameter[0];value;dfc-generated | -| System.Collections.Generic;List;FindLastIndex;(System.Predicate);Argument[this].SyntheticField[System.Collections.Generic.List`1._items].Element;Argument[0].Parameter[0];value;hq-generated | -| System.Collections.Generic;List;ForEach;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Collections.Generic;List;ForEach;(System.Action);Argument[this].Element;Argument[0].Parameter[0];value;manual | -| System.Collections.Generic;List;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | | System.Collections.Generic;List;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.List`1+Enumerator.Current];value;manual | -| System.Collections.Generic;List;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Collections.Generic;List;GetRange;(System.Int32,System.Int32);Argument[this].Element;ReturnValue.Element;value;manual | | System.Collections.Generic;List;Insert;(System.Int32,System.Object);Argument[1];Argument[this].Element;value;manual | | System.Collections.Generic;List;Insert;(System.Int32,T);Argument[1];Argument[this].Element;value;manual | | System.Collections.Generic;List;InsertRange;(System.Int32,System.Collections.Generic.IEnumerable);Argument[1].Element;Argument[this].Element;value;manual | | System.Collections.Generic;List;List;(System.Collections.Generic.IEnumerable);Argument[0].Element;Argument[this].SyntheticField[System.Collections.Generic.List`1._items].Element;value;dfc-generated | | System.Collections.Generic;List;Remove;(System.Object);Argument[0];Argument[this];taint;df-generated | -| System.Collections.Generic;List;RemoveAll;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Collections.Generic;List;RemoveAll;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Generic;List;RemoveAll;(System.Predicate);Argument[this].SyntheticField[System.Collections.Generic.List`1._items].Element;Argument[0].Parameter[0];value;dfc-generated | -| System.Collections.Generic;List;RemoveAll;(System.Predicate);Argument[this].SyntheticField[System.Collections.Generic.List`1._items].Element;Argument[0].Parameter[0];value;hq-generated | | System.Collections.Generic;List;Slice;(System.Int32,System.Int32);Argument[this].Element;ReturnValue.Element;value;dfc-generated | -| System.Collections.Generic;List;Sort;(System.Comparison);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Collections.Generic;List;Sort;(System.Comparison);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Generic;List;Sort;(System.Comparison);Argument[this].SyntheticField[System.Collections.Generic.List`1._items].Element;Argument[0].Parameter[0];value;dfc-generated | -| System.Collections.Generic;List;Sort;(System.Comparison);Argument[this].SyntheticField[System.Collections.Generic.List`1._items].Element;Argument[0].Parameter[0];value;hq-generated | | System.Collections.Generic;List;Sort;(System.Comparison);Argument[this].SyntheticField[System.Collections.Generic.List`1._items].Element;Argument[0].Parameter[1];value;dfc-generated | -| System.Collections.Generic;List;Sort;(System.Comparison);Argument[this].SyntheticField[System.Collections.Generic.List`1._items].Element;Argument[0].Parameter[1];value;hq-generated | -| System.Collections.Generic;List;TrueForAll;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Collections.Generic;List;TrueForAll;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Generic;List;TrueForAll;(System.Predicate);Argument[this].SyntheticField[System.Collections.Generic.List`1._items].Element;Argument[0].Parameter[0];value;dfc-generated | -| System.Collections.Generic;List;TrueForAll;(System.Predicate);Argument[this].SyntheticField[System.Collections.Generic.List`1._items].Element;Argument[0].Parameter[0];value;hq-generated | | System.Collections.Generic;List;get_Item;(System.Int32);Argument[this].Element;ReturnValue;value;manual | | System.Collections.Generic;List;get_SyncRoot;();Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Generic;List;set_Item;(System.Int32,System.Object);Argument[1];Argument[this].Element;value;manual | | System.Collections.Generic;List;set_Item;(System.Int32,T);Argument[1];Argument[this].Element;value;manual | -| System.Collections.Generic;OrderedDictionary+Enumerator;get_Current;();Argument[this].Property[System.Collections.Generic.OrderedDictionary`2+Enumerator.Current];ReturnValue;value;df-generated | | System.Collections.Generic;OrderedDictionary+Enumerator;get_Current;();Argument[this].Property[System.Collections.Generic.OrderedDictionary`2+Enumerator.Current];ReturnValue;value;dfc-generated | -| System.Collections.Generic;OrderedDictionary+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Collections.Generic;OrderedDictionary+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Collections.Generic;OrderedDictionary+Enumerator;get_Entry;();Argument[this];ReturnValue;taint;df-generated | -| System.Collections.Generic;OrderedDictionary+Enumerator;get_Key;();Argument[this].Property[System.Collections.Generic.OrderedDictionary`2+Enumerator.Current].Property[System.Collections.Generic.KeyValuePair`2.Key];ReturnValue;value;df-generated | | System.Collections.Generic;OrderedDictionary+Enumerator;get_Key;();Argument[this].Property[System.Collections.Generic.OrderedDictionary`2+Enumerator.Current].Property[System.Collections.Generic.KeyValuePair`2.Key];ReturnValue;value;dfc-generated | -| System.Collections.Generic;OrderedDictionary+Enumerator;get_Key;();Argument[this];ReturnValue;taint;df-generated | -| System.Collections.Generic;OrderedDictionary+Enumerator;get_Key;();Argument[this];ReturnValue;taint;dfc-generated | -| System.Collections.Generic;OrderedDictionary+Enumerator;get_Value;();Argument[this].Property[System.Collections.Generic.OrderedDictionary`2+Enumerator.Current].Property[System.Collections.Generic.KeyValuePair`2.Value];ReturnValue;value;df-generated | | System.Collections.Generic;OrderedDictionary+Enumerator;get_Value;();Argument[this].Property[System.Collections.Generic.OrderedDictionary`2+Enumerator.Current].Property[System.Collections.Generic.KeyValuePair`2.Value];ReturnValue;value;dfc-generated | -| System.Collections.Generic;OrderedDictionary+Enumerator;get_Value;();Argument[this];ReturnValue;taint;df-generated | -| System.Collections.Generic;OrderedDictionary+Enumerator;get_Value;();Argument[this];ReturnValue;taint;dfc-generated | -| System.Collections.Generic;OrderedDictionary+KeyCollection+Enumerator;get_Current;();Argument[this].Property[System.Collections.Generic.OrderedDictionary`2+KeyCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Collections.Generic;OrderedDictionary+KeyCollection+Enumerator;get_Current;();Argument[this].Property[System.Collections.Generic.OrderedDictionary`2+KeyCollection+Enumerator.Current];ReturnValue;value;dfc-generated | -| System.Collections.Generic;OrderedDictionary+KeyCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Collections.Generic;OrderedDictionary+KeyCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Collections.Generic;OrderedDictionary+KeyCollection;Add;(System.Object);Argument[0];Argument[this].Element;value;manual | | System.Collections.Generic;OrderedDictionary+KeyCollection;Add;(TKey);Argument[0];Argument[this].Element;value;manual | | System.Collections.Generic;OrderedDictionary+KeyCollection;Clear;();Argument[this].WithoutElement;Argument[this];value;manual | @@ -7269,10 +6580,7 @@ summary | System.Collections.Generic;OrderedDictionary+KeyCollection;get_SyncRoot;();Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Generic;OrderedDictionary+KeyCollection;set_Item;(System.Int32,System.Object);Argument[1];Argument[this].Element;value;manual | | System.Collections.Generic;OrderedDictionary+KeyCollection;set_Item;(System.Int32,TKey);Argument[1];Argument[this].Element;value;manual | -| System.Collections.Generic;OrderedDictionary+ValueCollection+Enumerator;get_Current;();Argument[this].Property[System.Collections.Generic.OrderedDictionary`2+ValueCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Collections.Generic;OrderedDictionary+ValueCollection+Enumerator;get_Current;();Argument[this].Property[System.Collections.Generic.OrderedDictionary`2+ValueCollection+Enumerator.Current];ReturnValue;value;dfc-generated | -| System.Collections.Generic;OrderedDictionary+ValueCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Collections.Generic;OrderedDictionary+ValueCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Collections.Generic;OrderedDictionary+ValueCollection;Add;(System.Object);Argument[0];Argument[this].Element;value;manual | | System.Collections.Generic;OrderedDictionary+ValueCollection;Add;(TValue);Argument[0];Argument[this].Element;value;manual | | System.Collections.Generic;OrderedDictionary+ValueCollection;Clear;();Argument[this].WithoutElement;Argument[this];value;manual | @@ -7352,68 +6660,43 @@ summary | System.Collections.Generic;PriorityQueue;TryPeek;(TElement,TPriority);Argument[this];Argument[0];taint;df-generated | | System.Collections.Generic;PriorityQueue;TryPeek;(TElement,TPriority);Argument[this];Argument[1];taint;df-generated | | System.Collections.Generic;PriorityQueue;get_Comparer;();Argument[this].SyntheticField[System.Collections.Generic.PriorityQueue`2._comparer];ReturnValue;value;dfc-generated | -| System.Collections.Generic;Queue+Enumerator;get_Current;();Argument[this].Property[System.Collections.Generic.Queue`1+Enumerator.Current];ReturnValue;value;df-generated | | System.Collections.Generic;Queue+Enumerator;get_Current;();Argument[this].Property[System.Collections.Generic.Queue`1+Enumerator.Current];ReturnValue;value;dfc-generated | | System.Collections.Generic;Queue+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Collections.Generic;Queue+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Collections.Generic;Queue;Clear;();Argument[this].WithoutElement;Argument[this];value;manual | | System.Collections.Generic;Queue;CopyTo;(System.Array,System.Int32);Argument[this].Element;Argument[0].Element;value;manual | | System.Collections.Generic;Queue;CopyTo;(T[],System.Int32);Argument[this].Element;Argument[0].Element;value;manual | | System.Collections.Generic;Queue;Dequeue;();Argument[this].SyntheticField[System.Collections.Generic.Queue`1._array].Element;ReturnValue;value;dfc-generated | | System.Collections.Generic;Queue;Enqueue;(T);Argument[0];Argument[this].SyntheticField[System.Collections.Generic.Queue`1._array].Element;value;dfc-generated | -| System.Collections.Generic;Queue;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | | System.Collections.Generic;Queue;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.Queue`1+Enumerator.Current];value;manual | -| System.Collections.Generic;Queue;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Collections.Generic;Queue;Peek;();Argument[this].Element;ReturnValue;value;manual | | System.Collections.Generic;Queue;Queue;(System.Collections.Generic.IEnumerable);Argument[0].Element;Argument[this].SyntheticField[System.Collections.Generic.Queue`1._array].Element;value;dfc-generated | | System.Collections.Generic;Queue;TryDequeue;(T);Argument[this].SyntheticField[System.Collections.Generic.Queue`1._array].Element;Argument[0];value;dfc-generated | | System.Collections.Generic;Queue;TryPeek;(T);Argument[this].SyntheticField[System.Collections.Generic.Queue`1._array].Element;Argument[0];value;dfc-generated | | System.Collections.Generic;Queue;get_SyncRoot;();Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Generic;ReferenceEqualityComparer;GetHashCode;(System.Object);Argument[0];Argument[this];taint;df-generated | -| System.Collections.Generic;SortedDictionary+Enumerator;get_Current;();Argument[this].Property[System.Collections.Generic.SortedDictionary`2+Enumerator.Current];ReturnValue;value;df-generated | | System.Collections.Generic;SortedDictionary+Enumerator;get_Current;();Argument[this].Property[System.Collections.Generic.SortedDictionary`2+Enumerator.Current];ReturnValue;value;dfc-generated | | System.Collections.Generic;SortedDictionary+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Collections.Generic;SortedDictionary+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Collections.Generic;SortedDictionary+Enumerator;get_Entry;();Argument[this];ReturnValue;taint;df-generated | -| System.Collections.Generic;SortedDictionary+Enumerator;get_Key;();Argument[this].Property[System.Collections.Generic.SortedDictionary`2+Enumerator.Current].Property[System.Collections.Generic.KeyValuePair`2.Key];ReturnValue;value;df-generated | | System.Collections.Generic;SortedDictionary+Enumerator;get_Key;();Argument[this].Property[System.Collections.Generic.SortedDictionary`2+Enumerator.Current].Property[System.Collections.Generic.KeyValuePair`2.Key];ReturnValue;value;dfc-generated | -| System.Collections.Generic;SortedDictionary+Enumerator;get_Key;();Argument[this];ReturnValue;taint;df-generated | -| System.Collections.Generic;SortedDictionary+Enumerator;get_Key;();Argument[this];ReturnValue;taint;dfc-generated | -| System.Collections.Generic;SortedDictionary+Enumerator;get_Value;();Argument[this].Property[System.Collections.Generic.SortedDictionary`2+Enumerator.Current].Property[System.Collections.Generic.KeyValuePair`2.Value];ReturnValue;value;df-generated | | System.Collections.Generic;SortedDictionary+Enumerator;get_Value;();Argument[this].Property[System.Collections.Generic.SortedDictionary`2+Enumerator.Current].Property[System.Collections.Generic.KeyValuePair`2.Value];ReturnValue;value;dfc-generated | -| System.Collections.Generic;SortedDictionary+Enumerator;get_Value;();Argument[this];ReturnValue;taint;df-generated | -| System.Collections.Generic;SortedDictionary+Enumerator;get_Value;();Argument[this];ReturnValue;taint;dfc-generated | -| System.Collections.Generic;SortedDictionary+KeyCollection+Enumerator;get_Current;();Argument[this].Property[System.Collections.Generic.SortedDictionary`2+KeyCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Collections.Generic;SortedDictionary+KeyCollection+Enumerator;get_Current;();Argument[this].Property[System.Collections.Generic.SortedDictionary`2+KeyCollection+Enumerator.Current];ReturnValue;value;dfc-generated | -| System.Collections.Generic;SortedDictionary+KeyCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Collections.Generic;SortedDictionary+KeyCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Collections.Generic;SortedDictionary+KeyCollection;Add;(TKey);Argument[0];Argument[this].Element;value;manual | | System.Collections.Generic;SortedDictionary+KeyCollection;Clear;();Argument[this].WithoutElement;Argument[this];value;manual | | System.Collections.Generic;SortedDictionary+KeyCollection;CopyTo;(System.Array,System.Int32);Argument[this].Element;Argument[0].Element;value;manual | | System.Collections.Generic;SortedDictionary+KeyCollection;CopyTo;(TKey[],System.Int32);Argument[this].Element;Argument[0].Element;value;manual | -| System.Collections.Generic;SortedDictionary+KeyCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | | System.Collections.Generic;SortedDictionary+KeyCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.SortedDictionary`2+KeyCollection+Enumerator.Current];value;manual | -| System.Collections.Generic;SortedDictionary+KeyCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Collections.Generic;SortedDictionary+KeyCollection;KeyCollection;(System.Collections.Generic.SortedDictionary);Argument[0];Argument[this].SyntheticField[System.Collections.Generic.SortedDictionary`2+KeyCollection._dictionary];value;dfc-generated | | System.Collections.Generic;SortedDictionary+KeyCollection;get_SyncRoot;();Argument[this].SyntheticField[System.Collections.Generic.SortedDictionary`2+KeyCollection._dictionary].Property[System.Collections.ICollection.SyncRoot];ReturnValue;value;dfc-generated | -| System.Collections.Generic;SortedDictionary+KeyCollection;get_SyncRoot;();Argument[this];ReturnValue;value;dfc-generated | -| System.Collections.Generic;SortedDictionary+ValueCollection+Enumerator;get_Current;();Argument[this].Property[System.Collections.Generic.SortedDictionary`2+ValueCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Collections.Generic;SortedDictionary+ValueCollection+Enumerator;get_Current;();Argument[this].Property[System.Collections.Generic.SortedDictionary`2+ValueCollection+Enumerator.Current];ReturnValue;value;dfc-generated | -| System.Collections.Generic;SortedDictionary+ValueCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Collections.Generic;SortedDictionary+ValueCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Collections.Generic;SortedDictionary+ValueCollection;Add;(TValue);Argument[0];Argument[this].Element;value;manual | | System.Collections.Generic;SortedDictionary+ValueCollection;Clear;();Argument[this].WithoutElement;Argument[this];value;manual | | System.Collections.Generic;SortedDictionary+ValueCollection;CopyTo;(System.Array,System.Int32);Argument[this].Element;Argument[0].Element;value;manual | | System.Collections.Generic;SortedDictionary+ValueCollection;CopyTo;(TValue[],System.Int32);Argument[this].Element;Argument[0].Element;value;manual | -| System.Collections.Generic;SortedDictionary+ValueCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | | System.Collections.Generic;SortedDictionary+ValueCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.SortedDictionary`2+ValueCollection+Enumerator.Current];value;manual | -| System.Collections.Generic;SortedDictionary+ValueCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Collections.Generic;SortedDictionary+ValueCollection;ValueCollection;(System.Collections.Generic.SortedDictionary);Argument[0];Argument[this].SyntheticField[System.Collections.Generic.SortedDictionary`2+ValueCollection._dictionary];value;dfc-generated | | System.Collections.Generic;SortedDictionary+ValueCollection;get_SyncRoot;();Argument[this].SyntheticField[System.Collections.Generic.SortedDictionary`2+ValueCollection._dictionary].Property[System.Collections.ICollection.SyncRoot];ReturnValue;value;dfc-generated | -| System.Collections.Generic;SortedDictionary+ValueCollection;get_SyncRoot;();Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Generic;SortedDictionary;Add;(System.Collections.Generic.KeyValuePair);Argument[0].Property[System.Collections.Generic.KeyValuePair`2.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | | System.Collections.Generic;SortedDictionary;Add;(System.Collections.Generic.KeyValuePair);Argument[0].Property[System.Collections.Generic.KeyValuePair`2.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;manual | -| System.Collections.Generic;SortedDictionary;Add;(System.Collections.Generic.KeyValuePair);Argument[0];Argument[this].Element;value;manual | | System.Collections.Generic;SortedDictionary;Add;(System.Object,System.Object);Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | | System.Collections.Generic;SortedDictionary;Add;(System.Object,System.Object);Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;manual | | System.Collections.Generic;SortedDictionary;Add;(TKey,TValue);Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | @@ -7422,9 +6705,7 @@ summary | System.Collections.Generic;SortedDictionary;Contains;(System.Object);Argument[0];Argument[this];taint;df-generated | | System.Collections.Generic;SortedDictionary;CopyTo;(System.Array,System.Int32);Argument[this].Element;Argument[0].Element;value;manual | | System.Collections.Generic;SortedDictionary;CopyTo;(System.Collections.Generic.KeyValuePair[],System.Int32);Argument[this].Element;Argument[0].Element;value;manual | -| System.Collections.Generic;SortedDictionary;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | | System.Collections.Generic;SortedDictionary;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.SortedDictionary`2+Enumerator.Current];value;manual | -| System.Collections.Generic;SortedDictionary;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Collections.Generic;SortedDictionary;Remove;(System.Object);Argument[0];Argument[this];taint;df-generated | | System.Collections.Generic;SortedDictionary;SortedDictionary;(System.Collections.Generic.IDictionary);Argument[0].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | | System.Collections.Generic;SortedDictionary;SortedDictionary;(System.Collections.Generic.IDictionary);Argument[0].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;manual | @@ -7441,7 +6722,6 @@ summary | System.Collections.Generic;SortedDictionary;set_Item;(TKey,TValue);Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;manual | | System.Collections.Generic;SortedList;Add;(System.Collections.Generic.KeyValuePair);Argument[0].Property[System.Collections.Generic.KeyValuePair`2.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | | System.Collections.Generic;SortedList;Add;(System.Collections.Generic.KeyValuePair);Argument[0].Property[System.Collections.Generic.KeyValuePair`2.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;manual | -| System.Collections.Generic;SortedList;Add;(System.Collections.Generic.KeyValuePair);Argument[0];Argument[this].Element;value;manual | | System.Collections.Generic;SortedList;Add;(System.Object,System.Object);Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | | System.Collections.Generic;SortedList;Add;(System.Object,System.Object);Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;manual | | System.Collections.Generic;SortedList;Add;(TKey,TValue);Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | @@ -7451,7 +6731,6 @@ summary | System.Collections.Generic;SortedList;CopyTo;(System.Array,System.Int32);Argument[this].Element;Argument[0].Element;value;manual | | System.Collections.Generic;SortedList;CopyTo;(System.Collections.Generic.KeyValuePair[],System.Int32);Argument[this].Element;Argument[0].Element;value;manual | | System.Collections.Generic;SortedList;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | -| System.Collections.Generic;SortedList;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Collections.Generic;SortedList;GetKeyAtIndex;(System.Int32);Argument[this];ReturnValue;taint;df-generated | | System.Collections.Generic;SortedList;GetValueAtIndex;(System.Int32);Argument[this].SyntheticField[System.Collections.Generic.SortedList`2.values].Element;ReturnValue;value;dfc-generated | | System.Collections.Generic;SortedList;Remove;(System.Object);Argument[0];Argument[this];taint;df-generated | @@ -7481,11 +6760,8 @@ summary | System.Collections.Generic;SortedSet;CopyTo;(T[],System.Int32);Argument[this].Element;Argument[0].Element;value;manual | | System.Collections.Generic;SortedSet;CopyTo;(T[],System.Int32,System.Int32);Argument[this].SyntheticField[System.Collections.Generic.SortedSet`1.root].SyntheticField[System.Collections.Generic.SortedSet`1+Node.Item];Argument[0].Element;value;dfc-generated | | System.Collections.Generic;SortedSet;ExceptWith;(System.Collections.Generic.IEnumerable);Argument[0].Element;Argument[this];taint;df-generated | -| System.Collections.Generic;SortedSet;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | | System.Collections.Generic;SortedSet;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.SortedSet`1+Enumerator.Current];value;manual | -| System.Collections.Generic;SortedSet;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Collections.Generic;SortedSet;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this].SyntheticField[System.Collections.Generic.SortedSet`1.comparer];Argument[0];taint;dfc-generated | -| System.Collections.Generic;SortedSet;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | | System.Collections.Generic;SortedSet;GetViewBetween;(T,T);Argument[0];Argument[this];taint;df-generated | | System.Collections.Generic;SortedSet;GetViewBetween;(T,T);Argument[0];ReturnValue;taint;df-generated | | System.Collections.Generic;SortedSet;GetViewBetween;(T,T);Argument[1];Argument[this];taint;df-generated | @@ -7517,16 +6793,12 @@ summary | System.Collections.Generic;SortedSet;get_Max;();Argument[this].SyntheticField[System.Collections.Generic.SortedSet`1.root].SyntheticField[System.Collections.Generic.SortedSet`1+Node.Item];ReturnValue;value;dfc-generated | | System.Collections.Generic;SortedSet;get_Min;();Argument[this].SyntheticField[System.Collections.Generic.SortedSet`1.root].SyntheticField[System.Collections.Generic.SortedSet`1+Node.Item];ReturnValue;value;dfc-generated | | System.Collections.Generic;SortedSet;get_SyncRoot;();Argument[this];ReturnValue;value;dfc-generated | -| System.Collections.Generic;Stack+Enumerator;get_Current;();Argument[this].Property[System.Collections.Generic.Stack`1+Enumerator.Current];ReturnValue;value;df-generated | | System.Collections.Generic;Stack+Enumerator;get_Current;();Argument[this].Property[System.Collections.Generic.Stack`1+Enumerator.Current];ReturnValue;value;dfc-generated | | System.Collections.Generic;Stack+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Collections.Generic;Stack+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Collections.Generic;Stack;Clear;();Argument[this].WithoutElement;Argument[this];value;manual | | System.Collections.Generic;Stack;CopyTo;(System.Array,System.Int32);Argument[this].Element;Argument[0].Element;value;manual | | System.Collections.Generic;Stack;CopyTo;(T[],System.Int32);Argument[this].Element;Argument[0].Element;value;manual | -| System.Collections.Generic;Stack;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | | System.Collections.Generic;Stack;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.Stack`1+Enumerator.Current];value;manual | -| System.Collections.Generic;Stack;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Collections.Generic;Stack;Peek;();Argument[this].Element;ReturnValue;value;manual | | System.Collections.Generic;Stack;Pop;();Argument[this].Element;ReturnValue;value;manual | | System.Collections.Generic;Stack;Push;(T);Argument[0];Argument[this].SyntheticField[System.Collections.Generic.Stack`1._array].Element;value;dfc-generated | @@ -7558,14 +6830,10 @@ summary | System.Collections.Immutable;ImmutableArray;Create;(T,T,T,T);Argument[2];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableArray;Create;(T,T,T,T);Argument[3];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableArray;CreateRange;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableArray;CreateRange;(System.Collections.Immutable.ImmutableArray,System.Func,TArg);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableArray;CreateRange;(System.Collections.Immutable.ImmutableArray,System.Func,TArg);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableArray;CreateRange;(System.Collections.Immutable.ImmutableArray,System.Func,TArg);Argument[2];Argument[1].Parameter[1];value;dfc-generated | -| System.Collections.Immutable;ImmutableArray;CreateRange;(System.Collections.Immutable.ImmutableArray,System.Func,TArg);Argument[2];Argument[1].Parameter[1];value;hq-generated | -| System.Collections.Immutable;ImmutableArray;CreateRange;(System.Collections.Immutable.ImmutableArray,System.Int32,System.Int32,System.Func,TArg);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableArray;CreateRange;(System.Collections.Immutable.ImmutableArray,System.Int32,System.Int32,System.Func,TArg);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableArray;CreateRange;(System.Collections.Immutable.ImmutableArray,System.Int32,System.Int32,System.Func,TArg);Argument[4];Argument[3].Parameter[1];value;dfc-generated | -| System.Collections.Immutable;ImmutableArray;CreateRange;(System.Collections.Immutable.ImmutableArray,System.Int32,System.Int32,System.Func,TArg);Argument[4];Argument[3].Parameter[1];value;hq-generated | | System.Collections.Immutable;ImmutableArray;CreateRange;(System.Collections.Immutable.ImmutableArray,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableArray;CreateRange;(System.Collections.Immutable.ImmutableArray,System.Int32,System.Int32,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableArray;ToImmutableArray;(System.ReadOnlySpan);Argument[0].Element;ReturnValue.Element;value;manual | @@ -7584,7 +6852,6 @@ summary | System.Collections.Immutable;ImmutableArray+Builder;CopyTo;(T[],System.Int32);Argument[this].Element;Argument[0].Element;value;manual | | System.Collections.Immutable;ImmutableArray+Builder;DrainToImmutable;();Argument[this].SyntheticField[System.Collections.Immutable.ImmutableArray`1+Builder._elements];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableArray`1.array];value;dfc-generated | | System.Collections.Immutable;ImmutableArray+Builder;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | -| System.Collections.Immutable;ImmutableArray+Builder;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Collections.Immutable;ImmutableArray+Builder;IndexOf;(T,System.Int32,System.Collections.Generic.IEqualityComparer);Argument[0];Argument[2];taint;df-generated | | System.Collections.Immutable;ImmutableArray+Builder;IndexOf;(T,System.Int32,System.Collections.Generic.IEqualityComparer);Argument[this];Argument[2];taint;df-generated | | System.Collections.Immutable;ImmutableArray+Builder;IndexOf;(T,System.Int32,System.Int32,System.Collections.Generic.IEqualityComparer);Argument[0];Argument[3];taint;df-generated | @@ -7600,10 +6867,8 @@ summary | System.Collections.Immutable;ImmutableArray+Builder;MoveToImmutable;();Argument[this].SyntheticField[System.Collections.Immutable.ImmutableArray`1+Builder._elements];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableArray`1.array];value;dfc-generated | | System.Collections.Immutable;ImmutableArray+Builder;Remove;(T,System.Collections.Generic.IEqualityComparer);Argument[0];Argument[1];taint;df-generated | | System.Collections.Immutable;ImmutableArray+Builder;Remove;(T,System.Collections.Generic.IEqualityComparer);Argument[this];Argument[1];taint;df-generated | -| System.Collections.Immutable;ImmutableArray+Builder;RemoveAll;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableArray+Builder;RemoveAll;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableArray+Builder;RemoveAll;(System.Predicate);Argument[this].SyntheticField[System.Collections.Immutable.ImmutableArray`1+Builder._elements].Element;Argument[0].Parameter[0];value;dfc-generated | -| System.Collections.Immutable;ImmutableArray+Builder;RemoveAll;(System.Predicate);Argument[this].SyntheticField[System.Collections.Immutable.ImmutableArray`1+Builder._elements].Element;Argument[0].Parameter[0];value;hq-generated | | System.Collections.Immutable;ImmutableArray+Builder;RemoveRange;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1];taint;df-generated | | System.Collections.Immutable;ImmutableArray+Builder;RemoveRange;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);Argument[this];Argument[1];taint;df-generated | | System.Collections.Immutable;ImmutableArray+Builder;Replace;(T,T);Argument[1];Argument[this].SyntheticField[System.Collections.Immutable.ImmutableArray`1+Builder._elements].Element;value;dfc-generated | @@ -7652,10 +6917,8 @@ summary | System.Collections.Immutable;ImmutableArray;IndexOf;(T,System.Int32,System.Int32,System.Collections.Generic.IEqualityComparer);Argument[this];Argument[3];taint;df-generated | | System.Collections.Immutable;ImmutableArray;Insert;(System.Int32,System.Object);Argument[1];Argument[this].Element;value;manual | | System.Collections.Immutable;ImmutableArray;Insert;(System.Int32,T);Argument[1];Argument[this].Element;value;manual | -| System.Collections.Immutable;ImmutableArray;Insert;(System.Int32,T);Argument[1];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableArray`1.array].Element;value;df-generated | | System.Collections.Immutable;ImmutableArray;Insert;(System.Int32,T);Argument[1];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableArray`1.array].Element;value;dfc-generated | | System.Collections.Immutable;ImmutableArray;Insert;(System.Int32,T);Argument[1];ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableArray;Insert;(System.Int32,T);Argument[1];ReturnValue;taint;dfc-generated | | System.Collections.Immutable;ImmutableArray;InsertRange;(System.Int32,System.Collections.Generic.IEnumerable);Argument[1].Element;ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableArray`1.array].Element;value;dfc-generated | | System.Collections.Immutable;ImmutableArray;InsertRange;(System.Int32,System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableArray;InsertRange;(System.Int32,System.Collections.Immutable.ImmutableArray);Argument[1];ReturnValue;value;dfc-generated | @@ -7675,12 +6938,9 @@ summary | System.Collections.Immutable;ImmutableArray;Remove;(System.Object);Argument[0];Argument[this];taint;df-generated | | System.Collections.Immutable;ImmutableArray;Remove;(T);Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableArray;Remove;(T,System.Collections.Generic.IEqualityComparer);Argument[this];ReturnValue;value;dfc-generated | -| System.Collections.Immutable;ImmutableArray;RemoveAll;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableArray;RemoveAll;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableArray;RemoveAll;(System.Predicate);Argument[this].SyntheticField[System.Collections.Immutable.ImmutableArray`1.array].Element;Argument[0].Parameter[0];value;dfc-generated | -| System.Collections.Immutable;ImmutableArray;RemoveAll;(System.Predicate);Argument[this].SyntheticField[System.Collections.Immutable.ImmutableArray`1.array].Element;Argument[0].Parameter[0];value;hq-generated | | System.Collections.Immutable;ImmutableArray;RemoveAll;(System.Predicate);Argument[this];ReturnValue;value;dfc-generated | -| System.Collections.Immutable;ImmutableArray;RemoveAll;(System.Predicate);Argument[this];ReturnValue;value;hq-generated | | System.Collections.Immutable;ImmutableArray;RemoveAt;(System.Int32);Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableArray;RemoveRange;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableArray;RemoveRange;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);Argument[this];ReturnValue;value;dfc-generated | @@ -7691,24 +6951,16 @@ summary | System.Collections.Immutable;ImmutableArray;RemoveRange;(T[],System.Collections.Generic.IEqualityComparer);Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableArray;Replace;(T,T);Argument[1];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableArray`1.array].Element;value;dfc-generated | | System.Collections.Immutable;ImmutableArray;Replace;(T,T,System.Collections.Generic.IEqualityComparer);Argument[0];Argument[2];taint;df-generated | -| System.Collections.Immutable;ImmutableArray;Replace;(T,T,System.Collections.Generic.IEqualityComparer);Argument[0];Argument[2];taint;dfc-generated | -| System.Collections.Immutable;ImmutableArray;Replace;(T,T,System.Collections.Generic.IEqualityComparer);Argument[1];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableArray`1.array].Element;value;df-generated | | System.Collections.Immutable;ImmutableArray;Replace;(T,T,System.Collections.Generic.IEqualityComparer);Argument[1];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableArray`1.array].Element;value;dfc-generated | | System.Collections.Immutable;ImmutableArray;Replace;(T,T,System.Collections.Generic.IEqualityComparer);Argument[1];ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableArray;Replace;(T,T,System.Collections.Generic.IEqualityComparer);Argument[1];ReturnValue;taint;dfc-generated | | System.Collections.Immutable;ImmutableArray;Replace;(T,T,System.Collections.Generic.IEqualityComparer);Argument[this];Argument[2];taint;df-generated | -| System.Collections.Immutable;ImmutableArray;Replace;(T,T,System.Collections.Generic.IEqualityComparer);Argument[this];Argument[2];taint;dfc-generated | -| System.Collections.Immutable;ImmutableArray;SetItem;(System.Int32,T);Argument[1];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableArray`1.array].Element;value;df-generated | | System.Collections.Immutable;ImmutableArray;SetItem;(System.Int32,T);Argument[1];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableArray`1.array].Element;value;dfc-generated | | System.Collections.Immutable;ImmutableArray;SetItem;(System.Int32,T);Argument[1];ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableArray;SetItem;(System.Int32,T);Argument[1];ReturnValue;taint;dfc-generated | | System.Collections.Immutable;ImmutableArray;Slice;(System.Int32,System.Int32);Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableArray;Sort;();Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableArray;Sort;(System.Collections.Generic.IComparer);Argument[this];ReturnValue;value;dfc-generated | -| System.Collections.Immutable;ImmutableArray;Sort;(System.Comparison);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableArray;Sort;(System.Comparison);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableArray;Sort;(System.Comparison);Argument[this];ReturnValue;value;dfc-generated | -| System.Collections.Immutable;ImmutableArray;Sort;(System.Comparison);Argument[this];ReturnValue;value;hq-generated | | System.Collections.Immutable;ImmutableArray;Sort;(System.Int32,System.Int32,System.Collections.Generic.IComparer);Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableArray;ToBuilder;();Argument[this].Element;ReturnValue.Element;value;dfc-generated | | System.Collections.Immutable;ImmutableArray;get_Item;(System.Int32);Argument[this].Element;ReturnValue;value;manual | @@ -7733,56 +6985,31 @@ summary | System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEqualityComparer);Argument[0];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer);Argument[0];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | -| System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | | System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;dfc-generated | -| System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;hq-generated | | System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[1].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;dfc-generated | -| System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[1].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;hq-generated | -| System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[2].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;dfc-generated | -| System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[2].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;hq-generated | -| System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | -| System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | | System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;dfc-generated | -| System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;hq-generated | | System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;dfc-generated | -| System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;hq-generated | -| System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;dfc-generated | -| System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;hq-generated | -| System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | -| System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | | System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;dfc-generated | -| System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;hq-generated | | System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer);Argument[1].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;dfc-generated | -| System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer);Argument[1].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;hq-generated | -| System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer);Argument[2].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;dfc-generated | -| System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer);Argument[2].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;hq-generated | -| System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | -| System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | | System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func);Argument[1].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;dfc-generated | -| System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func);Argument[1].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;hq-generated | -| System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | -| System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | | System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;dfc-generated | -| System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;hq-generated | -| System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableDictionary+Builder;Add;(System.Collections.Generic.KeyValuePair);Argument[0].Property[System.Collections.Generic.KeyValuePair`2.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | | System.Collections.Immutable;ImmutableDictionary+Builder;Add;(System.Collections.Generic.KeyValuePair);Argument[0].Property[System.Collections.Generic.KeyValuePair`2.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;manual | -| System.Collections.Immutable;ImmutableDictionary+Builder;Add;(System.Collections.Generic.KeyValuePair);Argument[0];Argument[this].Element;value;manual | | System.Collections.Immutable;ImmutableDictionary+Builder;Add;(System.Object,System.Object);Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | | System.Collections.Immutable;ImmutableDictionary+Builder;Add;(System.Object,System.Object);Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;manual | | System.Collections.Immutable;ImmutableDictionary+Builder;Add;(TKey,TValue);Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | @@ -7793,8 +7020,6 @@ summary | System.Collections.Immutable;ImmutableDictionary+Builder;ContainsValue;(TValue);Argument[this];Argument[0];taint;df-generated | | System.Collections.Immutable;ImmutableDictionary+Builder;CopyTo;(System.Array,System.Int32);Argument[this].Element;Argument[0].Element;value;manual | | System.Collections.Immutable;ImmutableDictionary+Builder;CopyTo;(System.Collections.Generic.KeyValuePair[],System.Int32);Argument[this].Element;Argument[0].Element;value;manual | -| System.Collections.Immutable;ImmutableDictionary+Builder;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | -| System.Collections.Immutable;ImmutableDictionary+Builder;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Collections.Immutable;ImmutableDictionary+Builder;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableDictionary`2+Enumerator.Current];value;manual | | System.Collections.Immutable;ImmutableDictionary+Builder;GetValueOrDefault;(TKey,TValue);Argument[1];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableDictionary+Builder;Remove;(System.Object);Argument[0];Argument[this];taint;df-generated | @@ -7808,13 +7033,10 @@ summary | System.Collections.Immutable;ImmutableDictionary+Builder;set_Item;(System.Object,System.Object);Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;manual | | System.Collections.Immutable;ImmutableDictionary+Builder;set_Item;(TKey,TValue);Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | | System.Collections.Immutable;ImmutableDictionary+Builder;set_Item;(TKey,TValue);Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;manual | -| System.Collections.Immutable;ImmutableDictionary+Enumerator;get_Current;();Argument[this].Property[System.Collections.Immutable.ImmutableDictionary`2+Enumerator.Current];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableDictionary+Enumerator;get_Current;();Argument[this].Property[System.Collections.Immutable.ImmutableDictionary`2+Enumerator.Current];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableDictionary+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableDictionary+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Collections.Immutable;ImmutableDictionary;Add;(System.Collections.Generic.KeyValuePair);Argument[0].Property[System.Collections.Generic.KeyValuePair`2.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | | System.Collections.Immutable;ImmutableDictionary;Add;(System.Collections.Generic.KeyValuePair);Argument[0].Property[System.Collections.Generic.KeyValuePair`2.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;manual | -| System.Collections.Immutable;ImmutableDictionary;Add;(System.Collections.Generic.KeyValuePair);Argument[0];Argument[this].Element;value;manual | | System.Collections.Immutable;ImmutableDictionary;Add;(System.Object,System.Object);Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | | System.Collections.Immutable;ImmutableDictionary;Add;(System.Object,System.Object);Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;manual | | System.Collections.Immutable;ImmutableDictionary;Add;(TKey,TValue);Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | @@ -7827,8 +7049,6 @@ summary | System.Collections.Immutable;ImmutableDictionary;ContainsValue;(TValue);Argument[this];Argument[0];taint;df-generated | | System.Collections.Immutable;ImmutableDictionary;CopyTo;(System.Array,System.Int32);Argument[this].Element;Argument[0].Element;value;manual | | System.Collections.Immutable;ImmutableDictionary;CopyTo;(System.Collections.Generic.KeyValuePair[],System.Int32);Argument[this].Element;Argument[0].Element;value;manual | -| System.Collections.Immutable;ImmutableDictionary;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | -| System.Collections.Immutable;ImmutableDictionary;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Collections.Immutable;ImmutableDictionary;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableDictionary`2+Enumerator.Current];value;manual | | System.Collections.Immutable;ImmutableDictionary;Remove;(System.Object);Argument[0];Argument[this];taint;df-generated | | System.Collections.Immutable;ImmutableDictionary;Remove;(TKey);Argument[this];ReturnValue;value;df-generated | @@ -7838,10 +7058,8 @@ summary | System.Collections.Immutable;ImmutableDictionary;SetItems;(System.Collections.Generic.IEnumerable>);Argument[this];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableDictionary;ToBuilder;();Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableDictionary;TryGetKey;(TKey,TKey);Argument[0];Argument[1];value;dfc-generated | -| System.Collections.Immutable;ImmutableDictionary;WithComparers;(System.Collections.Generic.IEqualityComparer);Argument[0];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableDictionary`2._comparers].SyntheticField[System.Collections.Immutable.ImmutableDictionary`2+Comparers._keyComparer];value;df-generated | | System.Collections.Immutable;ImmutableDictionary;WithComparers;(System.Collections.Generic.IEqualityComparer);Argument[0];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableDictionary`2._comparers].SyntheticField[System.Collections.Immutable.ImmutableDictionary`2+Comparers._keyComparer];value;dfc-generated | | System.Collections.Immutable;ImmutableDictionary;WithComparers;(System.Collections.Generic.IEqualityComparer);Argument[this];ReturnValue;value;df-generated | -| System.Collections.Immutable;ImmutableDictionary;WithComparers;(System.Collections.Generic.IEqualityComparer);Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableDictionary;WithComparers;(System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer);Argument[0];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableDictionary`2._comparers].SyntheticField[System.Collections.Immutable.ImmutableDictionary`2+Comparers._keyComparer];value;dfc-generated | | System.Collections.Immutable;ImmutableDictionary;WithComparers;(System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer);Argument[1];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableDictionary`2._comparers].SyntheticField[System.Collections.Immutable.ImmutableDictionary`2+Comparers._valueComparer];value;dfc-generated | | System.Collections.Immutable;ImmutableDictionary;WithComparers;(System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer);Argument[this];ReturnValue;value;dfc-generated | @@ -7867,79 +7085,49 @@ summary | System.Collections.Immutable;ImmutableHashSet+Builder;Add;(T);Argument[0];Argument[this].Element;value;manual | | System.Collections.Immutable;ImmutableHashSet+Builder;Clear;();Argument[this].WithoutElement;Argument[this];value;manual | | System.Collections.Immutable;ImmutableHashSet+Builder;CopyTo;(T[],System.Int32);Argument[this].Element;Argument[0].Element;value;manual | -| System.Collections.Immutable;ImmutableHashSet+Builder;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | -| System.Collections.Immutable;ImmutableHashSet+Builder;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Collections.Immutable;ImmutableHashSet+Builder;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableHashSet`1+Enumerator.Current];value;manual | | System.Collections.Immutable;ImmutableHashSet+Builder;SymmetricExceptWith;(System.Collections.Generic.IEnumerable);Argument[0].Element;Argument[this];taint;df-generated | | System.Collections.Immutable;ImmutableHashSet+Builder;TryGetValue;(T,T);Argument[0];Argument[1];value;dfc-generated | -| System.Collections.Immutable;ImmutableHashSet+Enumerator;get_Current;();Argument[this].Property[System.Collections.Immutable.ImmutableHashSet`1+Enumerator.Current];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableHashSet+Enumerator;get_Current;();Argument[this].Property[System.Collections.Immutable.ImmutableHashSet`1+Enumerator.Current];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableHashSet+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableHashSet+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Collections.Immutable;ImmutableHashSet;Add;(T);Argument[0];Argument[this].Element;value;manual | -| System.Collections.Immutable;ImmutableHashSet;Clear;();Argument[this].WithoutElement;Argument[this];value;manual | | System.Collections.Immutable;ImmutableHashSet;Clear;();Argument[this].WithoutElement;ReturnValue;value;manual | | System.Collections.Immutable;ImmutableHashSet;CopyTo;(System.Array,System.Int32);Argument[this].Element;Argument[0].Element;value;manual | | System.Collections.Immutable;ImmutableHashSet;CopyTo;(T[],System.Int32);Argument[this].Element;Argument[0].Element;value;manual | | System.Collections.Immutable;ImmutableHashSet;Except;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;value;df-generated | -| System.Collections.Immutable;ImmutableHashSet;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | -| System.Collections.Immutable;ImmutableHashSet;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Collections.Immutable;ImmutableHashSet;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableHashSet`1+Enumerator.Current];value;manual | | System.Collections.Immutable;ImmutableHashSet;Intersect;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableHashSet;Remove;(T);Argument[this];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableHashSet;SymmetricExcept;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableHashSet;ToBuilder;();Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableHashSet;TryGetValue;(T,T);Argument[0];Argument[1];value;dfc-generated | -| System.Collections.Immutable;ImmutableHashSet;Union;(System.Collections.Generic.IEnumerable);Argument[0];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableHashSet;Union;(System.Collections.Generic.IEnumerable);Argument[0];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableHashSet;Union;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;value;df-generated | -| System.Collections.Immutable;ImmutableHashSet;Union;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableHashSet;WithComparer;(System.Collections.Generic.IEqualityComparer);Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableHashSet;get_KeyComparer;();Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableHashSet;get_SyncRoot;();Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableInterlocked;AddOrUpdate;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func,System.Func);Argument[1];Argument[2].Parameter[0];value;dfc-generated | -| System.Collections.Immutable;ImmutableInterlocked;AddOrUpdate;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func,System.Func);Argument[1];Argument[2].Parameter[0];value;hq-generated | | System.Collections.Immutable;ImmutableInterlocked;AddOrUpdate;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func,System.Func);Argument[1];Argument[3].Parameter[0];value;dfc-generated | -| System.Collections.Immutable;ImmutableInterlocked;AddOrUpdate;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func,System.Func);Argument[1];Argument[3].Parameter[0];value;hq-generated | | System.Collections.Immutable;ImmutableInterlocked;AddOrUpdate;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func,System.Func);Argument[2].ReturnValue;ReturnValue;value;dfc-generated | -| System.Collections.Immutable;ImmutableInterlocked;AddOrUpdate;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func,System.Func);Argument[2].ReturnValue;ReturnValue;value;hq-generated | -| System.Collections.Immutable;ImmutableInterlocked;AddOrUpdate;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableInterlocked;AddOrUpdate;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableInterlocked;AddOrUpdate;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func,System.Func);Argument[3].ReturnValue;ReturnValue;value;dfc-generated | -| System.Collections.Immutable;ImmutableInterlocked;AddOrUpdate;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func,System.Func);Argument[3].ReturnValue;ReturnValue;value;hq-generated | -| System.Collections.Immutable;ImmutableInterlocked;AddOrUpdate;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableInterlocked;AddOrUpdate;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableInterlocked;AddOrUpdate;(System.Collections.Immutable.ImmutableDictionary,TKey,TValue,System.Func);Argument[1];Argument[3].Parameter[0];value;dfc-generated | -| System.Collections.Immutable;ImmutableInterlocked;AddOrUpdate;(System.Collections.Immutable.ImmutableDictionary,TKey,TValue,System.Func);Argument[1];Argument[3].Parameter[0];value;hq-generated | | System.Collections.Immutable;ImmutableInterlocked;AddOrUpdate;(System.Collections.Immutable.ImmutableDictionary,TKey,TValue,System.Func);Argument[2];ReturnValue;value;dfc-generated | -| System.Collections.Immutable;ImmutableInterlocked;AddOrUpdate;(System.Collections.Immutable.ImmutableDictionary,TKey,TValue,System.Func);Argument[2];ReturnValue;value;hq-generated | | System.Collections.Immutable;ImmutableInterlocked;AddOrUpdate;(System.Collections.Immutable.ImmutableDictionary,TKey,TValue,System.Func);Argument[3].ReturnValue;ReturnValue;value;dfc-generated | -| System.Collections.Immutable;ImmutableInterlocked;AddOrUpdate;(System.Collections.Immutable.ImmutableDictionary,TKey,TValue,System.Func);Argument[3].ReturnValue;ReturnValue;value;hq-generated | -| System.Collections.Immutable;ImmutableInterlocked;AddOrUpdate;(System.Collections.Immutable.ImmutableDictionary,TKey,TValue,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableInterlocked;AddOrUpdate;(System.Collections.Immutable.ImmutableDictionary,TKey,TValue,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableInterlocked;GetOrAdd;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func,TArg);Argument[1];Argument[2].Parameter[0];value;dfc-generated | -| System.Collections.Immutable;ImmutableInterlocked;GetOrAdd;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func,TArg);Argument[1];Argument[2].Parameter[0];value;hq-generated | | System.Collections.Immutable;ImmutableInterlocked;GetOrAdd;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func,TArg);Argument[2].ReturnValue;ReturnValue;value;dfc-generated | -| System.Collections.Immutable;ImmutableInterlocked;GetOrAdd;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func,TArg);Argument[2].ReturnValue;ReturnValue;value;hq-generated | -| System.Collections.Immutable;ImmutableInterlocked;GetOrAdd;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func,TArg);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableInterlocked;GetOrAdd;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func,TArg);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableInterlocked;GetOrAdd;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func,TArg);Argument[3];Argument[2].Parameter[1];value;dfc-generated | -| System.Collections.Immutable;ImmutableInterlocked;GetOrAdd;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func,TArg);Argument[3];Argument[2].Parameter[1];value;hq-generated | | System.Collections.Immutable;ImmutableInterlocked;GetOrAdd;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func);Argument[1];Argument[2].Parameter[0];value;dfc-generated | -| System.Collections.Immutable;ImmutableInterlocked;GetOrAdd;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func);Argument[1];Argument[2].Parameter[0];value;hq-generated | | System.Collections.Immutable;ImmutableInterlocked;GetOrAdd;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func);Argument[2].ReturnValue;ReturnValue;value;dfc-generated | -| System.Collections.Immutable;ImmutableInterlocked;GetOrAdd;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func);Argument[2].ReturnValue;ReturnValue;value;hq-generated | -| System.Collections.Immutable;ImmutableInterlocked;GetOrAdd;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableInterlocked;GetOrAdd;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableInterlocked;GetOrAdd;(System.Collections.Immutable.ImmutableDictionary,TKey,TValue);Argument[2];ReturnValue;value;dfc-generated | -| System.Collections.Immutable;ImmutableInterlocked;Update;(System.Collections.Immutable.ImmutableArray,System.Func,TArg,System.Collections.Immutable.ImmutableArray>,TArg);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableInterlocked;Update;(System.Collections.Immutable.ImmutableArray,System.Func,TArg,System.Collections.Immutable.ImmutableArray>,TArg);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableInterlocked;Update;(System.Collections.Immutable.ImmutableArray,System.Func,TArg,System.Collections.Immutable.ImmutableArray>,TArg);Argument[2];Argument[1].Parameter[1];value;dfc-generated | -| System.Collections.Immutable;ImmutableInterlocked;Update;(System.Collections.Immutable.ImmutableArray,System.Func,TArg,System.Collections.Immutable.ImmutableArray>,TArg);Argument[2];Argument[1].Parameter[1];value;hq-generated | -| System.Collections.Immutable;ImmutableInterlocked;Update;(T,System.Func,TArg);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableInterlocked;Update;(T,System.Func,TArg);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableInterlocked;Update;(T,System.Func,TArg);Argument[2];Argument[1].Parameter[1];value;dfc-generated | -| System.Collections.Immutable;ImmutableInterlocked;Update;(T,System.Func,TArg);Argument[2];Argument[1].Parameter[1];value;hq-generated | | System.Collections.Immutable;ImmutableInterlocked;Update;(System.Collections.Immutable.ImmutableArray,System.Func,System.Collections.Immutable.ImmutableArray>);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableInterlocked;Update;(T,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableList;Create;(System.ReadOnlySpan);Argument[0];ReturnValue;taint;df-generated | @@ -7973,27 +7161,20 @@ summary | System.Collections.Immutable;ImmutableList+Builder;CopyTo;(T[]);Argument[this];Argument[0].Element;taint;df-generated | | System.Collections.Immutable;ImmutableList+Builder;CopyTo;(T[],System.Int32);Argument[this].Element;Argument[0].Element;value;manual | | System.Collections.Immutable;ImmutableList+Builder;Exists;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Collections.Immutable;ImmutableList+Builder;Find;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Collections.Immutable;ImmutableList+Builder;Find;(System.Predicate);Argument[this].Element;Argument[0].Parameter[0];value;manual | | System.Collections.Immutable;ImmutableList+Builder;Find;(System.Predicate);Argument[this].Element;ReturnValue;value;manual | -| System.Collections.Immutable;ImmutableList+Builder;FindAll;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Collections.Immutable;ImmutableList+Builder;FindAll;(System.Predicate);Argument[this].Element;Argument[0].Parameter[0];value;manual | | System.Collections.Immutable;ImmutableList+Builder;FindAll;(System.Predicate);Argument[this].Element;ReturnValue;value;manual | | System.Collections.Immutable;ImmutableList+Builder;FindIndex;(System.Int32,System.Int32,System.Predicate);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableList+Builder;FindIndex;(System.Int32,System.Predicate);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableList+Builder;FindIndex;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Collections.Immutable;ImmutableList+Builder;FindLast;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Collections.Immutable;ImmutableList+Builder;FindLast;(System.Predicate);Argument[this].Element;Argument[0].Parameter[0];value;manual | | System.Collections.Immutable;ImmutableList+Builder;FindLast;(System.Predicate);Argument[this].Element;ReturnValue;value;manual | | System.Collections.Immutable;ImmutableList+Builder;FindLastIndex;(System.Int32,System.Int32,System.Predicate);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableList+Builder;FindLastIndex;(System.Int32,System.Predicate);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableList+Builder;FindLastIndex;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Collections.Immutable;ImmutableList+Builder;ForEach;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableList+Builder;ForEach;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableList+Builder;ForEach;(System.Action);Argument[this].Element;Argument[0].Parameter[0];value;dfc-generated | -| System.Collections.Immutable;ImmutableList+Builder;ForEach;(System.Action);Argument[this].Element;Argument[0].Parameter[0];value;hq-generated | -| System.Collections.Immutable;ImmutableList+Builder;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | -| System.Collections.Immutable;ImmutableList+Builder;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Collections.Immutable;ImmutableList+Builder;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableList`1+Enumerator.Current];value;manual | | System.Collections.Immutable;ImmutableList+Builder;GetRange;(System.Int32,System.Int32);Argument[this].Element;ReturnValue.Element;value;manual | | System.Collections.Immutable;ImmutableList+Builder;IndexOf;(T,System.Int32,System.Int32,System.Collections.Generic.IEqualityComparer);Argument[0];Argument[3];taint;df-generated | @@ -8013,10 +7194,8 @@ summary | System.Collections.Immutable;ImmutableList+Builder;get_SyncRoot;();Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableList+Builder;set_Item;(System.Int32,System.Object);Argument[1];Argument[this].Element;value;manual | | System.Collections.Immutable;ImmutableList+Builder;set_Item;(System.Int32,T);Argument[1];Argument[this].Element;value;manual | -| System.Collections.Immutable;ImmutableList+Enumerator;get_Current;();Argument[this].Property[System.Collections.Immutable.ImmutableList`1+Enumerator.Current];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableList+Enumerator;get_Current;();Argument[this].Property[System.Collections.Immutable.ImmutableList`1+Enumerator.Current];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableList+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableList+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Collections.Immutable;ImmutableList;Add;(System.Object);Argument[0];Argument[this].Element;value;manual | | System.Collections.Immutable;ImmutableList;Add;(T);Argument[0];Argument[this].Element;value;manual | | System.Collections.Immutable;ImmutableList;AddRange;(System.Collections.Generic.IEnumerable);Argument[0].Element;Argument[this].Element;value;manual | @@ -8032,27 +7211,20 @@ summary | System.Collections.Immutable;ImmutableList;CopyTo;(T[]);Argument[this];Argument[0].Element;taint;df-generated | | System.Collections.Immutable;ImmutableList;CopyTo;(T[],System.Int32);Argument[this].Element;Argument[0].Element;value;manual | | System.Collections.Immutable;ImmutableList;Exists;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Collections.Immutable;ImmutableList;Find;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Collections.Immutable;ImmutableList;Find;(System.Predicate);Argument[this].Element;Argument[0].Parameter[0];value;manual | | System.Collections.Immutable;ImmutableList;Find;(System.Predicate);Argument[this].Element;ReturnValue;value;manual | -| System.Collections.Immutable;ImmutableList;FindAll;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Collections.Immutable;ImmutableList;FindAll;(System.Predicate);Argument[this].Element;Argument[0].Parameter[0];value;manual | | System.Collections.Immutable;ImmutableList;FindAll;(System.Predicate);Argument[this].Element;ReturnValue;value;manual | | System.Collections.Immutable;ImmutableList;FindIndex;(System.Int32,System.Int32,System.Predicate);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableList;FindIndex;(System.Int32,System.Predicate);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableList;FindIndex;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Collections.Immutable;ImmutableList;FindLast;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Collections.Immutable;ImmutableList;FindLast;(System.Predicate);Argument[this].Element;Argument[0].Parameter[0];value;manual | | System.Collections.Immutable;ImmutableList;FindLast;(System.Predicate);Argument[this].Element;ReturnValue;value;manual | | System.Collections.Immutable;ImmutableList;FindLastIndex;(System.Int32,System.Int32,System.Predicate);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableList;FindLastIndex;(System.Int32,System.Predicate);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableList;FindLastIndex;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Collections.Immutable;ImmutableList;ForEach;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableList;ForEach;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableList;ForEach;(System.Action);Argument[this].Element;Argument[0].Parameter[0];value;dfc-generated | -| System.Collections.Immutable;ImmutableList;ForEach;(System.Action);Argument[this].Element;Argument[0].Parameter[0];value;hq-generated | -| System.Collections.Immutable;ImmutableList;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | -| System.Collections.Immutable;ImmutableList;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Collections.Immutable;ImmutableList;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableList`1+Enumerator.Current];value;manual | | System.Collections.Immutable;ImmutableList;GetRange;(System.Int32,System.Int32);Argument[this].Element;ReturnValue.Element;value;manual | | System.Collections.Immutable;ImmutableList;IndexOf;(T,System.Int32,System.Int32,System.Collections.Generic.IEqualityComparer);Argument[0];Argument[3];taint;df-generated | @@ -8083,10 +7255,8 @@ summary | System.Collections.Immutable;ImmutableList;SetItem;(System.Int32,T);Argument[this];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableList;Sort;();Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableList;Sort;(System.Collections.Generic.IComparer);Argument[this];ReturnValue;value;dfc-generated | -| System.Collections.Immutable;ImmutableList;Sort;(System.Comparison);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableList;Sort;(System.Comparison);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableList;Sort;(System.Comparison);Argument[this];ReturnValue;value;dfc-generated | -| System.Collections.Immutable;ImmutableList;Sort;(System.Comparison);Argument[this];ReturnValue;value;hq-generated | | System.Collections.Immutable;ImmutableList;Sort;(System.Int32,System.Int32,System.Collections.Generic.IComparer);Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableList;ToBuilder;();Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableList;TrueForAll;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | @@ -8105,8 +7275,6 @@ summary | System.Collections.Immutable;ImmutableQueue;Dequeue;(T);Argument[this];Argument[0];taint;df-generated | | System.Collections.Immutable;ImmutableQueue;Dequeue;(T);Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableQueue;Enqueue;(T);Argument[0];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableQueue`1._forwards].SyntheticField[System.Collections.Immutable.ImmutableStack`1._head];value;dfc-generated | -| System.Collections.Immutable;ImmutableQueue;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | -| System.Collections.Immutable;ImmutableQueue;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Collections.Immutable;ImmutableQueue;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableQueue`1+Enumerator.Current];value;manual | | System.Collections.Immutable;ImmutableQueue;Peek;();Argument[this].SyntheticField[System.Collections.Immutable.ImmutableQueue`1._forwards].SyntheticField[System.Collections.Immutable.ImmutableStack`1._head];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableSortedDictionary;Create;(System.Collections.Generic.IComparer);Argument[0];ReturnValue;taint;df-generated | @@ -8128,44 +7296,25 @@ summary | System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[1];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[2];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | | System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;dfc-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;hq-generated | | System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[1].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;dfc-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[1].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;hq-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[2].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;dfc-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[2].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;hq-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | | System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;Argument[2].Parameter[0];value;dfc-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;Argument[2].Parameter[0];value;hq-generated | | System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer);Argument[1].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;dfc-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer);Argument[1].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;hq-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer);Argument[2].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;dfc-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer);Argument[2].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;hq-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | | System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;dfc-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;hq-generated | | System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[1].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;dfc-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[1].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;hq-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[2].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;dfc-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[2].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;hq-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableSortedDictionary+Builder;Add;(System.Collections.Generic.KeyValuePair);Argument[0].Property[System.Collections.Generic.KeyValuePair`2.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | | System.Collections.Immutable;ImmutableSortedDictionary+Builder;Add;(System.Collections.Generic.KeyValuePair);Argument[0].Property[System.Collections.Generic.KeyValuePair`2.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;manual | -| System.Collections.Immutable;ImmutableSortedDictionary+Builder;Add;(System.Collections.Generic.KeyValuePair);Argument[0];Argument[this].Element;value;manual | | System.Collections.Immutable;ImmutableSortedDictionary+Builder;Add;(System.Object,System.Object);Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | | System.Collections.Immutable;ImmutableSortedDictionary+Builder;Add;(System.Object,System.Object);Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;manual | | System.Collections.Immutable;ImmutableSortedDictionary+Builder;Add;(TKey,TValue);Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | @@ -8175,8 +7324,6 @@ summary | System.Collections.Immutable;ImmutableSortedDictionary+Builder;Contains;(System.Object);Argument[0];Argument[this];taint;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary+Builder;CopyTo;(System.Array,System.Int32);Argument[this].Element;Argument[0].Element;value;manual | | System.Collections.Immutable;ImmutableSortedDictionary+Builder;CopyTo;(System.Collections.Generic.KeyValuePair[],System.Int32);Argument[this].Element;Argument[0].Element;value;manual | -| System.Collections.Immutable;ImmutableSortedDictionary+Builder;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | -| System.Collections.Immutable;ImmutableSortedDictionary+Builder;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Collections.Immutable;ImmutableSortedDictionary+Builder;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableSortedDictionary`2+Enumerator.Current];value;manual | | System.Collections.Immutable;ImmutableSortedDictionary+Builder;GetValueOrDefault;(TKey,TValue);Argument[1];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableSortedDictionary+Builder;Remove;(System.Object);Argument[0];Argument[this];taint;df-generated | @@ -8193,7 +7340,6 @@ summary | System.Collections.Immutable;ImmutableSortedDictionary+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;Add;(System.Collections.Generic.KeyValuePair);Argument[0].Property[System.Collections.Generic.KeyValuePair`2.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | | System.Collections.Immutable;ImmutableSortedDictionary;Add;(System.Collections.Generic.KeyValuePair);Argument[0].Property[System.Collections.Generic.KeyValuePair`2.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;manual | -| System.Collections.Immutable;ImmutableSortedDictionary;Add;(System.Collections.Generic.KeyValuePair);Argument[0];Argument[this].Element;value;manual | | System.Collections.Immutable;ImmutableSortedDictionary;Add;(System.Object,System.Object);Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | | System.Collections.Immutable;ImmutableSortedDictionary;Add;(System.Object,System.Object);Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;manual | | System.Collections.Immutable;ImmutableSortedDictionary;Add;(TKey,TValue);Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | @@ -8207,31 +7353,22 @@ summary | System.Collections.Immutable;ImmutableSortedDictionary;Contains;(System.Object);Argument[0];Argument[this];taint;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;CopyTo;(System.Array,System.Int32);Argument[this].Element;Argument[0].Element;value;manual | | System.Collections.Immutable;ImmutableSortedDictionary;CopyTo;(System.Collections.Generic.KeyValuePair[],System.Int32);Argument[this].Element;Argument[0].Element;value;manual | -| System.Collections.Immutable;ImmutableSortedDictionary;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | -| System.Collections.Immutable;ImmutableSortedDictionary;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Collections.Immutable;ImmutableSortedDictionary;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableSortedDictionary`2+Enumerator.Current];value;manual | | System.Collections.Immutable;ImmutableSortedDictionary;Remove;(System.Object);Argument[0];Argument[this];taint;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;Remove;(TKey);Argument[this];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;RemoveRange;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;value;df-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;SetItem;(TKey,TValue);Argument[0];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2._root].SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2+Node._key];value;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;SetItem;(TKey,TValue);Argument[0];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2._root].SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2+Node._key];value;dfc-generated | | System.Collections.Immutable;ImmutableSortedDictionary;SetItem;(TKey,TValue);Argument[this];ReturnValue;value;df-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;SetItem;(TKey,TValue);Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableSortedDictionary;SetItems;(System.Collections.Generic.IEnumerable>);Argument[0];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;SetItems;(System.Collections.Generic.IEnumerable>);Argument[this];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;ToBuilder;();Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;TryGetKey;(TKey,TKey);Argument[0];Argument[1];value;dfc-generated | | System.Collections.Immutable;ImmutableSortedDictionary;TryGetKey;(TKey,TKey);Argument[this].SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2._root].SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2+Node._key];Argument[1];value;dfc-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;WithComparers;(System.Collections.Generic.IComparer);Argument[0];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2._keyComparer];value;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;WithComparers;(System.Collections.Generic.IComparer);Argument[0];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2._keyComparer];value;dfc-generated | | System.Collections.Immutable;ImmutableSortedDictionary;WithComparers;(System.Collections.Generic.IComparer);Argument[this];ReturnValue;value;df-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;WithComparers;(System.Collections.Generic.IComparer);Argument[this];ReturnValue;value;dfc-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;WithComparers;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[0];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2._keyComparer];value;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;WithComparers;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[0];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2._keyComparer];value;dfc-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;WithComparers;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[1];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2._valueComparer];value;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;WithComparers;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[1];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2._valueComparer];value;dfc-generated | | System.Collections.Immutable;ImmutableSortedDictionary;WithComparers;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[this];ReturnValue;value;df-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;WithComparers;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableSortedDictionary;get_Item;(System.Object);Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];ReturnValue;value;manual | | System.Collections.Immutable;ImmutableSortedDictionary;get_Item;(TKey);Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];ReturnValue;value;manual | | System.Collections.Immutable;ImmutableSortedDictionary;get_KeyComparer;();Argument[this].SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2._keyComparer];ReturnValue;value;dfc-generated | @@ -8262,8 +7399,6 @@ summary | System.Collections.Immutable;ImmutableSortedSet+Builder;Clear;();Argument[this].WithoutElement;Argument[this];value;manual | | System.Collections.Immutable;ImmutableSortedSet+Builder;CopyTo;(System.Array,System.Int32);Argument[this].Element;Argument[0].Element;value;manual | | System.Collections.Immutable;ImmutableSortedSet+Builder;CopyTo;(T[],System.Int32);Argument[this].Element;Argument[0].Element;value;manual | -| System.Collections.Immutable;ImmutableSortedSet+Builder;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | -| System.Collections.Immutable;ImmutableSortedSet+Builder;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Collections.Immutable;ImmutableSortedSet+Builder;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableSortedSet`1+Enumerator.Current];value;manual | | System.Collections.Immutable;ImmutableSortedSet+Builder;IntersectWith;(System.Collections.Generic.IEnumerable);Argument[0].Element;Argument[this].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1+Builder._root].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1+Node._key];value;dfc-generated | | System.Collections.Immutable;ImmutableSortedSet+Builder;Reverse;();Argument[this].Element;ReturnValue.Element;value;manual | @@ -8274,10 +7409,8 @@ summary | System.Collections.Immutable;ImmutableSortedSet+Builder;get_Max;();Argument[this].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1+Builder._root].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1+Node._key];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableSortedSet+Builder;get_Min;();Argument[this].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1+Builder._root].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1+Node._key];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableSortedSet+Builder;get_SyncRoot;();Argument[this];ReturnValue;value;dfc-generated | -| System.Collections.Immutable;ImmutableSortedSet+Enumerator;get_Current;();Argument[this].Property[System.Collections.Immutable.ImmutableSortedSet`1+Enumerator.Current];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableSortedSet+Enumerator;get_Current;();Argument[this].Property[System.Collections.Immutable.ImmutableSortedSet`1+Enumerator.Current];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableSortedSet+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableSortedSet+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Collections.Immutable;ImmutableSortedSet;Add;(System.Object);Argument[0];Argument[this].Element;value;manual | | System.Collections.Immutable;ImmutableSortedSet;Add;(T);Argument[0];Argument[this].Element;value;manual | | System.Collections.Immutable;ImmutableSortedSet;Clear;();Argument[this].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1._comparer];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1._comparer];value;dfc-generated | @@ -8288,8 +7421,6 @@ summary | System.Collections.Immutable;ImmutableSortedSet;CopyTo;(System.Array,System.Int32);Argument[this].Element;Argument[0].Element;value;manual | | System.Collections.Immutable;ImmutableSortedSet;CopyTo;(T[],System.Int32);Argument[this].Element;Argument[0].Element;value;manual | | System.Collections.Immutable;ImmutableSortedSet;Except;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;value;df-generated | -| System.Collections.Immutable;ImmutableSortedSet;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | -| System.Collections.Immutable;ImmutableSortedSet;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Collections.Immutable;ImmutableSortedSet;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableSortedSet`1+Enumerator.Current];value;manual | | System.Collections.Immutable;ImmutableSortedSet;Insert;(System.Int32,System.Object);Argument[1];Argument[this].Element;value;manual | | System.Collections.Immutable;ImmutableSortedSet;Insert;(System.Int32,T);Argument[1];Argument[this].Element;value;manual | @@ -8298,21 +7429,16 @@ summary | System.Collections.Immutable;ImmutableSortedSet;Remove;(System.Object);Argument[0];Argument[this];taint;df-generated | | System.Collections.Immutable;ImmutableSortedSet;Remove;(T);Argument[this];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableSortedSet;Reverse;();Argument[this].Element;ReturnValue.Element;value;manual | -| System.Collections.Immutable;ImmutableSortedSet;SymmetricExcept;(System.Collections.Generic.IEnumerable);Argument[0].Element;Argument[this].Element;value;df-generated | | System.Collections.Immutable;ImmutableSortedSet;SymmetricExcept;(System.Collections.Generic.IEnumerable);Argument[0].Element;Argument[this].Element;value;dfc-generated | -| System.Collections.Immutable;ImmutableSortedSet;SymmetricExcept;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1._root].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1+Node._key];value;df-generated | | System.Collections.Immutable;ImmutableSortedSet;SymmetricExcept;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1._root].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1+Node._key];value;dfc-generated | | System.Collections.Immutable;ImmutableSortedSet;SymmetricExcept;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;value;df-generated | -| System.Collections.Immutable;ImmutableSortedSet;SymmetricExcept;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableSortedSet;ToBuilder;();Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableSortedSet;TryGetValue;(T,T);Argument[0];Argument[1];value;dfc-generated | | System.Collections.Immutable;ImmutableSortedSet;TryGetValue;(T,T);Argument[this].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1._root].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1+Node._key];Argument[1];value;dfc-generated | | System.Collections.Immutable;ImmutableSortedSet;Union;(System.Collections.Generic.IEnumerable);Argument[0];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableSortedSet;Union;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;value;df-generated | -| System.Collections.Immutable;ImmutableSortedSet;WithComparer;(System.Collections.Generic.IComparer);Argument[0];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1._comparer];value;df-generated | | System.Collections.Immutable;ImmutableSortedSet;WithComparer;(System.Collections.Generic.IComparer);Argument[0];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1._comparer];value;dfc-generated | | System.Collections.Immutable;ImmutableSortedSet;WithComparer;(System.Collections.Generic.IComparer);Argument[this];ReturnValue;value;df-generated | -| System.Collections.Immutable;ImmutableSortedSet;WithComparer;(System.Collections.Generic.IComparer);Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableSortedSet;get_Item;(System.Int32);Argument[this].Element;ReturnValue;value;manual | | System.Collections.Immutable;ImmutableSortedSet;get_KeyComparer;();Argument[this].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1._comparer];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableSortedSet;get_Max;();Argument[this].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1._root].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1+Node._key];ReturnValue;value;dfc-generated | @@ -8327,8 +7453,6 @@ summary | System.Collections.Immutable;ImmutableStack;Pop;(System.Collections.Immutable.IImmutableStack,T);Argument[0].Element;ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableStack+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableStack;Clear;();Argument[this].WithoutElement;ReturnValue;value;manual | -| System.Collections.Immutable;ImmutableStack;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | -| System.Collections.Immutable;ImmutableStack;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Collections.Immutable;ImmutableStack;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableStack`1+Enumerator.Current];value;manual | | System.Collections.Immutable;ImmutableStack;Peek;();Argument[this].SyntheticField[System.Collections.Immutable.ImmutableStack`1._head];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableStack;Pop;();Argument[this].SyntheticField[System.Collections.Immutable.ImmutableStack`1._tail];ReturnValue;value;dfc-generated | @@ -8354,23 +7478,17 @@ summary | System.Collections.ObjectModel;Collection;get_Items;();Argument[this].SyntheticField[System.Collections.ObjectModel.Collection`1.items];ReturnValue;value;dfc-generated | | System.Collections.ObjectModel;Collection;get_SyncRoot;();Argument[this].SyntheticField[System.Collections.ObjectModel.Collection`1.items].Property[System.Collections.ICollection.SyncRoot];ReturnValue;value;dfc-generated | | System.Collections.ObjectModel;Collection;get_SyncRoot;();Argument[this].SyntheticField[System.Collections.ObjectModel.Collection`1.items];ReturnValue;value;dfc-generated | -| System.Collections.ObjectModel;Collection;get_SyncRoot;();Argument[this];ReturnValue;value;dfc-generated | | System.Collections.ObjectModel;Collection;set_Item;(System.Int32,System.Object);Argument[1];Argument[this].Element;value;manual | | System.Collections.ObjectModel;Collection;set_Item;(System.Int32,T);Argument[1];Argument[this].Element;value;manual | | System.Collections.ObjectModel;KeyedCollection;ChangeItemKey;(TItem,TKey);Argument[0];Argument[this];taint;df-generated | | System.Collections.ObjectModel;KeyedCollection;ChangeItemKey;(TItem,TKey);Argument[1];Argument[this];taint;df-generated | -| System.Collections.ObjectModel;KeyedCollection;InsertItem;(System.Int32,TItem);Argument[1];Argument[this].SyntheticField[System.Collections.ObjectModel.Collection`1.items].Element;value;df-generated | -| System.Collections.ObjectModel;KeyedCollection;InsertItem;(System.Int32,TItem);Argument[1];Argument[this].SyntheticField[System.Collections.ObjectModel.Collection`1.items].Element;value;dfc-generated | | System.Collections.ObjectModel;KeyedCollection;InsertItem;(System.Int32,TItem);Argument[1];Argument[this];taint;df-generated | -| System.Collections.ObjectModel;KeyedCollection;InsertItem;(System.Int32,TItem);Argument[1];Argument[this];taint;dfc-generated | | System.Collections.ObjectModel;KeyedCollection;KeyedCollection;(System.Collections.Generic.IEqualityComparer,System.Int32);Argument[0];Argument[this].SyntheticField[System.Collections.ObjectModel.KeyedCollection`2.comparer];value;dfc-generated | | System.Collections.ObjectModel;KeyedCollection;SetItem;(System.Int32,TItem);Argument[1];Argument[this];taint;df-generated | | System.Collections.ObjectModel;KeyedCollection;TryGetValue;(TKey,TItem);Argument[this].Property[System.Collections.ObjectModel.Collection`1.Items].Element;Argument[1];value;dfc-generated | | System.Collections.ObjectModel;KeyedCollection;get_Comparer;();Argument[this].SyntheticField[System.Collections.ObjectModel.KeyedCollection`2.comparer];ReturnValue;value;dfc-generated | | System.Collections.ObjectModel;KeyedCollection;get_Dictionary;();Argument[this];ReturnValue;taint;df-generated | | System.Collections.ObjectModel;KeyedCollection;get_Item;(TKey);Argument[this].Element;ReturnValue;value;manual | -| System.Collections.ObjectModel;ObservableCollection;InsertItem;(System.Int32,T);Argument[1];Argument[this].SyntheticField[System.Collections.ObjectModel.Collection`1.items].Element;value;dfc-generated | -| System.Collections.ObjectModel;ObservableCollection;SetItem;(System.Int32,T);Argument[1];Argument[this];taint;df-generated | | System.Collections.ObjectModel;ObservableCollection;add_CollectionChanged;(System.Collections.Specialized.NotifyCollectionChangedEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.ObjectModel;ObservableCollection;add_PropertyChanged;(System.ComponentModel.PropertyChangedEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.ObjectModel;ObservableCollection;remove_CollectionChanged;(System.Collections.Specialized.NotifyCollectionChangedEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | @@ -8392,7 +7510,6 @@ summary | System.Collections.ObjectModel;ReadOnlyCollection;get_Item;(System.Int32);Argument[this].Element;ReturnValue;value;manual | | System.Collections.ObjectModel;ReadOnlyCollection;get_Items;();Argument[this].SyntheticField[System.Collections.ObjectModel.ReadOnlyCollection`1.list];ReturnValue;value;dfc-generated | | System.Collections.ObjectModel;ReadOnlyCollection;get_SyncRoot;();Argument[this].SyntheticField[System.Collections.ObjectModel.ReadOnlyCollection`1.list].Property[System.Collections.ICollection.SyncRoot];ReturnValue;value;dfc-generated | -| System.Collections.ObjectModel;ReadOnlyCollection;get_SyncRoot;();Argument[this];ReturnValue;value;dfc-generated | | System.Collections.ObjectModel;ReadOnlyCollection;set_Item;(System.Int32,System.Object);Argument[1];Argument[this].Element;value;manual | | System.Collections.ObjectModel;ReadOnlyCollection;set_Item;(System.Int32,T);Argument[1];Argument[this].Element;value;manual | | System.Collections.ObjectModel;ReadOnlyDictionary+KeyCollection;Add;(TKey);Argument[0];Argument[this].Element;value;manual | @@ -8411,7 +7528,6 @@ summary | System.Collections.ObjectModel;ReadOnlyDictionary+ValueCollection;get_SyncRoot;();Argument[this];ReturnValue;value;dfc-generated | | System.Collections.ObjectModel;ReadOnlyDictionary;Add;(System.Collections.Generic.KeyValuePair);Argument[0].Property[System.Collections.Generic.KeyValuePair`2.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | | System.Collections.ObjectModel;ReadOnlyDictionary;Add;(System.Collections.Generic.KeyValuePair);Argument[0].Property[System.Collections.Generic.KeyValuePair`2.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;manual | -| System.Collections.ObjectModel;ReadOnlyDictionary;Add;(System.Collections.Generic.KeyValuePair);Argument[0];Argument[this].Element;value;manual | | System.Collections.ObjectModel;ReadOnlyDictionary;Add;(System.Object,System.Object);Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | | System.Collections.ObjectModel;ReadOnlyDictionary;Add;(System.Object,System.Object);Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;manual | | System.Collections.ObjectModel;ReadOnlyDictionary;Add;(TKey,TValue);Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | @@ -8449,7 +7565,6 @@ summary | System.Collections.ObjectModel;ReadOnlySet;ReadOnlySet;(System.Collections.Generic.ISet);Argument[0];Argument[this].SyntheticField[System.Collections.ObjectModel.ReadOnlySet`1._set];value;dfc-generated | | System.Collections.ObjectModel;ReadOnlySet;get_Set;();Argument[this].SyntheticField[System.Collections.ObjectModel.ReadOnlySet`1._set];ReturnValue;value;dfc-generated | | System.Collections.ObjectModel;ReadOnlySet;get_SyncRoot;();Argument[this].SyntheticField[System.Collections.ObjectModel.ReadOnlySet`1._set].Property[System.Collections.ICollection.SyncRoot];ReturnValue;value;dfc-generated | -| System.Collections.ObjectModel;ReadOnlySet;get_SyncRoot;();Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Specialized;CollectionsUtil;CreateCaseInsensitiveHashtable;(System.Collections.IDictionary);Argument[0].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;dfc-generated | | System.Collections.Specialized;CollectionsUtil;CreateCaseInsensitiveHashtable;(System.Collections.IDictionary);Argument[0].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;dfc-generated | | System.Collections.Specialized;HybridDictionary;Add;(System.Object,System.Object);Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | @@ -8544,7 +7659,6 @@ summary | System.Collections.Specialized;OrderedDictionary;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Collections.Specialized;OrderedDictionary;GetEnumerator;();Argument[this];ReturnValue;taint;df-generated | | System.Collections.Specialized;OrderedDictionary;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this].SyntheticField[System.Collections.Specialized.OrderedDictionary._comparer];Argument[0];taint;dfc-generated | -| System.Collections.Specialized;OrderedDictionary;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | | System.Collections.Specialized;OrderedDictionary;OnDeserialization;(System.Object);Argument[this].SyntheticField[System.Collections.Specialized.OrderedDictionary._siInfo];Argument[this].SyntheticField[System.Collections.Specialized.OrderedDictionary._comparer];taint;dfc-generated | | System.Collections.Specialized;OrderedDictionary;OrderedDictionary;(System.Int32,System.Collections.IEqualityComparer);Argument[1];Argument[this].SyntheticField[System.Collections.Specialized.OrderedDictionary._comparer];value;dfc-generated | | System.Collections.Specialized;OrderedDictionary;OrderedDictionary;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[0];Argument[this].SyntheticField[System.Collections.Specialized.OrderedDictionary._siInfo];value;dfc-generated | @@ -8565,7 +7679,6 @@ summary | System.Collections.Specialized;StringCollection;Contains;(System.Object);Argument[0];Argument[this];taint;df-generated | | System.Collections.Specialized;StringCollection;CopyTo;(System.Array,System.Int32);Argument[this].Element;Argument[0].Element;value;manual | | System.Collections.Specialized;StringCollection;CopyTo;(System.String[],System.Int32);Argument[this].Element;Argument[0].Element;value;manual | -| System.Collections.Specialized;StringCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Collections.Specialized;StringCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Specialized.StringEnumerator.Current];value;manual | | System.Collections.Specialized;StringCollection;Insert;(System.Int32,System.Object);Argument[1];Argument[this].Element;value;manual | | System.Collections.Specialized;StringCollection;Insert;(System.Int32,System.String);Argument[1];Argument[this].Element;value;manual | @@ -8635,12 +7748,8 @@ summary | System.Collections;CollectionBase;Insert;(System.Int32,System.Object);Argument[1];Argument[this].Element;value;manual | | System.Collections;CollectionBase;OnInsert;(System.Int32,System.Object);Argument[1];Argument[this];taint;df-generated | | System.Collections;CollectionBase;OnSet;(System.Int32,System.Object,System.Object);Argument[2];Argument[this];taint;df-generated | -| System.Collections;CollectionBase;Remove;(System.Object);Argument[0];Argument[this].Property[System.Collections.CollectionBase.InnerList].Element;value;df-generated | | System.Collections;CollectionBase;Remove;(System.Object);Argument[0];Argument[this].Property[System.Collections.CollectionBase.InnerList].Element;value;dfc-generated | -| System.Collections;CollectionBase;Remove;(System.Object);Argument[0];Argument[this].SyntheticField[System.Collections.CollectionBase._list].Element;value;df-generated | | System.Collections;CollectionBase;Remove;(System.Object);Argument[0];Argument[this].SyntheticField[System.Collections.CollectionBase._list].Element;value;dfc-generated | -| System.Collections;CollectionBase;Remove;(System.Object);Argument[0];Argument[this];taint;df-generated | -| System.Collections;CollectionBase;Remove;(System.Object);Argument[0];Argument[this];taint;dfc-generated | | System.Collections;CollectionBase;get_InnerList;();Argument[this].SyntheticField[System.Collections.CollectionBase._list];ReturnValue;value;dfc-generated | | System.Collections;CollectionBase;get_Item;(System.Int32);Argument[this].Element;ReturnValue;value;manual | | System.Collections;CollectionBase;get_List;();Argument[this];ReturnValue;value;dfc-generated | @@ -8651,7 +7760,6 @@ summary | System.Collections;Comparer;Comparer;(System.Globalization.CultureInfo);Argument[0].Property[System.Globalization.CultureInfo.CompareInfo];Argument[this].SyntheticField[System.Collections.Comparer._compareInfo];value;dfc-generated | | System.Collections;Comparer;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this].SyntheticField[System.Collections.Comparer._compareInfo];Argument[0].SyntheticField[System.Runtime.Serialization.SerializationInfo._values].Element;value;dfc-generated | | System.Collections;Comparer;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this].SyntheticField[System.Collections.Comparer._compareInfo];Argument[0];taint;dfc-generated | -| System.Collections;Comparer;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | | System.Collections;DictionaryBase;Add;(System.Object,System.Object);Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | | System.Collections;DictionaryBase;Add;(System.Object,System.Object);Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;manual | | System.Collections;DictionaryBase;Clear;();Argument[this].WithoutElement;Argument[this];value;manual | @@ -8665,7 +7773,6 @@ summary | System.Collections;DictionaryBase;get_Item;(System.Object);Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];ReturnValue;value;manual | | System.Collections;DictionaryBase;get_Keys;();Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];ReturnValue.Element;value;manual | | System.Collections;DictionaryBase;get_SyncRoot;();Argument[this].Property[System.Collections.DictionaryBase.InnerHashtable].Property[System.Collections.Hashtable.SyncRoot];ReturnValue;value;dfc-generated | -| System.Collections;DictionaryBase;get_SyncRoot;();Argument[this];ReturnValue;value;dfc-generated | | System.Collections;DictionaryBase;get_Values;();Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];ReturnValue.Element;value;manual | | System.Collections;DictionaryBase;set_Item;(System.Object,System.Object);Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | | System.Collections;DictionaryBase;set_Item;(System.Object,System.Object);Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;manual | @@ -8793,17 +7900,12 @@ summary | System.ComponentModel.DataAnnotations;AssociationAttribute;get_ThisKeyMembers;();Argument[this].Property[System.ComponentModel.DataAnnotations.AssociationAttribute.ThisKey];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel.DataAnnotations;Base64StringAttribute;IsValid;(System.Object);Argument[0];Argument[this];taint;df-generated | | System.ComponentModel.DataAnnotations;CompareAttribute;CompareAttribute;(System.String);Argument[0];Argument[this].Property[System.ComponentModel.DataAnnotations.CompareAttribute.OtherProperty];value;dfc-generated | -| System.ComponentModel.DataAnnotations;CompareAttribute;FormatErrorMessage;(System.String);Argument[0];ReturnValue;taint;dfc-generated | | System.ComponentModel.DataAnnotations;CompareAttribute;FormatErrorMessage;(System.String);Argument[this].Property[System.ComponentModel.DataAnnotations.CompareAttribute.OtherPropertyDisplayName];ReturnValue;taint;dfc-generated | | System.ComponentModel.DataAnnotations;CompareAttribute;FormatErrorMessage;(System.String);Argument[this].Property[System.ComponentModel.DataAnnotations.CompareAttribute.OtherProperty];ReturnValue;taint;dfc-generated | | System.ComponentModel.DataAnnotations;CompareAttribute;FormatErrorMessage;(System.String);Argument[this].Property[System.ComponentModel.DataAnnotations.ValidationAttribute.ErrorMessageString];ReturnValue;taint;dfc-generated | -| System.ComponentModel.DataAnnotations;CompareAttribute;IsValid;(System.Object,System.ComponentModel.DataAnnotations.ValidationContext);Argument[0];Argument[this];taint;df-generated | -| System.ComponentModel.DataAnnotations;CompareAttribute;IsValid;(System.Object,System.ComponentModel.DataAnnotations.ValidationContext);Argument[0];Argument[this];taint;dfc-generated | -| System.ComponentModel.DataAnnotations;CompareAttribute;IsValid;(System.Object,System.ComponentModel.DataAnnotations.ValidationContext);Argument[this].Property[System.ComponentModel.DataAnnotations.CompareAttribute.OtherProperty];Argument[this].Property[System.ComponentModel.DataAnnotations.CompareAttribute.OtherPropertyDisplayName];value;df-generated | | System.ComponentModel.DataAnnotations;CompareAttribute;IsValid;(System.Object,System.ComponentModel.DataAnnotations.ValidationContext);Argument[this].Property[System.ComponentModel.DataAnnotations.CompareAttribute.OtherProperty];Argument[this].Property[System.ComponentModel.DataAnnotations.CompareAttribute.OtherPropertyDisplayName];value;dfc-generated | | System.ComponentModel.DataAnnotations;CreditCardAttribute;IsValid;(System.Object);Argument[0];Argument[this];taint;df-generated | | System.ComponentModel.DataAnnotations;CustomValidationAttribute;CustomValidationAttribute;(System.Type,System.String);Argument[1];Argument[this].Property[System.ComponentModel.DataAnnotations.CustomValidationAttribute.Method];value;dfc-generated | -| System.ComponentModel.DataAnnotations;CustomValidationAttribute;FormatErrorMessage;(System.String);Argument[0];ReturnValue;taint;dfc-generated | | System.ComponentModel.DataAnnotations;CustomValidationAttribute;FormatErrorMessage;(System.String);Argument[this].Property[System.ComponentModel.DataAnnotations.ValidationAttribute.ErrorMessageString];ReturnValue;taint;dfc-generated | | System.ComponentModel.DataAnnotations;CustomValidationAttribute;IsValid;(System.Object,System.ComponentModel.DataAnnotations.ValidationContext);Argument[0];Argument[this];taint;df-generated | | System.ComponentModel.DataAnnotations;DataTypeAttribute;GetDataTypeName;();Argument[this].Property[System.ComponentModel.DataAnnotations.DataTypeAttribute.CustomDataType];ReturnValue;value;dfc-generated | @@ -8831,30 +7933,24 @@ summary | System.ComponentModel.DataAnnotations;FilterUIHintAttribute;get_ControlParameters;();Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel.DataAnnotations;FilterUIHintAttribute;get_FilterUIHint;();Argument[this].SyntheticField[System.ComponentModel.DataAnnotations.FilterUIHintAttribute._implementation].SyntheticField[System.ComponentModel.DataAnnotations.UIHintAttribute+UIHintImplementation.UIHint];ReturnValue;value;dfc-generated | | System.ComponentModel.DataAnnotations;FilterUIHintAttribute;get_PresentationLayer;();Argument[this].SyntheticField[System.ComponentModel.DataAnnotations.FilterUIHintAttribute._implementation].SyntheticField[System.ComponentModel.DataAnnotations.UIHintAttribute+UIHintImplementation.PresentationLayer];ReturnValue;value;dfc-generated | -| System.ComponentModel.DataAnnotations;LengthAttribute;FormatErrorMessage;(System.String);Argument[0];ReturnValue;taint;dfc-generated | | System.ComponentModel.DataAnnotations;LengthAttribute;FormatErrorMessage;(System.String);Argument[this].Property[System.ComponentModel.DataAnnotations.ValidationAttribute.ErrorMessageString];ReturnValue;taint;dfc-generated | | System.ComponentModel.DataAnnotations;LengthAttribute;IsValid;(System.Object);Argument[0];Argument[this];taint;df-generated | -| System.ComponentModel.DataAnnotations;MaxLengthAttribute;FormatErrorMessage;(System.String);Argument[0];ReturnValue;taint;dfc-generated | | System.ComponentModel.DataAnnotations;MaxLengthAttribute;FormatErrorMessage;(System.String);Argument[this].Property[System.ComponentModel.DataAnnotations.ValidationAttribute.ErrorMessageString];ReturnValue;taint;dfc-generated | | System.ComponentModel.DataAnnotations;MaxLengthAttribute;IsValid;(System.Object);Argument[0];Argument[this];taint;df-generated | -| System.ComponentModel.DataAnnotations;MinLengthAttribute;FormatErrorMessage;(System.String);Argument[0];ReturnValue;taint;dfc-generated | | System.ComponentModel.DataAnnotations;MinLengthAttribute;FormatErrorMessage;(System.String);Argument[this].Property[System.ComponentModel.DataAnnotations.ValidationAttribute.ErrorMessageString];ReturnValue;taint;dfc-generated | | System.ComponentModel.DataAnnotations;MinLengthAttribute;IsValid;(System.Object);Argument[0];Argument[this];taint;df-generated | | System.ComponentModel.DataAnnotations;PhoneAttribute;IsValid;(System.Object);Argument[0];Argument[this];taint;df-generated | -| System.ComponentModel.DataAnnotations;RangeAttribute;FormatErrorMessage;(System.String);Argument[0];ReturnValue;taint;dfc-generated | | System.ComponentModel.DataAnnotations;RangeAttribute;FormatErrorMessage;(System.String);Argument[this].Property[System.ComponentModel.DataAnnotations.RangeAttribute.Maximum];ReturnValue;taint;dfc-generated | | System.ComponentModel.DataAnnotations;RangeAttribute;FormatErrorMessage;(System.String);Argument[this].Property[System.ComponentModel.DataAnnotations.RangeAttribute.Minimum];ReturnValue;taint;dfc-generated | | System.ComponentModel.DataAnnotations;RangeAttribute;FormatErrorMessage;(System.String);Argument[this].Property[System.ComponentModel.DataAnnotations.ValidationAttribute.ErrorMessageString];ReturnValue;taint;dfc-generated | | System.ComponentModel.DataAnnotations;RangeAttribute;IsValid;(System.Object);Argument[0];Argument[this];taint;df-generated | | System.ComponentModel.DataAnnotations;RangeAttribute;RangeAttribute;(System.Type,System.String,System.String);Argument[1];Argument[this].Property[System.ComponentModel.DataAnnotations.RangeAttribute.Minimum];value;dfc-generated | | System.ComponentModel.DataAnnotations;RangeAttribute;RangeAttribute;(System.Type,System.String,System.String);Argument[2];Argument[this].Property[System.ComponentModel.DataAnnotations.RangeAttribute.Maximum];value;dfc-generated | -| System.ComponentModel.DataAnnotations;RegularExpressionAttribute;FormatErrorMessage;(System.String);Argument[0];ReturnValue;taint;dfc-generated | | System.ComponentModel.DataAnnotations;RegularExpressionAttribute;FormatErrorMessage;(System.String);Argument[this].Property[System.ComponentModel.DataAnnotations.RegularExpressionAttribute.Pattern];ReturnValue;taint;dfc-generated | | System.ComponentModel.DataAnnotations;RegularExpressionAttribute;FormatErrorMessage;(System.String);Argument[this].Property[System.ComponentModel.DataAnnotations.ValidationAttribute.ErrorMessageString];ReturnValue;taint;dfc-generated | | System.ComponentModel.DataAnnotations;RegularExpressionAttribute;IsValid;(System.Object);Argument[0];Argument[this];taint;df-generated | | System.ComponentModel.DataAnnotations;RegularExpressionAttribute;RegularExpressionAttribute;(System.String);Argument[0];Argument[this].Property[System.ComponentModel.DataAnnotations.RegularExpressionAttribute.Pattern];value;dfc-generated | | System.ComponentModel.DataAnnotations;RequiredAttribute;IsValid;(System.Object);Argument[0];Argument[this];taint;df-generated | -| System.ComponentModel.DataAnnotations;StringLengthAttribute;FormatErrorMessage;(System.String);Argument[0];ReturnValue;taint;dfc-generated | | System.ComponentModel.DataAnnotations;StringLengthAttribute;FormatErrorMessage;(System.String);Argument[this].Property[System.ComponentModel.DataAnnotations.ValidationAttribute.ErrorMessageString];ReturnValue;taint;dfc-generated | | System.ComponentModel.DataAnnotations;StringLengthAttribute;IsValid;(System.Object);Argument[0];Argument[this];taint;df-generated | | System.ComponentModel.DataAnnotations;UIHintAttribute;UIHintAttribute;(System.String,System.String,System.Object[]);Argument[0];Argument[this].SyntheticField[System.ComponentModel.DataAnnotations.UIHintAttribute._implementation].SyntheticField[System.ComponentModel.DataAnnotations.UIHintAttribute+UIHintImplementation.UIHint];value;dfc-generated | @@ -8894,14 +7990,9 @@ summary | System.ComponentModel.Design.Serialization;DesignerSerializerAttribute;DesignerSerializerAttribute;(System.String,System.String);Argument[0];Argument[this].Property[System.ComponentModel.Design.Serialization.DesignerSerializerAttribute.SerializerTypeName];value;dfc-generated | | System.ComponentModel.Design.Serialization;DesignerSerializerAttribute;DesignerSerializerAttribute;(System.String,System.String);Argument[1];Argument[this].Property[System.ComponentModel.Design.Serialization.DesignerSerializerAttribute.SerializerBaseTypeName];value;dfc-generated | | System.ComponentModel.Design.Serialization;DesignerSerializerAttribute;DesignerSerializerAttribute;(System.String,System.Type);Argument[0];Argument[this].Property[System.ComponentModel.Design.Serialization.DesignerSerializerAttribute.SerializerTypeName];value;dfc-generated | -| System.ComponentModel.Design.Serialization;DesignerSerializerAttribute;get_TypeId;();Argument[this].Property[System.ComponentModel.Design.Serialization.DesignerSerializerAttribute.SerializerBaseTypeName];Argument[this].SyntheticField[System.ComponentModel.Design.Serialization.DesignerSerializerAttribute._typeId];taint;df-generated | | System.ComponentModel.Design.Serialization;DesignerSerializerAttribute;get_TypeId;();Argument[this].Property[System.ComponentModel.Design.Serialization.DesignerSerializerAttribute.SerializerBaseTypeName];Argument[this].SyntheticField[System.ComponentModel.Design.Serialization.DesignerSerializerAttribute._typeId];taint;dfc-generated | -| System.ComponentModel.Design.Serialization;DesignerSerializerAttribute;get_TypeId;();Argument[this].Property[System.ComponentModel.Design.Serialization.DesignerSerializerAttribute.SerializerBaseTypeName];ReturnValue;taint;df-generated | | System.ComponentModel.Design.Serialization;DesignerSerializerAttribute;get_TypeId;();Argument[this].Property[System.ComponentModel.Design.Serialization.DesignerSerializerAttribute.SerializerBaseTypeName];ReturnValue;taint;dfc-generated | -| System.ComponentModel.Design.Serialization;DesignerSerializerAttribute;get_TypeId;();Argument[this].SyntheticField[System.ComponentModel.Design.Serialization.DesignerSerializerAttribute._typeId];ReturnValue;value;df-generated | | System.ComponentModel.Design.Serialization;DesignerSerializerAttribute;get_TypeId;();Argument[this].SyntheticField[System.ComponentModel.Design.Serialization.DesignerSerializerAttribute._typeId];ReturnValue;value;dfc-generated | -| System.ComponentModel.Design.Serialization;DesignerSerializerAttribute;get_TypeId;();Argument[this];ReturnValue;taint;df-generated | -| System.ComponentModel.Design.Serialization;DesignerSerializerAttribute;get_TypeId;();Argument[this];ReturnValue;taint;dfc-generated | | System.ComponentModel.Design.Serialization;IDesignerSerializationManager;add_ResolveName;(System.ComponentModel.Design.Serialization.ResolveNameEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.ComponentModel.Design.Serialization;IDesignerSerializationManager;add_SerializationComplete;(System.EventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.ComponentModel.Design.Serialization;IDesignerSerializationManager;remove_ResolveName;(System.ComponentModel.Design.Serialization.ResolveNameEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | @@ -9032,12 +8123,9 @@ summary | System.ComponentModel;AmbientValueAttribute;AmbientValueAttribute;(System.String);Argument[0];Argument[this].SyntheticField[System.ComponentModel.AmbientValueAttribute._value];value;dfc-generated | | System.ComponentModel;AmbientValueAttribute;AmbientValueAttribute;(System.Type,System.String);Argument[1];Argument[this].SyntheticField[System.ComponentModel.AmbientValueAttribute._value];value;dfc-generated | | System.ComponentModel;AmbientValueAttribute;get_Value;();Argument[this].SyntheticField[System.ComponentModel.AmbientValueAttribute._value];ReturnValue;value;dfc-generated | -| System.ComponentModel;ArrayConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;ArrayConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.ComponentModel;ArrayConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;ArrayConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;ArrayConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.ComponentModel;ArrayConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;ArrayConverter;GetProperties;(System.ComponentModel.ITypeDescriptorContext,System.Object,System.Attribute[]);Argument[1];ReturnValue;taint;df-generated | | System.ComponentModel;AsyncCompletedEventArgs;AsyncCompletedEventArgs;(System.Exception,System.Boolean,System.Object);Argument[0];Argument[this].Property[System.ComponentModel.AsyncCompletedEventArgs.Error];value;dfc-generated | | System.ComponentModel;AsyncCompletedEventArgs;AsyncCompletedEventArgs;(System.Exception,System.Boolean,System.Object);Argument[2];Argument[this].Property[System.ComponentModel.AsyncCompletedEventArgs.UserState];value;dfc-generated | @@ -9067,19 +8155,14 @@ summary | System.ComponentModel;BaseNumberConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel;BaseNumberConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;BaseNumberConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.ComponentModel;BaseNumberConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;BaseNumberConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.ComponentModel;BaseNumberConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;BaseNumberConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;BaseNumberConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.ComponentModel;BaseNumberConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;BindingList;AddIndex;(System.ComponentModel.PropertyDescriptor);Argument[0];Argument[this];taint;df-generated | | System.ComponentModel;BindingList;ApplySort;(System.ComponentModel.PropertyDescriptor,System.ComponentModel.ListSortDirection);Argument[0];Argument[this];taint;df-generated | | System.ComponentModel;BindingList;Find;(System.ComponentModel.PropertyDescriptor,System.Object);Argument[this].Element;ReturnValue;value;manual | -| System.ComponentModel;BindingList;InsertItem;(System.Int32,T);Argument[1];Argument[this].SyntheticField[System.Collections.ObjectModel.Collection`1.items].Element;value;dfc-generated | | System.ComponentModel;BindingList;OnAddingNew;(System.ComponentModel.AddingNewEventArgs);Argument[0];Argument[this];taint;df-generated | | System.ComponentModel;BindingList;OnListChanged;(System.ComponentModel.ListChangedEventArgs);Argument[0];Argument[this];taint;df-generated | -| System.ComponentModel;BindingList;SetItem;(System.Int32,T);Argument[1];Argument[this];taint;df-generated | | System.ComponentModel;BindingList;add_AddingNew;(System.ComponentModel.AddingNewEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.ComponentModel;BindingList;add_ListChanged;(System.ComponentModel.ListChangedEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.ComponentModel;BindingList;get_SortProperty;();Argument[this].Property[System.ComponentModel.BindingList`1.SortPropertyCore];ReturnValue;value;dfc-generated | @@ -9095,19 +8178,13 @@ summary | System.ComponentModel;CharConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel;CharConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;CharConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.ComponentModel;CharConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;CharConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.ComponentModel;CharConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;CharConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;CharConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.ComponentModel;CharConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;CollectionChangeEventHandler;BeginInvoke;(System.Object,System.ComponentModel.CollectionChangeEventArgs,System.AsyncCallback,System.Object);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| System.ComponentModel;CollectionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;CollectionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.ComponentModel;CollectionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;CollectionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;CollectionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.ComponentModel;CollectionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;CollectionConverter;GetProperties;(System.ComponentModel.ITypeDescriptorContext,System.Object,System.Attribute[]);Argument[1];ReturnValue;taint;df-generated | | System.ComponentModel;ComplexBindingPropertiesAttribute;ComplexBindingPropertiesAttribute;(System.String);Argument[0];Argument[this].Property[System.ComponentModel.ComplexBindingPropertiesAttribute.DataSource];value;dfc-generated | | System.ComponentModel;ComplexBindingPropertiesAttribute;ComplexBindingPropertiesAttribute;(System.String,System.String);Argument[0];Argument[this].Property[System.ComponentModel.ComplexBindingPropertiesAttribute.DataSource];value;dfc-generated | @@ -9136,12 +8213,9 @@ summary | System.ComponentModel;CultureInfoConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel;CultureInfoConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;CultureInfoConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.ComponentModel;CultureInfoConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;CultureInfoConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.ComponentModel;CultureInfoConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;CultureInfoConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;CultureInfoConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.ComponentModel;CultureInfoConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;CultureInfoConverter;GetCultureName;(System.Globalization.CultureInfo);Argument[0].Property[System.Globalization.CultureInfo.Name];ReturnValue;value;dfc-generated | | System.ComponentModel;CultureInfoConverter;GetStandardValues;(System.ComponentModel.ITypeDescriptorContext);Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;CustomTypeDescriptor;CustomTypeDescriptor;(System.ComponentModel.ICustomTypeDescriptor);Argument[0];Argument[this].SyntheticField[System.ComponentModel.CustomTypeDescriptor._parent];value;dfc-generated | @@ -9153,36 +8227,24 @@ summary | System.ComponentModel;DateOnlyConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel;DateOnlyConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;DateOnlyConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.ComponentModel;DateOnlyConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;DateOnlyConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.ComponentModel;DateOnlyConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;DateOnlyConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;DateOnlyConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.ComponentModel;DateOnlyConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;DateTimeConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel;DateTimeConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;DateTimeConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.ComponentModel;DateTimeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;DateTimeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.ComponentModel;DateTimeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;DateTimeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;DateTimeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.ComponentModel;DateTimeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;DateTimeOffsetConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel;DateTimeOffsetConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;DateTimeOffsetConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.ComponentModel;DateTimeOffsetConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;DateTimeOffsetConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.ComponentModel;DateTimeOffsetConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;DateTimeOffsetConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;DateTimeOffsetConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.ComponentModel;DateTimeOffsetConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | -| System.ComponentModel;DecimalConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;DecimalConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.ComponentModel;DecimalConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;DecimalConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;DecimalConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.ComponentModel;DecimalConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;DefaultBindingPropertyAttribute;DefaultBindingPropertyAttribute;(System.String);Argument[0];Argument[this].Property[System.ComponentModel.DefaultBindingPropertyAttribute.Name];value;dfc-generated | | System.ComponentModel;DefaultEventAttribute;DefaultEventAttribute;(System.String);Argument[0];Argument[this].Property[System.ComponentModel.DefaultEventAttribute.Name];value;dfc-generated | | System.ComponentModel;DefaultPropertyAttribute;DefaultPropertyAttribute;(System.String);Argument[0];Argument[this].Property[System.ComponentModel.DefaultPropertyAttribute.Name];value;dfc-generated | @@ -9197,19 +8259,11 @@ summary | System.ComponentModel;DesignerAttribute;DesignerAttribute;(System.String,System.String);Argument[0];Argument[this].Property[System.ComponentModel.DesignerAttribute.DesignerTypeName];value;dfc-generated | | System.ComponentModel;DesignerAttribute;DesignerAttribute;(System.String,System.String);Argument[1];Argument[this].Property[System.ComponentModel.DesignerAttribute.DesignerBaseTypeName];value;dfc-generated | | System.ComponentModel;DesignerAttribute;DesignerAttribute;(System.String,System.Type);Argument[0];Argument[this].Property[System.ComponentModel.DesignerAttribute.DesignerTypeName];value;dfc-generated | -| System.ComponentModel;DesignerAttribute;get_TypeId;();Argument[this].Property[System.ComponentModel.DesignerAttribute.DesignerBaseTypeName];Argument[this].SyntheticField[System.ComponentModel.DesignerAttribute._typeId];taint;df-generated | | System.ComponentModel;DesignerAttribute;get_TypeId;();Argument[this].Property[System.ComponentModel.DesignerAttribute.DesignerBaseTypeName];Argument[this].SyntheticField[System.ComponentModel.DesignerAttribute._typeId];taint;dfc-generated | -| System.ComponentModel;DesignerAttribute;get_TypeId;();Argument[this].Property[System.ComponentModel.DesignerAttribute.DesignerBaseTypeName];ReturnValue;taint;df-generated | | System.ComponentModel;DesignerAttribute;get_TypeId;();Argument[this].Property[System.ComponentModel.DesignerAttribute.DesignerBaseTypeName];ReturnValue;taint;dfc-generated | -| System.ComponentModel;DesignerAttribute;get_TypeId;();Argument[this].SyntheticField[System.ComponentModel.DesignerAttribute._typeId];ReturnValue;value;df-generated | | System.ComponentModel;DesignerAttribute;get_TypeId;();Argument[this].SyntheticField[System.ComponentModel.DesignerAttribute._typeId];ReturnValue;value;dfc-generated | -| System.ComponentModel;DesignerAttribute;get_TypeId;();Argument[this];ReturnValue;taint;df-generated | -| System.ComponentModel;DesignerAttribute;get_TypeId;();Argument[this];ReturnValue;taint;dfc-generated | | System.ComponentModel;DesignerCategoryAttribute;DesignerCategoryAttribute;(System.String);Argument[0];Argument[this].Property[System.ComponentModel.DesignerCategoryAttribute.Category];value;dfc-generated | -| System.ComponentModel;DesignerCategoryAttribute;get_TypeId;();Argument[this].Property[System.ComponentModel.DesignerCategoryAttribute.Category];ReturnValue;taint;df-generated | | System.ComponentModel;DesignerCategoryAttribute;get_TypeId;();Argument[this].Property[System.ComponentModel.DesignerCategoryAttribute.Category];ReturnValue;taint;dfc-generated | -| System.ComponentModel;DesignerCategoryAttribute;get_TypeId;();Argument[this];ReturnValue;taint;df-generated | -| System.ComponentModel;DesignerCategoryAttribute;get_TypeId;();Argument[this];ReturnValue;taint;dfc-generated | | System.ComponentModel;DisplayNameAttribute;DisplayNameAttribute;(System.String);Argument[0];Argument[this].Property[System.ComponentModel.DisplayNameAttribute.DisplayNameValue];value;dfc-generated | | System.ComponentModel;DisplayNameAttribute;get_DisplayName;();Argument[this].Property[System.ComponentModel.DisplayNameAttribute.DisplayNameValue];ReturnValue;value;dfc-generated | | System.ComponentModel;DoWorkEventArgs;DoWorkEventArgs;(System.Object);Argument[0];Argument[this].Property[System.ComponentModel.DoWorkEventArgs.Argument];value;dfc-generated | @@ -9217,27 +8271,16 @@ summary | System.ComponentModel;EditorAttribute;EditorAttribute;(System.String,System.String);Argument[0];Argument[this].Property[System.ComponentModel.EditorAttribute.EditorTypeName];value;dfc-generated | | System.ComponentModel;EditorAttribute;EditorAttribute;(System.String,System.String);Argument[1];Argument[this].Property[System.ComponentModel.EditorAttribute.EditorBaseTypeName];value;dfc-generated | | System.ComponentModel;EditorAttribute;EditorAttribute;(System.String,System.Type);Argument[0];Argument[this].Property[System.ComponentModel.EditorAttribute.EditorTypeName];value;dfc-generated | -| System.ComponentModel;EditorAttribute;get_TypeId;();Argument[this].Property[System.ComponentModel.EditorAttribute.EditorBaseTypeName];Argument[this].SyntheticField[System.ComponentModel.EditorAttribute._typeId];taint;df-generated | | System.ComponentModel;EditorAttribute;get_TypeId;();Argument[this].Property[System.ComponentModel.EditorAttribute.EditorBaseTypeName];Argument[this].SyntheticField[System.ComponentModel.EditorAttribute._typeId];taint;dfc-generated | -| System.ComponentModel;EditorAttribute;get_TypeId;();Argument[this].Property[System.ComponentModel.EditorAttribute.EditorBaseTypeName];ReturnValue;taint;df-generated | | System.ComponentModel;EditorAttribute;get_TypeId;();Argument[this].Property[System.ComponentModel.EditorAttribute.EditorBaseTypeName];ReturnValue;taint;dfc-generated | -| System.ComponentModel;EditorAttribute;get_TypeId;();Argument[this].SyntheticField[System.ComponentModel.EditorAttribute._typeId];ReturnValue;value;df-generated | | System.ComponentModel;EditorAttribute;get_TypeId;();Argument[this].SyntheticField[System.ComponentModel.EditorAttribute._typeId];ReturnValue;value;dfc-generated | -| System.ComponentModel;EditorAttribute;get_TypeId;();Argument[this];ReturnValue;taint;df-generated | -| System.ComponentModel;EditorAttribute;get_TypeId;();Argument[this];ReturnValue;taint;dfc-generated | | System.ComponentModel;EnumConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel;EnumConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;EnumConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.ComponentModel;EnumConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;EnumConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.ComponentModel;EnumConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;EnumConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;EnumConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.ComponentModel;EnumConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | -| System.ComponentModel;EnumConverter;GetStandardValues;(System.ComponentModel.ITypeDescriptorContext);Argument[this].Property[System.ComponentModel.EnumConverter.Values];ReturnValue;value;df-generated | | System.ComponentModel;EnumConverter;GetStandardValues;(System.ComponentModel.ITypeDescriptorContext);Argument[this].Property[System.ComponentModel.EnumConverter.Values];ReturnValue;value;dfc-generated | -| System.ComponentModel;EnumConverter;GetStandardValues;(System.ComponentModel.ITypeDescriptorContext);Argument[this];ReturnValue;taint;df-generated | -| System.ComponentModel;EnumConverter;GetStandardValues;(System.ComponentModel.ITypeDescriptorContext);Argument[this];ReturnValue;taint;dfc-generated | | System.ComponentModel;EventDescriptorCollection;Add;(System.ComponentModel.EventDescriptor);Argument[0];Argument[this].Element;value;manual | | System.ComponentModel;EventDescriptorCollection;Add;(System.Object);Argument[0];Argument[this].Element;value;manual | | System.ComponentModel;EventDescriptorCollection;Clear;();Argument[this].WithoutElement;Argument[this];value;manual | @@ -9269,12 +8312,9 @@ summary | System.ComponentModel;GuidConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel;GuidConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;GuidConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.ComponentModel;GuidConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;GuidConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.ComponentModel;GuidConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;GuidConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;GuidConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.ComponentModel;GuidConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;HandledEventHandler;BeginInvoke;(System.Object,System.ComponentModel.HandledEventArgs,System.AsyncCallback,System.Object);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.ComponentModel;IBindingList;AddIndex;(System.ComponentModel.PropertyDescriptor);Argument[0];Argument[this];taint;df-generated | | System.ComponentModel;IBindingList;ApplySort;(System.ComponentModel.PropertyDescriptor,System.ComponentModel.ListSortDirection);Argument[0];Argument[this];taint;df-generated | @@ -9317,16 +8357,12 @@ summary | System.ComponentModel;LicenseContext;GetService;(System.Type);Argument[this];ReturnValue;value;dfc-generated | | System.ComponentModel;LicenseContext;SetSavedLicenseKey;(System.Type,System.String);Argument[1];Argument[this];taint;df-generated | | System.ComponentModel;LicenseException;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this].SyntheticField[System.ComponentModel.LicenseException._instance];Argument[0];taint;dfc-generated | -| System.ComponentModel;LicenseException;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | | System.ComponentModel;LicenseException;LicenseException;(System.Type,System.Object,System.String);Argument[1];Argument[this].SyntheticField[System.ComponentModel.LicenseException._instance];value;dfc-generated | | System.ComponentModel;LicenseException;LicenseException;(System.Type,System.Object,System.String,System.Exception);Argument[1];Argument[this].SyntheticField[System.ComponentModel.LicenseException._instance];value;dfc-generated | | System.ComponentModel;LicenseProvider;GetLicense;(System.ComponentModel.LicenseContext,System.Type,System.Object,System.Boolean);Argument[0];ReturnValue;taint;df-generated | | System.ComponentModel;LicenseProvider;GetLicense;(System.ComponentModel.LicenseContext,System.Type,System.Object,System.Boolean);Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;LicenseProviderAttribute;LicenseProviderAttribute;(System.String);Argument[0];Argument[this].SyntheticField[System.ComponentModel.LicenseProviderAttribute._licenseProviderName];value;dfc-generated | -| System.ComponentModel;LicenseProviderAttribute;get_TypeId;();Argument[this].SyntheticField[System.ComponentModel.LicenseProviderAttribute._licenseProviderName];ReturnValue;taint;df-generated | | System.ComponentModel;LicenseProviderAttribute;get_TypeId;();Argument[this].SyntheticField[System.ComponentModel.LicenseProviderAttribute._licenseProviderName];ReturnValue;taint;dfc-generated | -| System.ComponentModel;LicenseProviderAttribute;get_TypeId;();Argument[this];ReturnValue;taint;df-generated | -| System.ComponentModel;LicenseProviderAttribute;get_TypeId;();Argument[this];ReturnValue;taint;dfc-generated | | System.ComponentModel;ListChangedEventArgs;ListChangedEventArgs;(System.ComponentModel.ListChangedType,System.ComponentModel.PropertyDescriptor);Argument[1];Argument[this].Property[System.ComponentModel.ListChangedEventArgs.PropertyDescriptor];value;dfc-generated | | System.ComponentModel;ListChangedEventHandler;BeginInvoke;(System.Object,System.ComponentModel.ListChangedEventArgs,System.AsyncCallback,System.Object);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.ComponentModel;ListSortDescription;ListSortDescription;(System.ComponentModel.PropertyDescriptor,System.ComponentModel.ListSortDirection);Argument[0];Argument[this].Property[System.ComponentModel.ListSortDescription.PropertyDescriptor];value;dfc-generated | @@ -9375,30 +8411,16 @@ summary | System.ComponentModel;MemberDescriptor;get_Attributes;();Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;MemberDescriptor;get_DisplayName;();Argument[this].SyntheticField[System.ComponentModel.MemberDescriptor._displayName];ReturnValue;value;dfc-generated | | System.ComponentModel;MemberDescriptor;get_Name;();Argument[this].SyntheticField[System.ComponentModel.MemberDescriptor._name];ReturnValue;value;dfc-generated | -| System.ComponentModel;MultilineStringConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;MultilineStringConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.ComponentModel;MultilineStringConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;MultilineStringConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;MultilineStringConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.ComponentModel;MultilineStringConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;MultilineStringConverter;GetProperties;(System.ComponentModel.ITypeDescriptorContext,System.Object,System.Attribute[]);Argument[1];ReturnValue;taint;df-generated | | System.ComponentModel;NestedContainer;CreateSite;(System.ComponentModel.IComponent,System.String);Argument[1];ReturnValue.SyntheticField[System.ComponentModel.NestedContainer+Site._name];value;dfc-generated | -| System.ComponentModel;NestedContainer;CreateSite;(System.ComponentModel.IComponent,System.String);Argument[this];ReturnValue.SyntheticField[System.ComponentModel.Container+Site.Container];value;dfc-generated | | System.ComponentModel;NestedContainer;CreateSite;(System.ComponentModel.IComponent,System.String);Argument[this];ReturnValue.SyntheticField[System.ComponentModel.NestedContainer+Site.Container];value;dfc-generated | | System.ComponentModel;NestedContainer;GetService;(System.Type);Argument[this];ReturnValue;value;dfc-generated | | System.ComponentModel;NestedContainer;NestedContainer;(System.ComponentModel.IComponent);Argument[0];Argument[this].Property[System.ComponentModel.NestedContainer.Owner];value;dfc-generated | | System.ComponentModel;NullableConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2].Property[System.Uri.OriginalString];ReturnValue;taint;dfc-generated | -| System.ComponentModel;NullableConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | -| System.ComponentModel;NullableConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | -| System.ComponentModel;NullableConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.ComponentModel;NullableConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;df-generated | | System.ComponentModel;NullableConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;dfc-generated | -| System.ComponentModel;NullableConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | -| System.ComponentModel;NullableConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.ComponentModel;NullableConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | -| System.ComponentModel;NullableConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | -| System.ComponentModel;NullableConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.ComponentModel;NullableConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;NullableConverter;GetProperties;(System.ComponentModel.ITypeDescriptorContext,System.Object,System.Attribute[]);Argument[1];ReturnValue;taint;df-generated | | System.ComponentModel;NullableConverter;GetStandardValues;(System.ComponentModel.ITypeDescriptorContext);Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;ProgressChangedEventArgs;ProgressChangedEventArgs;(System.Int32,System.Object);Argument[1];Argument[this].SyntheticField[System.ComponentModel.ProgressChangedEventArgs._userState];value;dfc-generated | @@ -9423,7 +8445,6 @@ summary | System.ComponentModel;PropertyDescriptorCollection;Add;(System.ComponentModel.PropertyDescriptor);Argument[0];Argument[this].Element;value;manual | | System.ComponentModel;PropertyDescriptorCollection;Add;(System.Object);Argument[0].Property[System.Collections.Generic.KeyValuePair`2.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | | System.ComponentModel;PropertyDescriptorCollection;Add;(System.Object);Argument[0].Property[System.Collections.Generic.KeyValuePair`2.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;manual | -| System.ComponentModel;PropertyDescriptorCollection;Add;(System.Object);Argument[0];Argument[this].Element;value;manual | | System.ComponentModel;PropertyDescriptorCollection;Add;(System.Object,System.Object);Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | | System.ComponentModel;PropertyDescriptorCollection;Add;(System.Object,System.Object);Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;manual | | System.ComponentModel;PropertyDescriptorCollection;Clear;();Argument[this].WithoutElement;Argument[this];value;manual | @@ -9448,7 +8469,6 @@ summary | System.ComponentModel;PropertyDescriptorCollection;Sort;(System.String[],System.Collections.IComparer);Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;PropertyDescriptorCollection;get_Item;(System.Int32);Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];ReturnValue;value;manual | | System.ComponentModel;PropertyDescriptorCollection;get_Item;(System.Int32);Argument[this].Element;ReturnValue;value;manual | -| System.ComponentModel;PropertyDescriptorCollection;get_Item;(System.Object);Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];ReturnValue;value;manual | | System.ComponentModel;PropertyDescriptorCollection;get_Item;(System.Object);Argument[this].Element;ReturnValue;value;manual | | System.ComponentModel;PropertyDescriptorCollection;get_Item;(System.String);Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];ReturnValue;value;manual | | System.ComponentModel;PropertyDescriptorCollection;get_Item;(System.String);Argument[this].Element;ReturnValue;value;manual | @@ -9457,9 +8477,6 @@ summary | System.ComponentModel;PropertyDescriptorCollection;get_Values;();Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];ReturnValue.Element;value;manual | | System.ComponentModel;PropertyDescriptorCollection;set_Item;(System.Int32,System.Object);Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | | System.ComponentModel;PropertyDescriptorCollection;set_Item;(System.Int32,System.Object);Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;manual | -| System.ComponentModel;PropertyDescriptorCollection;set_Item;(System.Int32,System.Object);Argument[1];Argument[this].Element;value;manual | -| System.ComponentModel;PropertyDescriptorCollection;set_Item;(System.Object,System.Object);Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | -| System.ComponentModel;PropertyDescriptorCollection;set_Item;(System.Object,System.Object);Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;manual | | System.ComponentModel;PropertyDescriptorCollection;set_Item;(System.Object,System.Object);Argument[1];Argument[this].Element;value;manual | | System.ComponentModel;PropertyTabAttribute;InitializeArrays;(System.String[],System.ComponentModel.PropertyTabScope[]);Argument[0].Element;Argument[this].SyntheticField[System.ComponentModel.PropertyTabAttribute._tabClassNames].Element;value;dfc-generated | | System.ComponentModel;PropertyTabAttribute;InitializeArrays;(System.String[],System.ComponentModel.PropertyTabScope[]);Argument[1].Element;Argument[this].Property[System.ComponentModel.PropertyTabAttribute.TabScopes].Element;value;dfc-generated | @@ -9471,19 +8488,13 @@ summary | System.ComponentModel;ProvidePropertyAttribute;ProvidePropertyAttribute;(System.String,System.String);Argument[0];Argument[this].Property[System.ComponentModel.ProvidePropertyAttribute.PropertyName];value;dfc-generated | | System.ComponentModel;ProvidePropertyAttribute;ProvidePropertyAttribute;(System.String,System.String);Argument[1];Argument[this].Property[System.ComponentModel.ProvidePropertyAttribute.ReceiverTypeName];value;dfc-generated | | System.ComponentModel;ProvidePropertyAttribute;ProvidePropertyAttribute;(System.String,System.Type);Argument[0];Argument[this].Property[System.ComponentModel.ProvidePropertyAttribute.PropertyName];value;dfc-generated | -| System.ComponentModel;ProvidePropertyAttribute;get_TypeId;();Argument[this].Property[System.ComponentModel.ProvidePropertyAttribute.PropertyName];ReturnValue;taint;df-generated | | System.ComponentModel;ProvidePropertyAttribute;get_TypeId;();Argument[this].Property[System.ComponentModel.ProvidePropertyAttribute.PropertyName];ReturnValue;taint;dfc-generated | -| System.ComponentModel;ProvidePropertyAttribute;get_TypeId;();Argument[this];ReturnValue;taint;df-generated | -| System.ComponentModel;ProvidePropertyAttribute;get_TypeId;();Argument[this];ReturnValue;taint;dfc-generated | | System.ComponentModel;ReferenceConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel;ReferenceConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;ReferenceConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.ComponentModel;ReferenceConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;ReferenceConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.ComponentModel;ReferenceConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;ReferenceConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;ReferenceConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.ComponentModel;ReferenceConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;ReferenceConverter;GetStandardValues;(System.ComponentModel.ITypeDescriptorContext);Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;RefreshEventArgs;RefreshEventArgs;(System.Object);Argument[0];Argument[this].Property[System.ComponentModel.RefreshEventArgs.ComponentChanged];value;dfc-generated | | System.ComponentModel;RefreshEventHandler;BeginInvoke;(System.ComponentModel.RefreshEventArgs,System.AsyncCallback,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | @@ -9497,21 +8508,15 @@ summary | System.ComponentModel;TimeOnlyConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel;TimeOnlyConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;TimeOnlyConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.ComponentModel;TimeOnlyConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;TimeOnlyConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.ComponentModel;TimeOnlyConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;TimeOnlyConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;TimeOnlyConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.ComponentModel;TimeOnlyConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;TimeSpanConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel;TimeSpanConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;TimeSpanConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.ComponentModel;TimeSpanConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;TimeSpanConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.ComponentModel;TimeSpanConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;TimeSpanConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;TimeSpanConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.ComponentModel;TimeSpanConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;ToolboxItemAttribute;ToolboxItemAttribute;(System.String);Argument[0];Argument[this].SyntheticField[System.ComponentModel.ToolboxItemAttribute._toolboxItemTypeName];value;dfc-generated | | System.ComponentModel;ToolboxItemAttribute;get_ToolboxItemTypeName;();Argument[this].SyntheticField[System.ComponentModel.ToolboxItemAttribute._toolboxItemTypeName];ReturnValue;value;dfc-generated | | System.ComponentModel;ToolboxItemFilterAttribute;ToString;();Argument[this].Property[System.ComponentModel.ToolboxItemFilterAttribute.FilterString];ReturnValue;taint;dfc-generated | @@ -9533,22 +8538,17 @@ summary | System.ComponentModel;TypeConverter;ConvertFromString;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.String);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;TypeConverter;ConvertFromString;(System.ComponentModel.ITypeDescriptorContext,System.String);Argument[1];ReturnValue;value;dfc-generated | | System.ComponentModel;TypeConverter;ConvertFromString;(System.String);Argument[0];ReturnValue;value;dfc-generated | -| System.ComponentModel;TypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;TypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.ComponentModel;TypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;TypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;TypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.ComponentModel;TypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;TypeConverter;ConvertTo;(System.Object,System.Type);Argument[0];ReturnValue;value;df-generated | | System.ComponentModel;TypeConverter;ConvertTo;(System.Object,System.Type);Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;TypeConverter;ConvertToInvariantString;(System.ComponentModel.ITypeDescriptorContext,System.Object);Argument[1];ReturnValue;value;df-generated | | System.ComponentModel;TypeConverter;ConvertToInvariantString;(System.ComponentModel.ITypeDescriptorContext,System.Object);Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;TypeConverter;ConvertToInvariantString;(System.Object);Argument[0];ReturnValue;value;df-generated | | System.ComponentModel;TypeConverter;ConvertToInvariantString;(System.Object);Argument[this];ReturnValue;taint;df-generated | -| System.ComponentModel;TypeConverter;ConvertToString;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;df-generated | | System.ComponentModel;TypeConverter;ConvertToString;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;dfc-generated | | System.ComponentModel;TypeConverter;ConvertToString;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;df-generated | -| System.ComponentModel;TypeConverter;ConvertToString;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;TypeConverter;ConvertToString;(System.ComponentModel.ITypeDescriptorContext,System.Object);Argument[1];ReturnValue;value;df-generated | | System.ComponentModel;TypeConverter;ConvertToString;(System.ComponentModel.ITypeDescriptorContext,System.Object);Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;TypeConverter;ConvertToString;(System.Object);Argument[0];ReturnValue;value;df-generated | @@ -9585,26 +8585,19 @@ summary | System.ComponentModel;TypeListConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel;TypeListConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;TypeListConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.ComponentModel;TypeListConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;TypeListConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.ComponentModel;TypeListConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;TypeListConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;TypeListConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.ComponentModel;TypeListConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;TypeListConverter;GetStandardValues;(System.ComponentModel.ITypeDescriptorContext);Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;TypeListConverter;TypeListConverter;(System.Type[]);Argument[0].Element;Argument[this];taint;df-generated | | System.ComponentModel;VersionConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel;VersionConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;VersionConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.ComponentModel;VersionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;VersionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.ComponentModel;VersionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;VersionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;VersionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.ComponentModel;VersionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;WarningException;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this].Property[System.ComponentModel.WarningException.HelpTopic];Argument[0];taint;dfc-generated | | System.ComponentModel;WarningException;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this].Property[System.ComponentModel.WarningException.HelpUrl];Argument[0];taint;dfc-generated | -| System.ComponentModel;WarningException;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | | System.ComponentModel;WarningException;WarningException;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[0];Argument[this].Property[System.ComponentModel.WarningException.HelpTopic];taint;dfc-generated | | System.ComponentModel;WarningException;WarningException;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[0];Argument[this].Property[System.ComponentModel.WarningException.HelpUrl];taint;dfc-generated | | System.ComponentModel;WarningException;WarningException;(System.String,System.String,System.String);Argument[1];Argument[this].Property[System.ComponentModel.WarningException.HelpUrl];value;dfc-generated | @@ -9688,10 +8681,7 @@ summary | System.Configuration;ApplicationSettingsBase;get_Context;();Argument[this].SyntheticField[System.Configuration.SettingsBase._context];ReturnValue;value;dfc-generated | | System.Configuration;ApplicationSettingsBase;get_Item;(System.String);Argument[this];ReturnValue;taint;df-generated | | System.Configuration;ApplicationSettingsBase;get_Properties;();Argument[this].SyntheticField[System.Configuration.SettingsBase._properties];ReturnValue;value;dfc-generated | -| System.Configuration;ApplicationSettingsBase;get_PropertyValues;();Argument[this].Property[System.Configuration.SettingsBase.PropertyValues];ReturnValue;value;df-generated | | System.Configuration;ApplicationSettingsBase;get_PropertyValues;();Argument[this].Property[System.Configuration.SettingsBase.PropertyValues];ReturnValue;value;dfc-generated | -| System.Configuration;ApplicationSettingsBase;get_PropertyValues;();Argument[this];ReturnValue;taint;df-generated | -| System.Configuration;ApplicationSettingsBase;get_PropertyValues;();Argument[this];ReturnValue;taint;dfc-generated | | System.Configuration;ApplicationSettingsBase;get_Providers;();Argument[this].SyntheticField[System.Configuration.SettingsBase._providers];ReturnValue;value;dfc-generated | | System.Configuration;ApplicationSettingsBase;remove_PropertyChanged;(System.ComponentModel.PropertyChangedEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Configuration;ApplicationSettingsBase;remove_SettingChanging;(System.Configuration.SettingChangingEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | @@ -9713,60 +8703,21 @@ summary | System.Configuration;CommaDelimitedStringCollectionConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Configuration;CommaDelimitedStringCollectionConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;CommaDelimitedStringCollectionConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.Configuration;CommaDelimitedStringCollectionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Configuration;CommaDelimitedStringCollectionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.Configuration;CommaDelimitedStringCollectionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Configuration;CommaDelimitedStringCollectionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;CommaDelimitedStringCollectionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.Configuration;CommaDelimitedStringCollectionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | -| System.Configuration;ConfigXmlDocument;CreateAttribute;(System.String,System.String,System.String);Argument[0];ReturnValue;taint;df-generated | -| System.Configuration;ConfigXmlDocument;CreateAttribute;(System.String,System.String,System.String);Argument[0];ReturnValue;taint;dfc-generated | -| System.Configuration;ConfigXmlDocument;CreateAttribute;(System.String,System.String,System.String);Argument[1];ReturnValue;taint;df-generated | -| System.Configuration;ConfigXmlDocument;CreateAttribute;(System.String,System.String,System.String);Argument[1];ReturnValue;taint;dfc-generated | -| System.Configuration;ConfigXmlDocument;CreateAttribute;(System.String,System.String,System.String);Argument[2];ReturnValue;taint;df-generated | -| System.Configuration;ConfigXmlDocument;CreateAttribute;(System.String,System.String,System.String);Argument[2];ReturnValue;taint;dfc-generated | -| System.Configuration;ConfigXmlDocument;CreateAttribute;(System.String,System.String,System.String);Argument[this].SyntheticField[System.Configuration.ConfigXmlDocument._filename];ReturnValue.SyntheticField[System.Configuration.ConfigXmlAttribute._filename];value;df-generated | | System.Configuration;ConfigXmlDocument;CreateAttribute;(System.String,System.String,System.String);Argument[this].SyntheticField[System.Configuration.ConfigXmlDocument._filename];ReturnValue.SyntheticField[System.Configuration.ConfigXmlAttribute._filename];value;dfc-generated | -| System.Configuration;ConfigXmlDocument;CreateAttribute;(System.String,System.String,System.String);Argument[this];ReturnValue;taint;df-generated | -| System.Configuration;ConfigXmlDocument;CreateAttribute;(System.String,System.String,System.String);Argument[this];ReturnValue;taint;dfc-generated | -| System.Configuration;ConfigXmlDocument;CreateCDataSection;(System.String);Argument[this].SyntheticField[System.Configuration.ConfigXmlDocument._filename];ReturnValue.SyntheticField[System.Configuration.ConfigXmlCDataSection._filename];value;df-generated | | System.Configuration;ConfigXmlDocument;CreateCDataSection;(System.String);Argument[this].SyntheticField[System.Configuration.ConfigXmlDocument._filename];ReturnValue.SyntheticField[System.Configuration.ConfigXmlCDataSection._filename];value;dfc-generated | -| System.Configuration;ConfigXmlDocument;CreateCDataSection;(System.String);Argument[this];ReturnValue;taint;df-generated | -| System.Configuration;ConfigXmlDocument;CreateCDataSection;(System.String);Argument[this];ReturnValue;taint;dfc-generated | -| System.Configuration;ConfigXmlDocument;CreateComment;(System.String);Argument[this].SyntheticField[System.Configuration.ConfigXmlDocument._filename];ReturnValue.SyntheticField[System.Configuration.ConfigXmlComment._filename];value;df-generated | | System.Configuration;ConfigXmlDocument;CreateComment;(System.String);Argument[this].SyntheticField[System.Configuration.ConfigXmlDocument._filename];ReturnValue.SyntheticField[System.Configuration.ConfigXmlComment._filename];value;dfc-generated | -| System.Configuration;ConfigXmlDocument;CreateComment;(System.String);Argument[this];ReturnValue;taint;df-generated | -| System.Configuration;ConfigXmlDocument;CreateComment;(System.String);Argument[this];ReturnValue;taint;dfc-generated | -| System.Configuration;ConfigXmlDocument;CreateElement;(System.String,System.String,System.String);Argument[0];ReturnValue;taint;df-generated | -| System.Configuration;ConfigXmlDocument;CreateElement;(System.String,System.String,System.String);Argument[0];ReturnValue;taint;dfc-generated | -| System.Configuration;ConfigXmlDocument;CreateElement;(System.String,System.String,System.String);Argument[1];ReturnValue;taint;df-generated | -| System.Configuration;ConfigXmlDocument;CreateElement;(System.String,System.String,System.String);Argument[1];ReturnValue;taint;dfc-generated | -| System.Configuration;ConfigXmlDocument;CreateElement;(System.String,System.String,System.String);Argument[2];ReturnValue;taint;df-generated | -| System.Configuration;ConfigXmlDocument;CreateElement;(System.String,System.String,System.String);Argument[2];ReturnValue;taint;dfc-generated | -| System.Configuration;ConfigXmlDocument;CreateElement;(System.String,System.String,System.String);Argument[this].SyntheticField[System.Configuration.ConfigXmlDocument._filename];ReturnValue.SyntheticField[System.Configuration.ConfigXmlElement._filename];value;df-generated | | System.Configuration;ConfigXmlDocument;CreateElement;(System.String,System.String,System.String);Argument[this].SyntheticField[System.Configuration.ConfigXmlDocument._filename];ReturnValue.SyntheticField[System.Configuration.ConfigXmlElement._filename];value;dfc-generated | -| System.Configuration;ConfigXmlDocument;CreateElement;(System.String,System.String,System.String);Argument[this];ReturnValue;taint;df-generated | -| System.Configuration;ConfigXmlDocument;CreateElement;(System.String,System.String,System.String);Argument[this];ReturnValue;taint;dfc-generated | -| System.Configuration;ConfigXmlDocument;CreateSignificantWhitespace;(System.String);Argument[this].SyntheticField[System.Configuration.ConfigXmlDocument._filename];ReturnValue.SyntheticField[System.Configuration.ConfigXmlSignificantWhitespace._filename];value;df-generated | | System.Configuration;ConfigXmlDocument;CreateSignificantWhitespace;(System.String);Argument[this].SyntheticField[System.Configuration.ConfigXmlDocument._filename];ReturnValue.SyntheticField[System.Configuration.ConfigXmlSignificantWhitespace._filename];value;dfc-generated | -| System.Configuration;ConfigXmlDocument;CreateSignificantWhitespace;(System.String);Argument[this];ReturnValue;taint;df-generated | -| System.Configuration;ConfigXmlDocument;CreateSignificantWhitespace;(System.String);Argument[this];ReturnValue;taint;dfc-generated | -| System.Configuration;ConfigXmlDocument;CreateTextNode;(System.String);Argument[this].SyntheticField[System.Configuration.ConfigXmlDocument._filename];ReturnValue.SyntheticField[System.Configuration.ConfigXmlText._filename];value;df-generated | | System.Configuration;ConfigXmlDocument;CreateTextNode;(System.String);Argument[this].SyntheticField[System.Configuration.ConfigXmlDocument._filename];ReturnValue.SyntheticField[System.Configuration.ConfigXmlText._filename];value;dfc-generated | -| System.Configuration;ConfigXmlDocument;CreateTextNode;(System.String);Argument[this];ReturnValue;taint;df-generated | -| System.Configuration;ConfigXmlDocument;CreateTextNode;(System.String);Argument[this];ReturnValue;taint;dfc-generated | -| System.Configuration;ConfigXmlDocument;CreateWhitespace;(System.String);Argument[this].SyntheticField[System.Configuration.ConfigXmlDocument._filename];ReturnValue.SyntheticField[System.Configuration.ConfigXmlWhitespace._filename];value;df-generated | | System.Configuration;ConfigXmlDocument;CreateWhitespace;(System.String);Argument[this].SyntheticField[System.Configuration.ConfigXmlDocument._filename];ReturnValue.SyntheticField[System.Configuration.ConfigXmlWhitespace._filename];value;dfc-generated | -| System.Configuration;ConfigXmlDocument;CreateWhitespace;(System.String);Argument[this];ReturnValue;taint;df-generated | -| System.Configuration;ConfigXmlDocument;CreateWhitespace;(System.String);Argument[this];ReturnValue;taint;dfc-generated | | System.Configuration;ConfigXmlDocument;LoadSingleElement;(System.String,System.Xml.XmlTextReader);Argument[0];Argument[this].SyntheticField[System.Configuration.ConfigXmlDocument._filename];value;dfc-generated | | System.Configuration;ConfigXmlDocument;LoadSingleElement;(System.String,System.Xml.XmlTextReader);Argument[1];Argument[this].SyntheticField[System.Configuration.ConfigXmlDocument._reader];taint;dfc-generated | | System.Configuration;ConfigXmlDocument;LoadSingleElement;(System.String,System.Xml.XmlTextReader);Argument[1];Argument[this];taint;dfc-generated | | System.Configuration;ConfigXmlDocument;LoadSingleElement;(System.String,System.Xml.XmlTextReader);Argument[this].SyntheticField[System.Configuration.ConfigXmlDocument._reader];Argument[this];taint;dfc-generated | -| System.Configuration;ConfigXmlDocument;get_Filename;();Argument[this].SyntheticField[System.Configuration.ConfigXmlDocument._filename];ReturnValue;value;df-generated | | System.Configuration;ConfigXmlDocument;get_Filename;();Argument[this].SyntheticField[System.Configuration.ConfigXmlDocument._filename];ReturnValue;value;dfc-generated | -| System.Configuration;ConfigXmlDocument;get_Filename;();Argument[this];ReturnValue;taint;df-generated | -| System.Configuration;ConfigXmlDocument;get_Filename;();Argument[this];ReturnValue;taint;dfc-generated | | System.Configuration;Configuration;GetSection;(System.String);Argument[this];ReturnValue;taint;df-generated | | System.Configuration;Configuration;GetSectionGroup;(System.String);Argument[this];ReturnValue;taint;df-generated | | System.Configuration;Configuration;get_AppSettings;();Argument[this];ReturnValue;taint;df-generated | @@ -9825,22 +8776,17 @@ summary | System.Configuration;ConfigurationErrorsException;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | | System.Configuration;ConfigurationErrorsException;get_Errors;();Argument[this].SyntheticField[System.Configuration.ConfigurationErrorsException._errors];ReturnValue;value;dfc-generated | | System.Configuration;ConfigurationErrorsException;get_Filename;();Argument[this].SyntheticField[System.Configuration.ConfigurationErrorsException._firstFilename];ReturnValue;value;dfc-generated | -| System.Configuration;ConfigurationErrorsException;get_Filename;();Argument[this].SyntheticField[System.Configuration.ConfigurationException._filename];ReturnValue;value;dfc-generated | | System.Configuration;ConfigurationErrorsException;get_Message;();Argument[this].Property[System.Configuration.ConfigurationErrorsException.Filename];ReturnValue;taint;dfc-generated | | System.Configuration;ConfigurationErrorsException;get_Message;();Argument[this].Property[System.Configuration.ConfigurationException.BareMessage];ReturnValue;value;dfc-generated | -| System.Configuration;ConfigurationErrorsException;get_Message;();Argument[this].Property[System.Configuration.ConfigurationException.Filename];ReturnValue;taint;dfc-generated | | System.Configuration;ConfigurationErrorsException;get_Message;();Argument[this].SyntheticField[System.Configuration.ConfigurationErrorsException._firstFilename];ReturnValue;taint;dfc-generated | -| System.Configuration;ConfigurationErrorsException;get_Message;();Argument[this].SyntheticField[System.Exception._message];ReturnValue;value;dfc-generated | | System.Configuration;ConfigurationException;ConfigurationException;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[0];Argument[this].SyntheticField[System.Configuration.ConfigurationException._filename];taint;dfc-generated | | System.Configuration;ConfigurationException;ConfigurationException;(System.String,System.Exception,System.String,System.Int32);Argument[2];Argument[this].SyntheticField[System.Configuration.ConfigurationException._filename];value;dfc-generated | | System.Configuration;ConfigurationException;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this].SyntheticField[System.Configuration.ConfigurationException._filename];Argument[0];taint;dfc-generated | -| System.Configuration;ConfigurationException;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | | System.Configuration;ConfigurationException;GetXmlNodeFilename;(System.Xml.XmlNode);Argument[0].Element;ReturnValue;taint;df-generated | | System.Configuration;ConfigurationException;get_BareMessage;();Argument[this].Property[System.Exception.Message];ReturnValue;value;dfc-generated | | System.Configuration;ConfigurationException;get_Filename;();Argument[this].SyntheticField[System.Configuration.ConfigurationException._filename];ReturnValue;value;dfc-generated | | System.Configuration;ConfigurationException;get_Message;();Argument[this].Property[System.Configuration.ConfigurationException.BareMessage];ReturnValue;value;dfc-generated | | System.Configuration;ConfigurationException;get_Message;();Argument[this].Property[System.Configuration.ConfigurationException.Filename];ReturnValue;taint;dfc-generated | -| System.Configuration;ConfigurationException;get_Message;();Argument[this].SyntheticField[System.Exception._message];ReturnValue;value;dfc-generated | | System.Configuration;ConfigurationFileMap;Clone;();Argument[this];ReturnValue;value;dfc-generated | | System.Configuration;ConfigurationLocation;OpenConfiguration;();Argument[this];ReturnValue;taint;df-generated | | System.Configuration;ConfigurationLocationCollection;get_Item;(System.Int32);Argument[this].Property[System.Collections.ReadOnlyCollectionBase.InnerList].Element;ReturnValue;value;dfc-generated | @@ -9877,7 +8823,6 @@ summary | System.Configuration;ConfigurationPropertyCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Configuration;ConfigurationPropertyCollection;get_Item;(System.String);Argument[this].SyntheticField[System.Configuration.ConfigurationPropertyCollection._items].Element;ReturnValue;value;dfc-generated | | System.Configuration;ConfigurationPropertyCollection;get_SyncRoot;();Argument[this].SyntheticField[System.Configuration.ConfigurationPropertyCollection._items];ReturnValue;value;dfc-generated | -| System.Configuration;ConfigurationPropertyCollection;get_SyncRoot;();Argument[this];ReturnValue;value;dfc-generated | | System.Configuration;ConfigurationSection;DeserializeSection;(System.Xml.XmlReader);Argument[0];Argument[this];taint;df-generated | | System.Configuration;ConfigurationSection;GetRuntimeObject;();Argument[this];ReturnValue;value;dfc-generated | | System.Configuration;ConfigurationSection;SerializeSection;(System.Configuration.ConfigurationElement,System.String,System.Configuration.ConfigurationSaveMode);Argument[this];ReturnValue;taint;df-generated | @@ -9909,10 +8854,7 @@ summary | System.Configuration;ConnectionStringSettingsCollection;BaseAdd;(System.Int32,System.Configuration.ConfigurationElement);Argument[1];Argument[this];taint;df-generated | | System.Configuration;ConnectionStringSettingsCollection;BaseAdd;(System.Int32,System.Configuration.ConfigurationElement);Argument[this];Argument[1];taint;df-generated | | System.Configuration;ConnectionStringSettingsCollection;Clear;();Argument[this].WithoutElement;Argument[this];value;manual | -| System.Configuration;ConnectionStringSettingsCollection;GetElementKey;(System.Configuration.ConfigurationElement);Argument[0].Property[System.Configuration.ConnectionStringSettings.Name];ReturnValue;value;df-generated | | System.Configuration;ConnectionStringSettingsCollection;GetElementKey;(System.Configuration.ConfigurationElement);Argument[0].Property[System.Configuration.ConnectionStringSettings.Name];ReturnValue;value;dfc-generated | -| System.Configuration;ConnectionStringSettingsCollection;GetElementKey;(System.Configuration.ConfigurationElement);Argument[0];ReturnValue;taint;df-generated | -| System.Configuration;ConnectionStringSettingsCollection;GetElementKey;(System.Configuration.ConfigurationElement);Argument[0];ReturnValue;taint;dfc-generated | | System.Configuration;ConnectionStringSettingsCollection;Remove;(System.Configuration.ConnectionStringSettings);Argument[0];Argument[this];taint;df-generated | | System.Configuration;ConnectionStringSettingsCollection;Remove;(System.String);Argument[0];Argument[this];taint;df-generated | | System.Configuration;ConnectionStringSettingsCollection;get_Item;(System.Int32);Argument[this];ReturnValue;taint;df-generated | @@ -9937,16 +8879,12 @@ summary | System.Configuration;ExeConfigurationFileMap;Clone;();Argument[this].Property[System.Configuration.ExeConfigurationFileMap.ExeConfigFilename];ReturnValue.Property[System.Configuration.ExeConfigurationFileMap.ExeConfigFilename];value;dfc-generated | | System.Configuration;ExeConfigurationFileMap;Clone;();Argument[this].Property[System.Configuration.ExeConfigurationFileMap.LocalUserConfigFilename];ReturnValue.Property[System.Configuration.ExeConfigurationFileMap.LocalUserConfigFilename];value;dfc-generated | | System.Configuration;ExeConfigurationFileMap;Clone;();Argument[this].Property[System.Configuration.ExeConfigurationFileMap.RoamingUserConfigFilename];ReturnValue.Property[System.Configuration.ExeConfigurationFileMap.RoamingUserConfigFilename];value;dfc-generated | -| System.Configuration;ExeConfigurationFileMap;Clone;();Argument[this];ReturnValue;value;dfc-generated | | System.Configuration;GenericEnumConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Configuration;GenericEnumConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;GenericEnumConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.Configuration;GenericEnumConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Configuration;GenericEnumConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.Configuration;GenericEnumConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Configuration;GenericEnumConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;GenericEnumConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.Configuration;GenericEnumConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Configuration;IApplicationSettingsProvider;GetPreviousVersion;(System.Configuration.SettingsContext,System.Configuration.SettingsProperty);Argument[this];ReturnValue;taint;df-generated | | System.Configuration;IConfigurationSectionHandler;Create;(System.Object,System.Object,System.Xml.XmlNode);Argument[0].Element;ReturnValue.Element;value;dfc-generated | | System.Configuration;IdnElement;get_Properties;();Argument[this];ReturnValue;taint;df-generated | @@ -9958,31 +8896,22 @@ summary | System.Configuration;InfiniteIntConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Configuration;InfiniteIntConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;InfiniteIntConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.Configuration;InfiniteIntConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Configuration;InfiniteIntConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.Configuration;InfiniteIntConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Configuration;InfiniteIntConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;InfiniteIntConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.Configuration;InfiniteIntConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Configuration;InfiniteTimeSpanConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Configuration;InfiniteTimeSpanConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;InfiniteTimeSpanConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.Configuration;InfiniteTimeSpanConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Configuration;InfiniteTimeSpanConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.Configuration;InfiniteTimeSpanConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Configuration;InfiniteTimeSpanConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;InfiniteTimeSpanConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.Configuration;InfiniteTimeSpanConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Configuration;IntegerValidator;Validate;(System.Object);Argument[0];Argument[this];taint;df-generated | | System.Configuration;IntegerValidatorAttribute;get_ValidatorInstance;();Argument[this];ReturnValue;taint;df-generated | | System.Configuration;IriParsingElement;get_Properties;();Argument[this];ReturnValue;taint;df-generated | | System.Configuration;KeyValueConfigurationCollection;Add;(System.Configuration.KeyValueConfigurationElement);Argument[0];Argument[this];taint;df-generated | | System.Configuration;KeyValueConfigurationCollection;Add;(System.Configuration.KeyValueConfigurationElement);Argument[this];Argument[0];taint;df-generated | | System.Configuration;KeyValueConfigurationCollection;Clear;();Argument[this].WithoutElement;Argument[this];value;manual | -| System.Configuration;KeyValueConfigurationCollection;GetElementKey;(System.Configuration.ConfigurationElement);Argument[0].Property[System.Configuration.KeyValueConfigurationElement.Key];ReturnValue;value;df-generated | | System.Configuration;KeyValueConfigurationCollection;GetElementKey;(System.Configuration.ConfigurationElement);Argument[0].Property[System.Configuration.KeyValueConfigurationElement.Key];ReturnValue;value;dfc-generated | -| System.Configuration;KeyValueConfigurationCollection;GetElementKey;(System.Configuration.ConfigurationElement);Argument[0];ReturnValue;taint;df-generated | -| System.Configuration;KeyValueConfigurationCollection;GetElementKey;(System.Configuration.ConfigurationElement);Argument[0];ReturnValue;taint;dfc-generated | | System.Configuration;KeyValueConfigurationCollection;Remove;(System.String);Argument[0];Argument[this];taint;df-generated | | System.Configuration;KeyValueConfigurationCollection;get_AllKeys;();Argument[this];ReturnValue;taint;df-generated | | System.Configuration;KeyValueConfigurationCollection;get_Item;(System.String);Argument[this];ReturnValue;taint;df-generated | @@ -9998,10 +8927,7 @@ summary | System.Configuration;NameValueConfigurationCollection;Add;(System.Configuration.NameValueConfigurationElement);Argument[0];Argument[this];taint;df-generated | | System.Configuration;NameValueConfigurationCollection;Add;(System.Configuration.NameValueConfigurationElement);Argument[this];Argument[0];taint;df-generated | | System.Configuration;NameValueConfigurationCollection;Clear;();Argument[this].WithoutElement;Argument[this];value;manual | -| System.Configuration;NameValueConfigurationCollection;GetElementKey;(System.Configuration.ConfigurationElement);Argument[0].Property[System.Configuration.NameValueConfigurationElement.Name];ReturnValue;value;df-generated | | System.Configuration;NameValueConfigurationCollection;GetElementKey;(System.Configuration.ConfigurationElement);Argument[0].Property[System.Configuration.NameValueConfigurationElement.Name];ReturnValue;value;dfc-generated | -| System.Configuration;NameValueConfigurationCollection;GetElementKey;(System.Configuration.ConfigurationElement);Argument[0];ReturnValue;taint;df-generated | -| System.Configuration;NameValueConfigurationCollection;GetElementKey;(System.Configuration.ConfigurationElement);Argument[0];ReturnValue;taint;dfc-generated | | System.Configuration;NameValueConfigurationCollection;Remove;(System.Configuration.NameValueConfigurationElement);Argument[0];Argument[this];taint;df-generated | | System.Configuration;NameValueConfigurationCollection;Remove;(System.String);Argument[0];Argument[this];taint;df-generated | | System.Configuration;NameValueConfigurationCollection;get_AllKeys;();Argument[this];ReturnValue;taint;df-generated | @@ -10035,10 +8961,7 @@ summary | System.Configuration;ProviderSettingsCollection;Add;(System.Configuration.ProviderSettings);Argument[0];Argument[this];taint;df-generated | | System.Configuration;ProviderSettingsCollection;Add;(System.Configuration.ProviderSettings);Argument[this];Argument[0];taint;df-generated | | System.Configuration;ProviderSettingsCollection;Clear;();Argument[this].WithoutElement;Argument[this];value;manual | -| System.Configuration;ProviderSettingsCollection;GetElementKey;(System.Configuration.ConfigurationElement);Argument[0].Property[System.Configuration.ProviderSettings.Name];ReturnValue;value;df-generated | | System.Configuration;ProviderSettingsCollection;GetElementKey;(System.Configuration.ConfigurationElement);Argument[0].Property[System.Configuration.ProviderSettings.Name];ReturnValue;value;dfc-generated | -| System.Configuration;ProviderSettingsCollection;GetElementKey;(System.Configuration.ConfigurationElement);Argument[0];ReturnValue;taint;df-generated | -| System.Configuration;ProviderSettingsCollection;GetElementKey;(System.Configuration.ConfigurationElement);Argument[0];ReturnValue;taint;dfc-generated | | System.Configuration;ProviderSettingsCollection;Remove;(System.String);Argument[0];Argument[this];taint;df-generated | | System.Configuration;ProviderSettingsCollection;get_Item;(System.Int32);Argument[this];ReturnValue;taint;df-generated | | System.Configuration;ProviderSettingsCollection;get_Item;(System.String);Argument[this];ReturnValue;taint;df-generated | @@ -10051,10 +8974,7 @@ summary | System.Configuration;RegexStringValidatorAttribute;get_ValidatorInstance;();Argument[this];ReturnValue;taint;df-generated | | System.Configuration;SchemeSettingElement;get_Name;();Argument[this];ReturnValue;taint;df-generated | | System.Configuration;SchemeSettingElement;get_Properties;();Argument[this];ReturnValue;taint;df-generated | -| System.Configuration;SchemeSettingElementCollection;GetElementKey;(System.Configuration.ConfigurationElement);Argument[0].Property[System.Configuration.SchemeSettingElement.Name];ReturnValue;value;df-generated | | System.Configuration;SchemeSettingElementCollection;GetElementKey;(System.Configuration.ConfigurationElement);Argument[0].Property[System.Configuration.SchemeSettingElement.Name];ReturnValue;value;dfc-generated | -| System.Configuration;SchemeSettingElementCollection;GetElementKey;(System.Configuration.ConfigurationElement);Argument[0];ReturnValue;taint;df-generated | -| System.Configuration;SchemeSettingElementCollection;GetElementKey;(System.Configuration.ConfigurationElement);Argument[0];ReturnValue;taint;dfc-generated | | System.Configuration;SchemeSettingElementCollection;get_Item;(System.Int32);Argument[this];ReturnValue;taint;df-generated | | System.Configuration;SchemeSettingElementCollection;get_Item;(System.String);Argument[this];ReturnValue;taint;df-generated | | System.Configuration;SectionInformation;GetParentSection;();Argument[this];ReturnValue;taint;df-generated | @@ -10077,10 +8997,7 @@ summary | System.Configuration;SettingElementCollection;Add;(System.Configuration.SettingElement);Argument[this];Argument[0];taint;df-generated | | System.Configuration;SettingElementCollection;Clear;();Argument[this].WithoutElement;Argument[this];value;manual | | System.Configuration;SettingElementCollection;Get;(System.String);Argument[this];ReturnValue;taint;df-generated | -| System.Configuration;SettingElementCollection;GetElementKey;(System.Configuration.ConfigurationElement);Argument[0].Property[System.Configuration.SettingElement.Name];ReturnValue;value;df-generated | | System.Configuration;SettingElementCollection;GetElementKey;(System.Configuration.ConfigurationElement);Argument[0].Property[System.Configuration.SettingElement.Name];ReturnValue;value;dfc-generated | -| System.Configuration;SettingElementCollection;GetElementKey;(System.Configuration.ConfigurationElement);Argument[0];ReturnValue;taint;df-generated | -| System.Configuration;SettingElementCollection;GetElementKey;(System.Configuration.ConfigurationElement);Argument[0];ReturnValue;taint;dfc-generated | | System.Configuration;SettingElementCollection;Remove;(System.Configuration.SettingElement);Argument[0];Argument[this];taint;df-generated | | System.Configuration;SettingValueElement;DeserializeElement;(System.Xml.XmlReader,System.Boolean);Argument[0];Argument[this];taint;df-generated | | System.Configuration;SettingValueElement;Reset;(System.Configuration.ConfigurationElement);Argument[0];Argument[this];taint;df-generated | @@ -10129,7 +9046,6 @@ summary | System.Configuration;SettingsSavingEventHandler;BeginInvoke;(System.Object,System.ComponentModel.CancelEventArgs,System.AsyncCallback,System.Object);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Configuration;SingleTagSectionHandler;Create;(System.Object,System.Object,System.Xml.XmlNode);Argument[0].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;dfc-generated | | System.Configuration;SingleTagSectionHandler;Create;(System.Object,System.Object,System.Xml.XmlNode);Argument[0].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;dfc-generated | -| System.Configuration;SingleTagSectionHandler;Create;(System.Object,System.Object,System.Xml.XmlNode);Argument[0].Element;ReturnValue.Element;value;dfc-generated | | System.Configuration;StringValidator;StringValidator;(System.Int32,System.Int32,System.String);Argument[2];Argument[this];taint;df-generated | | System.Configuration;StringValidator;Validate;(System.Object);Argument[0];Argument[this];taint;df-generated | | System.Configuration;StringValidatorAttribute;get_ValidatorInstance;();Argument[this];ReturnValue;taint;df-generated | @@ -10138,39 +9054,27 @@ summary | System.Configuration;TimeSpanMinutesConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Configuration;TimeSpanMinutesConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;TimeSpanMinutesConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.Configuration;TimeSpanMinutesConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Configuration;TimeSpanMinutesConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.Configuration;TimeSpanMinutesConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Configuration;TimeSpanMinutesConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;TimeSpanMinutesConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.Configuration;TimeSpanMinutesConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Configuration;TimeSpanMinutesOrInfiniteConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Configuration;TimeSpanMinutesOrInfiniteConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;TimeSpanMinutesOrInfiniteConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.Configuration;TimeSpanMinutesOrInfiniteConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Configuration;TimeSpanMinutesOrInfiniteConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.Configuration;TimeSpanMinutesOrInfiniteConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Configuration;TimeSpanMinutesOrInfiniteConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;TimeSpanMinutesOrInfiniteConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.Configuration;TimeSpanMinutesOrInfiniteConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Configuration;TimeSpanSecondsConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Configuration;TimeSpanSecondsConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;TimeSpanSecondsConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.Configuration;TimeSpanSecondsConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Configuration;TimeSpanSecondsConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.Configuration;TimeSpanSecondsConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Configuration;TimeSpanSecondsConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;TimeSpanSecondsConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.Configuration;TimeSpanSecondsConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Configuration;TimeSpanSecondsOrInfiniteConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Configuration;TimeSpanSecondsOrInfiniteConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;TimeSpanSecondsOrInfiniteConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.Configuration;TimeSpanSecondsOrInfiniteConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Configuration;TimeSpanSecondsOrInfiniteConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.Configuration;TimeSpanSecondsOrInfiniteConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Configuration;TimeSpanSecondsOrInfiniteConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;TimeSpanSecondsOrInfiniteConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.Configuration;TimeSpanSecondsOrInfiniteConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Configuration;TimeSpanValidator;TimeSpanValidator;(System.TimeSpan,System.TimeSpan,System.Boolean,System.Int64);Argument[0];Argument[this];taint;df-generated | | System.Configuration;TimeSpanValidator;TimeSpanValidator;(System.TimeSpan,System.TimeSpan,System.Boolean,System.Int64);Argument[1];Argument[this];taint;df-generated | | System.Configuration;TimeSpanValidator;Validate;(System.Object);Argument[0];Argument[this];taint;df-generated | @@ -10178,12 +9082,9 @@ summary | System.Configuration;TypeNameConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Configuration;TypeNameConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;TypeNameConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.Configuration;TypeNameConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Configuration;TypeNameConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.Configuration;TypeNameConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Configuration;TypeNameConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;TypeNameConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.Configuration;TypeNameConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Configuration;UriSection;get_Idn;();Argument[this];ReturnValue;taint;df-generated | | System.Configuration;UriSection;get_IriParsing;();Argument[this];ReturnValue;taint;df-generated | | System.Configuration;UriSection;get_Properties;();Argument[this];ReturnValue;taint;df-generated | @@ -10192,12 +9093,9 @@ summary | System.Configuration;WhiteSpaceTrimStringConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Configuration;WhiteSpaceTrimStringConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;WhiteSpaceTrimStringConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.Configuration;WhiteSpaceTrimStringConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Configuration;WhiteSpaceTrimStringConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.Configuration;WhiteSpaceTrimStringConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Configuration;WhiteSpaceTrimStringConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;WhiteSpaceTrimStringConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.Configuration;WhiteSpaceTrimStringConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Data.Common;DBDataPermission;Copy;();Argument[this];ReturnValue;value;dfc-generated | | System.Data.Common;DBDataPermission;Intersect;(System.Security.IPermission);Argument[0];ReturnValue;value;dfc-generated | | System.Data.Common;DBDataPermission;Union;(System.Security.IPermission);Argument[this];ReturnValue;taint;df-generated | @@ -10206,13 +9104,10 @@ summary | System.Data.Common;DataAdapter;FillSchema;(System.Data.DataTable,System.Data.SchemaType,System.Data.IDataReader);Argument[0];ReturnValue;value;dfc-generated | | System.Data.Common;DataAdapter;GetFillParameters;();Argument[this];ReturnValue;taint;df-generated | | System.Data.Common;DataAdapter;add_FillError;(System.Data.FillErrorEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Data.Common;DataAdapter;get_TableMappings;();Argument[this].Property[System.Data.Common.DataAdapter.TableMappings];ReturnValue;value;df-generated | | System.Data.Common;DataAdapter;get_TableMappings;();Argument[this].Property[System.Data.Common.DataAdapter.TableMappings];ReturnValue;value;dfc-generated | | System.Data.Common;DataAdapter;get_TableMappings;();Argument[this];ReturnValue;taint;df-generated | -| System.Data.Common;DataAdapter;get_TableMappings;();Argument[this];ReturnValue;taint;dfc-generated | | System.Data.Common;DataAdapter;remove_FillError;(System.Data.FillErrorEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Data.Common;DataColumnMapping;Clone;();Argument[this].SyntheticField[System.Data.Common.DataColumnMapping._sourceColumnName];ReturnValue.SyntheticField[System.Data.Common.DataColumnMapping._sourceColumnName];value;dfc-generated | -| System.Data.Common;DataColumnMapping;Clone;();Argument[this];ReturnValue;value;dfc-generated | | System.Data.Common;DataColumnMapping;DataColumnMapping;(System.String,System.String);Argument[0];Argument[this].SyntheticField[System.Data.Common.DataColumnMapping._sourceColumnName];value;dfc-generated | | System.Data.Common;DataColumnMapping;GetDataColumnBySchemaAction;(System.Data.DataTable,System.Type,System.Data.MissingSchemaAction);Argument[0];ReturnValue;taint;df-generated | | System.Data.Common;DataColumnMapping;GetDataColumnBySchemaAction;(System.String,System.String,System.Data.DataTable,System.Type,System.Data.MissingSchemaAction);Argument[2];ReturnValue;taint;df-generated | @@ -10241,7 +9136,6 @@ summary | System.Data.Common;DataColumnMappingCollection;set_Item;(System.String,System.Data.Common.DataColumnMapping);Argument[1];Argument[this].Element;value;manual | | System.Data.Common;DataColumnMappingCollection;set_Item;(System.String,System.Object);Argument[1];Argument[this].Element;value;manual | | System.Data.Common;DataTableMapping;Clone;();Argument[this].SyntheticField[System.Data.Common.DataTableMapping._sourceTableName];ReturnValue.SyntheticField[System.Data.Common.DataTableMapping._sourceTableName];value;dfc-generated | -| System.Data.Common;DataTableMapping;Clone;();Argument[this];ReturnValue;value;dfc-generated | | System.Data.Common;DataTableMapping;DataTableMapping;(System.String,System.String);Argument[0];Argument[this].SyntheticField[System.Data.Common.DataTableMapping._sourceTableName];value;dfc-generated | | System.Data.Common;DataTableMapping;DataTableMapping;(System.String,System.String,System.Data.Common.DataColumnMapping[]);Argument[0];Argument[this].SyntheticField[System.Data.Common.DataTableMapping._sourceTableName];value;dfc-generated | | System.Data.Common;DataTableMapping;DataTableMapping;(System.String,System.String,System.Data.Common.DataColumnMapping[]);Argument[2].Element;Argument[this].Property[System.Data.Common.DataTableMapping.ColumnMappings].Element;value;dfc-generated | @@ -10377,11 +9271,9 @@ summary | System.Data.Common;DbParameterCollection;Add;(System.Object);Argument[0];Argument[this].Element;value;manual | | System.Data.Common;DbParameterCollection;AddRange;(System.Array);Argument[0].Element;Argument[this].Element;value;manual | | System.Data.Common;DbParameterCollection;Clear;();Argument[this].WithoutElement;Argument[this];value;manual | -| System.Data.Common;DbParameterCollection;Contains;(System.Object);Argument[0];Argument[this];taint;df-generated | | System.Data.Common;DbParameterCollection;CopyTo;(System.Array,System.Int32);Argument[this].Element;Argument[0].Element;value;manual | | System.Data.Common;DbParameterCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Data.Common;DbParameterCollection;Insert;(System.Int32,System.Object);Argument[1];Argument[this].Element;value;manual | -| System.Data.Common;DbParameterCollection;Remove;(System.Object);Argument[0];Argument[this];taint;df-generated | | System.Data.Common;DbParameterCollection;SetParameter;(System.Int32,System.Data.Common.DbParameter);Argument[this];Argument[1];taint;df-generated | | System.Data.Common;DbParameterCollection;SetParameter;(System.String,System.Data.Common.DbParameter);Argument[this];Argument[1];taint;df-generated | | System.Data.Common;DbParameterCollection;get_Item;(System.Int32);Argument[this].Element;ReturnValue;value;manual | @@ -11196,8 +10088,6 @@ summary | System.Data;DataSet;GetList;();Argument[this];ReturnValue;taint;df-generated | | System.Data;DataSet;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | | System.Data;DataSet;Load;(System.Data.IDataReader,System.Data.LoadOption,System.Data.FillErrorEventHandler,System.Data.DataTable[]);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| System.Data;DataSet;ReadXml;(System.Xml.XmlReader);Argument[0];Argument[this];taint;df-generated | -| System.Data;DataSet;WriteXml;(System.Xml.XmlWriter);Argument[this];Argument[0];taint;df-generated | | System.Data;DataSet;WriteXmlSchema;(System.IO.Stream,System.Converter);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Data;DataSet;WriteXmlSchema;(System.IO.TextWriter,System.Converter);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Data;DataSet;WriteXmlSchema;(System.String,System.Converter);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | @@ -11209,7 +10099,6 @@ summary | System.Data;DataSet;get_Tables;();Argument[this];ReturnValue;taint;df-generated | | System.Data;DataSet;remove_Initialized;(System.EventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Data;DataSet;remove_MergeFailed;(System.Data.MergeFailedEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Data;DataSysDescriptionAttribute;get_Description;();Argument[this].Property[System.ComponentModel.DescriptionAttribute.DescriptionValue];ReturnValue;value;dfc-generated | | System.Data;DataSysDescriptionAttribute;get_Description;();Argument[this].Property[System.ComponentModel.DescriptionAttribute.Description];Argument[this].Property[System.ComponentModel.DescriptionAttribute.DescriptionValue];value;dfc-generated | | System.Data;DataSysDescriptionAttribute;get_Description;();Argument[this].Property[System.ComponentModel.DescriptionAttribute.Description];ReturnValue;value;dfc-generated | | System.Data;DataTable;Clone;();Argument[this];ReturnValue;taint;df-generated | @@ -11217,10 +10106,7 @@ summary | System.Data;DataTable;GetChanges;();Argument[this];ReturnValue;taint;df-generated | | System.Data;DataTable;GetChanges;(System.Data.DataRowState);Argument[this];ReturnValue;taint;df-generated | | System.Data;DataTable;GetErrors;();Argument[this];ReturnValue;taint;df-generated | -| System.Data;DataTable;GetList;();Argument[this].Property[System.Data.DataTable.DefaultView];ReturnValue;value;df-generated | | System.Data;DataTable;GetList;();Argument[this].Property[System.Data.DataTable.DefaultView];ReturnValue;value;dfc-generated | -| System.Data;DataTable;GetList;();Argument[this];ReturnValue;taint;df-generated | -| System.Data;DataTable;GetList;();Argument[this];ReturnValue;taint;dfc-generated | | System.Data;DataTable;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | | System.Data;DataTable;Load;(System.Data.IDataReader,System.Data.LoadOption,System.Data.FillErrorEventHandler);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Data;DataTable;LoadDataRow;(System.Object[],System.Boolean);Argument[0];Argument[this].Property[System.Data.DataTable.Rows].Element;value;dfc-generated | @@ -11237,12 +10123,10 @@ summary | System.Data;DataTable;OnTableCleared;(System.Data.DataTableClearEventArgs);Argument[0];Argument[this];taint;df-generated | | System.Data;DataTable;OnTableClearing;(System.Data.DataTableClearEventArgs);Argument[0];Argument[this];taint;df-generated | | System.Data;DataTable;OnTableNewRow;(System.Data.DataTableNewRowEventArgs);Argument[0];Argument[this];taint;df-generated | -| System.Data;DataTable;ReadXml;(System.Xml.XmlReader);Argument[0];Argument[this];taint;df-generated | | System.Data;DataTable;Select;();Argument[this];ReturnValue;taint;df-generated | | System.Data;DataTable;Select;(System.String);Argument[this];ReturnValue;taint;df-generated | | System.Data;DataTable;Select;(System.String,System.String);Argument[this];ReturnValue;taint;df-generated | | System.Data;DataTable;Select;(System.String,System.String,System.Data.DataViewRowState);Argument[this];ReturnValue;taint;df-generated | -| System.Data;DataTable;WriteXml;(System.Xml.XmlWriter);Argument[this];Argument[0];taint;df-generated | | System.Data;DataTable;add_ColumnChanged;(System.Data.DataColumnChangeEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Data;DataTable;add_ColumnChanging;(System.Data.DataColumnChangeEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Data;DataTable;add_Initialized;(System.EventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | @@ -11321,12 +10205,7 @@ summary | System.Data;DataView;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Data;DataView;GetItemProperties;(System.ComponentModel.PropertyDescriptor[]);Argument[0].Element;ReturnValue;taint;df-generated | | System.Data;DataView;GetItemProperties;(System.ComponentModel.PropertyDescriptor[]);Argument[this];ReturnValue;taint;df-generated | -| System.Data;DataView;GetListName;(System.ComponentModel.PropertyDescriptor[]);Argument[0].Element;ReturnValue;taint;df-generated | -| System.Data;DataView;GetListName;(System.ComponentModel.PropertyDescriptor[]);Argument[0].Element;ReturnValue;taint;dfc-generated | -| System.Data;DataView;GetListName;(System.ComponentModel.PropertyDescriptor[]);Argument[this].SyntheticField[System.Data.DataView._table].Property[System.Data.DataTable.TableName];ReturnValue;value;df-generated | | System.Data;DataView;GetListName;(System.ComponentModel.PropertyDescriptor[]);Argument[this].SyntheticField[System.Data.DataView._table].Property[System.Data.DataTable.TableName];ReturnValue;value;dfc-generated | -| System.Data;DataView;GetListName;(System.ComponentModel.PropertyDescriptor[]);Argument[this];ReturnValue;taint;df-generated | -| System.Data;DataView;GetListName;(System.ComponentModel.PropertyDescriptor[]);Argument[this];ReturnValue;taint;dfc-generated | | System.Data;DataView;IndexListChanged;(System.Object,System.ComponentModel.ListChangedEventArgs);Argument[1];Argument[this];taint;df-generated | | System.Data;DataView;Insert;(System.Int32,System.Object);Argument[1];Argument[this].Element;value;manual | | System.Data;DataView;OnListChanged;(System.ComponentModel.ListChangedEventArgs);Argument[0];Argument[this];taint;df-generated | @@ -11384,34 +10263,24 @@ summary | System.Data;EnumerableRowCollectionExtensions;Cast;(System.Data.EnumerableRowCollection);Argument[0].Element;ReturnValue.Element;value;manual | | System.Data;EnumerableRowCollectionExtensions;OrderBy;(System.Data.EnumerableRowCollection,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;EnumerableRowCollectionExtensions;OrderBy;(System.Data.EnumerableRowCollection,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Data;EnumerableRowCollectionExtensions;OrderBy;(System.Data.EnumerableRowCollection,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;EnumerableRowCollectionExtensions;OrderBy;(System.Data.EnumerableRowCollection,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;EnumerableRowCollectionExtensions;OrderBy;(System.Data.EnumerableRowCollection,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Data;EnumerableRowCollectionExtensions;OrderBy;(System.Data.EnumerableRowCollection,System.Func,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;EnumerableRowCollectionExtensions;OrderByDescending;(System.Data.EnumerableRowCollection,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;EnumerableRowCollectionExtensions;OrderByDescending;(System.Data.EnumerableRowCollection,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Data;EnumerableRowCollectionExtensions;OrderByDescending;(System.Data.EnumerableRowCollection,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;EnumerableRowCollectionExtensions;OrderByDescending;(System.Data.EnumerableRowCollection,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;EnumerableRowCollectionExtensions;OrderByDescending;(System.Data.EnumerableRowCollection,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Data;EnumerableRowCollectionExtensions;OrderByDescending;(System.Data.EnumerableRowCollection,System.Func,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;EnumerableRowCollectionExtensions;Select;(System.Data.EnumerableRowCollection,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;EnumerableRowCollectionExtensions;Select;(System.Data.EnumerableRowCollection,System.Func);Argument[1].ReturnValue;ReturnValue.Element;value;manual | -| System.Data;EnumerableRowCollectionExtensions;Select;(System.Data.EnumerableRowCollection,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;EnumerableRowCollectionExtensions;ThenBy;(System.Data.OrderedEnumerableRowCollection,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;EnumerableRowCollectionExtensions;ThenBy;(System.Data.OrderedEnumerableRowCollection,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Data;EnumerableRowCollectionExtensions;ThenBy;(System.Data.OrderedEnumerableRowCollection,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;EnumerableRowCollectionExtensions;ThenBy;(System.Data.OrderedEnumerableRowCollection,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;EnumerableRowCollectionExtensions;ThenBy;(System.Data.OrderedEnumerableRowCollection,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Data;EnumerableRowCollectionExtensions;ThenBy;(System.Data.OrderedEnumerableRowCollection,System.Func,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;EnumerableRowCollectionExtensions;ThenByDescending;(System.Data.OrderedEnumerableRowCollection,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;EnumerableRowCollectionExtensions;ThenByDescending;(System.Data.OrderedEnumerableRowCollection,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Data;EnumerableRowCollectionExtensions;ThenByDescending;(System.Data.OrderedEnumerableRowCollection,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;EnumerableRowCollectionExtensions;ThenByDescending;(System.Data.OrderedEnumerableRowCollection,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;EnumerableRowCollectionExtensions;ThenByDescending;(System.Data.OrderedEnumerableRowCollection,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Data;EnumerableRowCollectionExtensions;ThenByDescending;(System.Data.OrderedEnumerableRowCollection,System.Func,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;EnumerableRowCollectionExtensions;Where;(System.Data.EnumerableRowCollection,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;EnumerableRowCollectionExtensions;Where;(System.Data.EnumerableRowCollection,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Data;EnumerableRowCollectionExtensions;Where;(System.Data.EnumerableRowCollection,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;FillErrorEventArgs;FillErrorEventArgs;(System.Data.DataTable,System.Object[]);Argument[0];Argument[this].SyntheticField[System.Data.FillErrorEventArgs._dataTable];value;dfc-generated | | System.Data;FillErrorEventArgs;FillErrorEventArgs;(System.Data.DataTable,System.Object[]);Argument[1];Argument[this].SyntheticField[System.Data.FillErrorEventArgs._values];value;dfc-generated | | System.Data;FillErrorEventArgs;get_DataTable;();Argument[this].SyntheticField[System.Data.FillErrorEventArgs._dataTable];ReturnValue;value;dfc-generated | @@ -11473,22 +10342,16 @@ summary | System.Data;TypedTableBaseExtensions;ElementAtOrDefault;(System.Data.TypedTableBase,System.Int32);Argument[0].Element;ReturnValue;value;manual | | System.Data;TypedTableBaseExtensions;OrderBy;(System.Data.TypedTableBase,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;TypedTableBaseExtensions;OrderBy;(System.Data.TypedTableBase,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Data;TypedTableBaseExtensions;OrderBy;(System.Data.TypedTableBase,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;TypedTableBaseExtensions;OrderBy;(System.Data.TypedTableBase,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;TypedTableBaseExtensions;OrderBy;(System.Data.TypedTableBase,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Data;TypedTableBaseExtensions;OrderBy;(System.Data.TypedTableBase,System.Func,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;TypedTableBaseExtensions;OrderByDescending;(System.Data.TypedTableBase,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;TypedTableBaseExtensions;OrderByDescending;(System.Data.TypedTableBase,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Data;TypedTableBaseExtensions;OrderByDescending;(System.Data.TypedTableBase,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;TypedTableBaseExtensions;OrderByDescending;(System.Data.TypedTableBase,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;TypedTableBaseExtensions;OrderByDescending;(System.Data.TypedTableBase,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Data;TypedTableBaseExtensions;OrderByDescending;(System.Data.TypedTableBase,System.Func,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;TypedTableBaseExtensions;Select;(System.Data.TypedTableBase,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;TypedTableBaseExtensions;Select;(System.Data.TypedTableBase,System.Func);Argument[1].ReturnValue;ReturnValue.Element;value;manual | -| System.Data;TypedTableBaseExtensions;Select;(System.Data.TypedTableBase,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;TypedTableBaseExtensions;Where;(System.Data.TypedTableBase,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;TypedTableBaseExtensions;Where;(System.Data.TypedTableBase,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Data;TypedTableBaseExtensions;Where;(System.Data.TypedTableBase,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;UniqueConstraint;UniqueConstraint;(System.Data.DataColumn);Argument[0];Argument[this];taint;df-generated | | System.Data;UniqueConstraint;UniqueConstraint;(System.Data.DataColumn,System.Boolean);Argument[0];Argument[this];taint;df-generated | | System.Data;UniqueConstraint;UniqueConstraint;(System.Data.DataColumn[]);Argument[0].Element;Argument[this];taint;df-generated | @@ -11514,13 +10377,9 @@ summary | System.Diagnostics.CodeAnalysis;RequiresUnreferencedCodeAttribute;RequiresUnreferencedCodeAttribute;(System.String);Argument[0];Argument[this].Property[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute.Message];value;dfc-generated | | System.Diagnostics.Contracts;Contract;Exists;(System.Int32,System.Int32,System.Predicate);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Diagnostics.Contracts;Contract;Exists;(System.Collections.Generic.IEnumerable,System.Predicate);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | -| System.Diagnostics.Contracts;Contract;Exists;(System.Collections.Generic.IEnumerable,System.Predicate);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | -| System.Diagnostics.Contracts;Contract;Exists;(System.Collections.Generic.IEnumerable,System.Predicate);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Diagnostics.Contracts;Contract;Exists;(System.Collections.Generic.IEnumerable,System.Predicate);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Diagnostics.Contracts;Contract;ForAll;(System.Int32,System.Int32,System.Predicate);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Diagnostics.Contracts;Contract;ForAll;(System.Collections.Generic.IEnumerable,System.Predicate);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | -| System.Diagnostics.Contracts;Contract;ForAll;(System.Collections.Generic.IEnumerable,System.Predicate);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | -| System.Diagnostics.Contracts;Contract;ForAll;(System.Collections.Generic.IEnumerable,System.Predicate);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Diagnostics.Contracts;Contract;ForAll;(System.Collections.Generic.IEnumerable,System.Predicate);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Diagnostics.Contracts;Contract;add_ContractFailed;(System.EventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Diagnostics.Contracts;Contract;remove_ContractFailed;(System.EventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | @@ -11609,10 +10468,8 @@ summary | System.Diagnostics.Tracing;EventListener;EnableEvents;(System.Diagnostics.Tracing.EventSource,System.Diagnostics.Tracing.EventLevel);Argument[this];Argument[0];taint;df-generated | | System.Diagnostics.Tracing;EventListener;EnableEvents;(System.Diagnostics.Tracing.EventSource,System.Diagnostics.Tracing.EventLevel,System.Diagnostics.Tracing.EventKeywords);Argument[this];Argument[0];taint;df-generated | | System.Diagnostics.Tracing;EventListener;EnableEvents;(System.Diagnostics.Tracing.EventSource,System.Diagnostics.Tracing.EventLevel,System.Diagnostics.Tracing.EventKeywords,System.Collections.Generic.IDictionary);Argument[3];Argument[0].SyntheticField[System.Diagnostics.Tracing.EventSource.m_deferredCommands].Property[System.Diagnostics.Tracing.EventCommandEventArgs.Arguments];value;dfc-generated | -| System.Diagnostics.Tracing;EventListener;add_EventSourceCreated;(System.EventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Diagnostics.Tracing;EventListener;add_EventSourceCreated;(System.EventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Diagnostics.Tracing;EventListener;add_EventSourceCreated;(System.EventHandler);Argument[this];Argument[0].Parameter[0];value;dfc-generated | -| System.Diagnostics.Tracing;EventListener;add_EventSourceCreated;(System.EventHandler);Argument[this];Argument[0].Parameter[0];value;hq-generated | | System.Diagnostics.Tracing;EventListener;add_EventWritten;(System.EventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Diagnostics.Tracing;EventListener;remove_EventSourceCreated;(System.EventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Diagnostics.Tracing;EventListener;remove_EventWritten;(System.EventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | @@ -11622,12 +10479,9 @@ summary | System.Diagnostics.Tracing;EventSource;GetTrait;(System.String);Argument[this].SyntheticField[System.Diagnostics.Tracing.EventSource.m_traits].Element;ReturnValue;value;dfc-generated | | System.Diagnostics.Tracing;EventSource;SendCommand;(System.Diagnostics.Tracing.EventSource,System.Diagnostics.Tracing.EventCommand,System.Collections.Generic.IDictionary);Argument[2];Argument[0].SyntheticField[System.Diagnostics.Tracing.EventSource.m_deferredCommands].Property[System.Diagnostics.Tracing.EventCommandEventArgs.Arguments];value;dfc-generated | | System.Diagnostics.Tracing;EventSource;ToString;();Argument[this];ReturnValue;taint;df-generated | -| System.Diagnostics.Tracing;EventSource;add_EventCommandExecuted;(System.EventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Diagnostics.Tracing;EventSource;add_EventCommandExecuted;(System.EventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Diagnostics.Tracing;EventSource;add_EventCommandExecuted;(System.EventHandler);Argument[this].SyntheticField[System.Diagnostics.Tracing.EventSource.m_deferredCommands];Argument[0].Parameter[1];value;dfc-generated | -| System.Diagnostics.Tracing;EventSource;add_EventCommandExecuted;(System.EventHandler);Argument[this].SyntheticField[System.Diagnostics.Tracing.EventSource.m_deferredCommands];Argument[0].Parameter[1];value;hq-generated | | System.Diagnostics.Tracing;EventSource;add_EventCommandExecuted;(System.EventHandler);Argument[this];Argument[0].Parameter[0];value;dfc-generated | -| System.Diagnostics.Tracing;EventSource;add_EventCommandExecuted;(System.EventHandler);Argument[this];Argument[0].Parameter[0];value;hq-generated | | System.Diagnostics.Tracing;EventSource;get_ConstructionException;();Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics.Tracing;EventSource;get_Guid;();Argument[this].SyntheticField[System.Diagnostics.Tracing.EventSource.m_guid];ReturnValue;value;dfc-generated | | System.Diagnostics.Tracing;EventSource;get_Name;();Argument[this].SyntheticField[System.Diagnostics.Tracing.EventSource.m_name];ReturnValue;value;dfc-generated | @@ -11712,13 +10566,10 @@ summary | System.Diagnostics;ActivityTagsCollection;ActivityTagsCollection;(System.Collections.Generic.IEnumerable>);Argument[0].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;manual | | System.Diagnostics;ActivityTagsCollection;Add;(System.Collections.Generic.KeyValuePair);Argument[0].Property[System.Collections.Generic.KeyValuePair`2.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | | System.Diagnostics;ActivityTagsCollection;Add;(System.Collections.Generic.KeyValuePair);Argument[0].Property[System.Collections.Generic.KeyValuePair`2.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;manual | -| System.Diagnostics;ActivityTagsCollection;Add;(System.Collections.Generic.KeyValuePair);Argument[0];Argument[this].Element;value;manual | | System.Diagnostics;ActivityTagsCollection;Add;(System.String,System.Object);Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | | System.Diagnostics;ActivityTagsCollection;Add;(System.String,System.Object);Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;manual | | System.Diagnostics;ActivityTagsCollection;Clear;();Argument[this].WithoutElement;Argument[this];value;manual | | System.Diagnostics;ActivityTagsCollection;CopyTo;(System.Collections.Generic.KeyValuePair[],System.Int32);Argument[this].Element;Argument[0].Element;value;manual | -| System.Diagnostics;ActivityTagsCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | -| System.Diagnostics;ActivityTagsCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Diagnostics;ActivityTagsCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Diagnostics.ActivityTagsCollection+Enumerator.Current];value;manual | | System.Diagnostics;ActivityTagsCollection;TryGetValue;(System.String,System.Object);Argument[this];Argument[1];taint;df-generated | | System.Diagnostics;ActivityTagsCollection;get_Item;(System.String);Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];ReturnValue;value;manual | @@ -11762,16 +10613,10 @@ summary | System.Diagnostics;DistributedContextPropagator+PropagatorGetterCallback;BeginInvoke;(System.Object,System.String,System.String,System.Collections.Generic.IEnumerable,System.AsyncCallback,System.Object);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | System.Diagnostics;DistributedContextPropagator+PropagatorSetterCallback;BeginInvoke;(System.Object,System.String,System.String,System.AsyncCallback,System.Object);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Diagnostics;DistributedContextPropagator;ExtractBaggage;(System.Object,System.Diagnostics.DistributedContextPropagator+PropagatorGetterCallback);Argument[0];Argument[1].Parameter[0];value;dfc-generated | -| System.Diagnostics;DistributedContextPropagator;ExtractBaggage;(System.Object,System.Diagnostics.DistributedContextPropagator+PropagatorGetterCallback);Argument[0];Argument[1].Parameter[0];value;hq-generated | -| System.Diagnostics;DistributedContextPropagator;ExtractBaggage;(System.Object,System.Diagnostics.DistributedContextPropagator+PropagatorGetterCallback);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Diagnostics;DistributedContextPropagator;ExtractBaggage;(System.Object,System.Diagnostics.DistributedContextPropagator+PropagatorGetterCallback);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Diagnostics;DistributedContextPropagator;ExtractTraceIdAndState;(System.Object,System.Diagnostics.DistributedContextPropagator+PropagatorGetterCallback,System.String,System.String);Argument[0];Argument[1].Parameter[0];value;dfc-generated | -| System.Diagnostics;DistributedContextPropagator;ExtractTraceIdAndState;(System.Object,System.Diagnostics.DistributedContextPropagator+PropagatorGetterCallback,System.String,System.String);Argument[0];Argument[1].Parameter[0];value;hq-generated | -| System.Diagnostics;DistributedContextPropagator;ExtractTraceIdAndState;(System.Object,System.Diagnostics.DistributedContextPropagator+PropagatorGetterCallback,System.String,System.String);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Diagnostics;DistributedContextPropagator;ExtractTraceIdAndState;(System.Object,System.Diagnostics.DistributedContextPropagator+PropagatorGetterCallback,System.String,System.String);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Diagnostics;DistributedContextPropagator;Inject;(System.Diagnostics.Activity,System.Object,System.Diagnostics.DistributedContextPropagator+PropagatorSetterCallback);Argument[1];Argument[2].Parameter[0];value;dfc-generated | -| System.Diagnostics;DistributedContextPropagator;Inject;(System.Diagnostics.Activity,System.Object,System.Diagnostics.DistributedContextPropagator+PropagatorSetterCallback);Argument[1];Argument[2].Parameter[0];value;hq-generated | -| System.Diagnostics;DistributedContextPropagator;Inject;(System.Diagnostics.Activity,System.Object,System.Diagnostics.DistributedContextPropagator+PropagatorSetterCallback);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Diagnostics;DistributedContextPropagator;Inject;(System.Diagnostics.Activity,System.Object,System.Diagnostics.DistributedContextPropagator+PropagatorSetterCallback);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Diagnostics;EntryWrittenEventHandler;BeginInvoke;(System.Object,System.Diagnostics.EntryWrittenEventArgs,System.AsyncCallback,System.Object);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Diagnostics;EventLog;add_EntryWritten;(System.Diagnostics.EntryWrittenEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | @@ -11815,7 +10660,6 @@ summary | System.Diagnostics;FileVersionInfo;get_SpecialBuild;();Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics;InitializingSwitchEventArgs;InitializingSwitchEventArgs;(System.Diagnostics.Switch);Argument[0];Argument[this].Property[System.Diagnostics.InitializingSwitchEventArgs.Switch];value;dfc-generated | | System.Diagnostics;InitializingTraceSourceEventArgs;InitializingTraceSourceEventArgs;(System.Diagnostics.TraceSource);Argument[0];Argument[this].Property[System.Diagnostics.InitializingTraceSourceEventArgs.TraceSource];value;dfc-generated | -| System.Diagnostics;MonitoringDescriptionAttribute;get_Description;();Argument[this].Property[System.ComponentModel.DescriptionAttribute.DescriptionValue];ReturnValue;value;dfc-generated | | System.Diagnostics;MonitoringDescriptionAttribute;get_Description;();Argument[this].Property[System.ComponentModel.DescriptionAttribute.Description];Argument[this].Property[System.ComponentModel.DescriptionAttribute.DescriptionValue];value;dfc-generated | | System.Diagnostics;MonitoringDescriptionAttribute;get_Description;();Argument[this].Property[System.ComponentModel.DescriptionAttribute.Description];ReturnValue;value;dfc-generated | | System.Diagnostics;PerformanceCounterPermissionEntryCollection;OnInsert;(System.Int32,System.Object);Argument[1];Argument[this];taint;df-generated | @@ -11963,12 +10807,9 @@ summary | System.Drawing.Printing;MarginsConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Drawing.Printing;MarginsConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Drawing.Printing;MarginsConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.Drawing.Printing;MarginsConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Drawing.Printing;MarginsConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.Drawing.Printing;MarginsConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Drawing.Printing;MarginsConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.Drawing.Printing;MarginsConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.Drawing.Printing;MarginsConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Drawing.Printing;PageSettings;Clone;();Argument[this];ReturnValue;value;dfc-generated | | System.Drawing.Printing;PrintDocument;add_BeginPrint;(System.Drawing.Printing.PrintEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Drawing.Printing;PrintDocument;add_EndPrint;(System.Drawing.Printing.PrintEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | @@ -12006,14 +10847,7 @@ summary | System.Drawing;ColorConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Drawing;ColorConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Drawing;ColorConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.Drawing;ColorConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;df-generated | | System.Drawing;ColorConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;dfc-generated | -| System.Drawing;ColorConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | -| System.Drawing;ColorConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.Drawing;ColorConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | -| System.Drawing;ColorConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | -| System.Drawing;ColorConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.Drawing;ColorConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Drawing;ColorConverter;GetStandardValues;(System.ComponentModel.ITypeDescriptorContext);Argument[this];ReturnValue;taint;df-generated | | System.Drawing;ColorTranslator;ToHtml;(System.Drawing.Color);Argument[0].Property[System.Drawing.Color.Name];ReturnValue;value;dfc-generated | | System.Drawing;ColorTranslator;ToHtml;(System.Drawing.Color);Argument[0].SyntheticField[System.Drawing.Color.name];ReturnValue;value;dfc-generated | @@ -12023,19 +10857,14 @@ summary | System.Drawing;FontConverter+FontNameConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Drawing;FontConverter+FontNameConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | | System.Drawing;FontConverter+FontNameConverter;GetStandardValues;(System.ComponentModel.ITypeDescriptorContext);Argument[this];ReturnValue;taint;df-generated | -| System.Drawing;FontConverter+FontUnitConverter;GetStandardValues;(System.ComponentModel.ITypeDescriptorContext);Argument[this].Property[System.ComponentModel.EnumConverter.Values];ReturnValue;value;df-generated | | System.Drawing;FontConverter+FontUnitConverter;GetStandardValues;(System.ComponentModel.ITypeDescriptorContext);Argument[this].Property[System.ComponentModel.EnumConverter.Values];ReturnValue;value;dfc-generated | | System.Drawing;FontConverter+FontUnitConverter;GetStandardValues;(System.ComponentModel.ITypeDescriptorContext);Argument[this];ReturnValue;taint;df-generated | -| System.Drawing;FontConverter+FontUnitConverter;GetStandardValues;(System.ComponentModel.ITypeDescriptorContext);Argument[this];ReturnValue;taint;dfc-generated | | System.Drawing;FontConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Drawing;FontConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Drawing;FontConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.Drawing;FontConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Drawing;FontConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.Drawing;FontConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Drawing;FontConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.Drawing;FontConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.Drawing;FontConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Drawing;FontConverter;GetProperties;(System.ComponentModel.ITypeDescriptorContext,System.Object,System.Attribute[]);Argument[1];ReturnValue;taint;df-generated | | System.Drawing;Graphics+DrawImageAbort;BeginInvoke;(System.IntPtr,System.AsyncCallback,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Drawing;Graphics+EnumerateMetafileProc;BeginInvoke;(System.Drawing.Imaging.EmfPlusRecordType,System.Int32,System.Int32,System.IntPtr,System.Drawing.Imaging.PlayRecordCallback,System.AsyncCallback,System.Object);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | @@ -12090,12 +10919,9 @@ summary | System.Drawing;IconConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Drawing;IconConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Drawing;IconConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.Drawing;IconConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Drawing;IconConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.Drawing;IconConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Drawing;IconConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.Drawing;IconConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.Drawing;IconConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Drawing;Image+GetThumbnailImageAbort;BeginInvoke;(System.AsyncCallback,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Drawing;Image;Clone;();Argument[this];ReturnValue;value;dfc-generated | | System.Drawing;Image;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | @@ -12105,73 +10931,39 @@ summary | System.Drawing;ImageConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Drawing;ImageConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Drawing;ImageConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.Drawing;ImageConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Drawing;ImageConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.Drawing;ImageConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Drawing;ImageConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.Drawing;ImageConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.Drawing;ImageConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Drawing;ImageConverter;GetProperties;(System.ComponentModel.ITypeDescriptorContext,System.Object,System.Attribute[]);Argument[1];ReturnValue;taint;df-generated | | System.Drawing;ImageFormatConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Drawing;ImageFormatConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Drawing;ImageFormatConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.Drawing;ImageFormatConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Drawing;ImageFormatConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.Drawing;ImageFormatConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Drawing;ImageFormatConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.Drawing;ImageFormatConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.Drawing;ImageFormatConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Drawing;ImageFormatConverter;GetStandardValues;(System.ComponentModel.ITypeDescriptorContext);Argument[this];ReturnValue;taint;df-generated | | System.Drawing;Pen;Clone;();Argument[this];ReturnValue;value;dfc-generated | | System.Drawing;PointConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Drawing;PointConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Drawing;PointConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.Drawing;PointConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;df-generated | | System.Drawing;PointConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;dfc-generated | -| System.Drawing;PointConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | -| System.Drawing;PointConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.Drawing;PointConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | -| System.Drawing;PointConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | -| System.Drawing;PointConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.Drawing;PointConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Drawing;PointConverter;GetProperties;(System.ComponentModel.ITypeDescriptorContext,System.Object,System.Attribute[]);Argument[1];ReturnValue;taint;df-generated | | System.Drawing;Rectangle;Inflate;(System.Drawing.Rectangle,System.Int32,System.Int32);Argument[0];ReturnValue;value;dfc-generated | | System.Drawing;RectangleConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Drawing;RectangleConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Drawing;RectangleConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.Drawing;RectangleConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;df-generated | | System.Drawing;RectangleConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;dfc-generated | -| System.Drawing;RectangleConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | -| System.Drawing;RectangleConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.Drawing;RectangleConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | -| System.Drawing;RectangleConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | -| System.Drawing;RectangleConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.Drawing;RectangleConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Drawing;RectangleConverter;GetProperties;(System.ComponentModel.ITypeDescriptorContext,System.Object,System.Attribute[]);Argument[1];ReturnValue;taint;df-generated | | System.Drawing;RectangleF;Inflate;(System.Drawing.RectangleF,System.Single,System.Single);Argument[0];ReturnValue;value;dfc-generated | | System.Drawing;SizeConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Drawing;SizeConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Drawing;SizeConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.Drawing;SizeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;df-generated | | System.Drawing;SizeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;dfc-generated | -| System.Drawing;SizeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | -| System.Drawing;SizeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.Drawing;SizeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | -| System.Drawing;SizeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | -| System.Drawing;SizeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.Drawing;SizeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Drawing;SizeConverter;GetProperties;(System.ComponentModel.ITypeDescriptorContext,System.Object,System.Attribute[]);Argument[1];ReturnValue;taint;df-generated | | System.Drawing;SizeFConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Drawing;SizeFConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Drawing;SizeFConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.Drawing;SizeFConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;df-generated | | System.Drawing;SizeFConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;dfc-generated | -| System.Drawing;SizeFConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | -| System.Drawing;SizeFConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.Drawing;SizeFConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | -| System.Drawing;SizeFConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | -| System.Drawing;SizeFConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.Drawing;SizeFConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Drawing;SizeFConverter;GetProperties;(System.ComponentModel.ITypeDescriptorContext,System.Object,System.Attribute[]);Argument[1];ReturnValue;taint;df-generated | | System.Drawing;SolidBrush;Clone;();Argument[this];ReturnValue;value;dfc-generated | | System.Drawing;StringFormat;Clone;();Argument[this];ReturnValue;value;dfc-generated | @@ -12196,7 +10988,6 @@ summary | System.Dynamic;DynamicMetaObjectBinder;Bind;(System.Object[],System.Collections.ObjectModel.ReadOnlyCollection,System.Linq.Expressions.LabelTarget);Argument[2];ReturnValue.Property[System.Linq.Expressions.GotoExpression.Target];value;dfc-generated | | System.Dynamic;ExpandoObject;Add;(System.Collections.Generic.KeyValuePair);Argument[0].Property[System.Collections.Generic.KeyValuePair`2.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | | System.Dynamic;ExpandoObject;Add;(System.Collections.Generic.KeyValuePair);Argument[0].Property[System.Collections.Generic.KeyValuePair`2.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;manual | -| System.Dynamic;ExpandoObject;Add;(System.Collections.Generic.KeyValuePair);Argument[0];Argument[this].Element;value;manual | | System.Dynamic;ExpandoObject;Add;(System.String,System.Object);Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | | System.Dynamic;ExpandoObject;Add;(System.String,System.Object);Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;manual | | System.Dynamic;ExpandoObject;Clear;();Argument[this].WithoutElement;Argument[this];value;manual | @@ -12245,18 +11036,11 @@ summary | System.Formats.Asn1;AsnReader;TryReadCharacterStringBytes;(System.Span,System.Formats.Asn1.Asn1Tag,System.Int32);Argument[this];Argument[0];taint;df-generated | | System.Formats.Asn1;AsnReader;TryReadOctetString;(System.Span,System.Int32,System.Nullable);Argument[this];Argument[0];taint;df-generated | | System.Formats.Asn1;AsnWriter;Encode;(System.Func,TReturn>);Argument[0].ReturnValue;ReturnValue;value;dfc-generated | -| System.Formats.Asn1;AsnWriter;Encode;(System.Func,TReturn>);Argument[0].ReturnValue;ReturnValue;value;hq-generated | -| System.Formats.Asn1;AsnWriter;Encode;(System.Func,TReturn>);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Formats.Asn1;AsnWriter;Encode;(System.Func,TReturn>);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Formats.Asn1;AsnWriter;Encode;(TState,System.Func,TReturn>);Argument[0];Argument[1].Parameter[0];value;dfc-generated | -| System.Formats.Asn1;AsnWriter;Encode;(TState,System.Func,TReturn>);Argument[0];Argument[1].Parameter[0];value;hq-generated | | System.Formats.Asn1;AsnWriter;Encode;(TState,System.Func,TReturn>);Argument[1].ReturnValue;ReturnValue;value;dfc-generated | -| System.Formats.Asn1;AsnWriter;Encode;(TState,System.Func,TReturn>);Argument[1].ReturnValue;ReturnValue;value;hq-generated | -| System.Formats.Asn1;AsnWriter;Encode;(TState,System.Func,TReturn>);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Formats.Asn1;AsnWriter;Encode;(TState,System.Func,TReturn>);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Formats.Asn1;AsnWriter;Encode;(TState,System.Action>);Argument[0];Argument[1].Parameter[0];value;dfc-generated | -| System.Formats.Asn1;AsnWriter;Encode;(TState,System.Action>);Argument[0];Argument[1].Parameter[0];value;hq-generated | -| System.Formats.Asn1;AsnWriter;Encode;(TState,System.Action>);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Formats.Asn1;AsnWriter;Encode;(TState,System.Action>);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Formats.Asn1;AsnWriter;PushOctetString;(System.Nullable);Argument[this];ReturnValue;taint;df-generated | | System.Formats.Asn1;AsnWriter;PushSequence;(System.Nullable);Argument[this];ReturnValue;taint;df-generated | @@ -12374,12 +11158,8 @@ summary | System.Globalization;TextElementEnumerator;GetTextElement;();Argument[this].SyntheticField[System.Globalization.TextElementEnumerator._currentTextElementSubstr];ReturnValue;value;dfc-generated | | System.Globalization;TextElementEnumerator;GetTextElement;();Argument[this].SyntheticField[System.Globalization.TextElementEnumerator._str];Argument[this].SyntheticField[System.Globalization.TextElementEnumerator._currentTextElementSubstr];value;dfc-generated | | System.Globalization;TextElementEnumerator;GetTextElement;();Argument[this].SyntheticField[System.Globalization.TextElementEnumerator._str];ReturnValue;value;dfc-generated | -| System.Globalization;TextElementEnumerator;get_Current;();Argument[this].SyntheticField[System.Globalization.TextElementEnumerator._currentTextElementSubstr];ReturnValue;value;df-generated | | System.Globalization;TextElementEnumerator;get_Current;();Argument[this].SyntheticField[System.Globalization.TextElementEnumerator._currentTextElementSubstr];ReturnValue;value;dfc-generated | -| System.Globalization;TextElementEnumerator;get_Current;();Argument[this].SyntheticField[System.Globalization.TextElementEnumerator._str];ReturnValue;value;df-generated | | System.Globalization;TextElementEnumerator;get_Current;();Argument[this].SyntheticField[System.Globalization.TextElementEnumerator._str];ReturnValue;value;dfc-generated | -| System.Globalization;TextElementEnumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Globalization;TextElementEnumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Globalization;TextInfo;Clone;();Argument[this];ReturnValue;value;dfc-generated | | System.Globalization;TextInfo;ReadOnly;(System.Globalization.TextInfo);Argument[0];ReturnValue;value;dfc-generated | | System.Globalization;TextInfo;ToLower;(System.String);Argument[0];ReturnValue;value;dfc-generated | @@ -12387,10 +11167,8 @@ summary | System.Globalization;TextInfo;ToTitleCase;(System.String);Argument[0];ReturnValue;value;dfc-generated | | System.Globalization;TextInfo;ToUpper;(System.String);Argument[0];ReturnValue;value;dfc-generated | | System.Globalization;TextInfo;get_CultureName;();Argument[this];ReturnValue;taint;df-generated | -| System.IO.Compression;BrotliStream;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.IO.Compression;BrotliStream;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[this];Argument[0];taint;manual | | System.IO.Compression;BrotliStream;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[0].Element;Argument[this];taint;manual | -| System.IO.Compression;BrotliStream;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.IO.Compression;BrotliStream;BrotliStream;(System.IO.Stream,System.IO.Compression.CompressionMode,System.Boolean);Argument[0];Argument[this].SyntheticField[System.IO.Compression.BrotliStream._stream];value;dfc-generated | | System.IO.Compression;BrotliStream;DisposeAsync;();Argument[this];ReturnValue;taint;df-generated | | System.IO.Compression;BrotliStream;FlushAsync;(System.Threading.CancellationToken);Argument[this];ReturnValue.SyntheticField[System.Threading.Tasks.Task.m_stateObject];value;dfc-generated | @@ -12406,10 +11184,8 @@ summary | System.IO.Compression;BrotliStream;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);Argument[1];ReturnValue;taint;df-generated | | System.IO.Compression;BrotliStream;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);Argument[this];ReturnValue;taint;df-generated | | System.IO.Compression;BrotliStream;get_BaseStream;();Argument[this].SyntheticField[System.IO.Compression.BrotliStream._stream];ReturnValue;value;dfc-generated | -| System.IO.Compression;DeflateStream;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.IO.Compression;DeflateStream;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[this];Argument[0];taint;manual | | System.IO.Compression;DeflateStream;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[0].Element;Argument[this];taint;manual | -| System.IO.Compression;DeflateStream;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.IO.Compression;DeflateStream;CopyTo;(System.IO.Stream,System.Int32);Argument[this];Argument[0];taint;manual | | System.IO.Compression;DeflateStream;CopyToAsync;(System.IO.Stream,System.Int32,System.Threading.CancellationToken);Argument[this];Argument[0];taint;manual | | System.IO.Compression;DeflateStream;DeflateStream;(System.IO.Stream,System.IO.Compression.CompressionLevel);Argument[0];Argument[this];taint;manual | @@ -12430,10 +11206,8 @@ summary | System.IO.Compression;DeflateStream;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);Argument[1];ReturnValue;taint;df-generated | | System.IO.Compression;DeflateStream;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);Argument[this];ReturnValue;taint;df-generated | | System.IO.Compression;DeflateStream;get_BaseStream;();Argument[this];ReturnValue;taint;df-generated | -| System.IO.Compression;GZipStream;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.IO.Compression;GZipStream;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[this];Argument[0];taint;manual | | System.IO.Compression;GZipStream;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[0].Element;Argument[this];taint;manual | -| System.IO.Compression;GZipStream;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.IO.Compression;GZipStream;CopyTo;(System.IO.Stream,System.Int32);Argument[this];Argument[0];taint;manual | | System.IO.Compression;GZipStream;CopyToAsync;(System.IO.Stream,System.Int32,System.Threading.CancellationToken);Argument[this];Argument[0];taint;manual | | System.IO.Compression;GZipStream;DisposeAsync;();Argument[this];ReturnValue;taint;df-generated | @@ -12453,10 +11227,8 @@ summary | System.IO.Compression;GZipStream;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);Argument[1];ReturnValue;taint;df-generated | | System.IO.Compression;GZipStream;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);Argument[this];ReturnValue;taint;df-generated | | System.IO.Compression;GZipStream;get_BaseStream;();Argument[this].SyntheticField[System.IO.Compression.GZipStream._deflateStream].SyntheticField[System.IO.Compression.DeflateStream._stream];ReturnValue;value;dfc-generated | -| System.IO.Compression;ZLibStream;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.IO.Compression;ZLibStream;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[this];Argument[0];taint;manual | | System.IO.Compression;ZLibStream;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[0].Element;Argument[this];taint;manual | -| System.IO.Compression;ZLibStream;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.IO.Compression;ZLibStream;CopyTo;(System.IO.Stream,System.Int32);Argument[this];Argument[0];taint;manual | | System.IO.Compression;ZLibStream;CopyToAsync;(System.IO.Stream,System.Int32,System.Threading.CancellationToken);Argument[this];Argument[0];taint;manual | | System.IO.Compression;ZLibStream;DisposeAsync;();Argument[this];ReturnValue;taint;df-generated | @@ -12498,18 +11270,14 @@ summary | System.IO.Enumeration;FileSystemEnumerable;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.IO.Enumeration;FileSystemEnumerable;set_ShouldIncludePredicate;(System.IO.Enumeration.FileSystemEnumerable+FindPredicate);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.IO.Enumeration;FileSystemEnumerable;set_ShouldRecursePredicate;(System.IO.Enumeration.FileSystemEnumerable+FindPredicate);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.IO.Enumeration;FileSystemEnumerator;get_Current;();Argument[this].Property[System.IO.Enumeration.FileSystemEnumerator`1.Current];ReturnValue;value;df-generated | | System.IO.Enumeration;FileSystemEnumerator;get_Current;();Argument[this].Property[System.IO.Enumeration.FileSystemEnumerator`1.Current];ReturnValue;value;dfc-generated | | System.IO.Enumeration;FileSystemEnumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.IO.Enumeration;FileSystemEnumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.IO.Enumeration;FileSystemName;TranslateWin32Expression;(System.String);Argument[0];ReturnValue;value;dfc-generated | | System.IO.IsolatedStorage;IsolatedStorage;get_ApplicationIdentity;();Argument[this];ReturnValue;taint;df-generated | | System.IO.IsolatedStorage;IsolatedStorage;get_AssemblyIdentity;();Argument[this];ReturnValue;taint;df-generated | | System.IO.IsolatedStorage;IsolatedStorage;get_DomainIdentity;();Argument[this];ReturnValue;taint;df-generated | -| System.IO.IsolatedStorage;IsolatedStorageFileStream;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.IO.IsolatedStorage;IsolatedStorageFileStream;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[this];Argument[0];taint;manual | | System.IO.IsolatedStorage;IsolatedStorageFileStream;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[0].Element;Argument[this];taint;manual | -| System.IO.IsolatedStorage;IsolatedStorageFileStream;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.IO.IsolatedStorage;IsolatedStorageFileStream;DisposeAsync;();Argument[this];ReturnValue;taint;df-generated | | System.IO.IsolatedStorage;IsolatedStorageFileStream;FlushAsync;(System.Threading.CancellationToken);Argument[this].SyntheticField[System.IO.FileStream._strategy].SyntheticField[System.IO.Strategies.DerivedFileStreamStrategy._fileStream];ReturnValue.SyntheticField[System.Threading.Tasks.Task.m_stateObject];value;dfc-generated | | System.IO.IsolatedStorage;IsolatedStorageFileStream;FlushAsync;(System.Threading.CancellationToken);Argument[this];ReturnValue.SyntheticField[System.Threading.Tasks.Task.m_stateObject];value;dfc-generated | @@ -12543,10 +11311,8 @@ summary | System.IO.Pipelines;PipeReader;Create;(System.IO.Stream,System.IO.Pipelines.StreamPipeReaderOptions);Argument[0];ReturnValue;taint;df-generated | | System.IO.Pipelines;PipeReader;Create;(System.IO.Stream,System.IO.Pipelines.StreamPipeReaderOptions);Argument[1];ReturnValue;taint;df-generated | | System.IO.Pipelines;PipeReader;OnWriterCompleted;(System.Action,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.IO.Pipelines;PipeScheduler;Schedule;(System.Action,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.IO.Pipelines;PipeScheduler;Schedule;(System.Action,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.IO.Pipelines;PipeScheduler;Schedule;(System.Action,System.Object);Argument[1];Argument[0].Parameter[0];value;dfc-generated | -| System.IO.Pipelines;PipeScheduler;Schedule;(System.Action,System.Object);Argument[1];Argument[0].Parameter[0];value;hq-generated | | System.IO.Pipelines;PipeWriter;AsStream;(System.Boolean);Argument[this];ReturnValue;taint;df-generated | | System.IO.Pipelines;PipeWriter;Create;(System.IO.Stream,System.IO.Pipelines.StreamPipeWriterOptions);Argument[0];ReturnValue;taint;df-generated | | System.IO.Pipelines;PipeWriter;Create;(System.IO.Stream,System.IO.Pipelines.StreamPipeWriterOptions);Argument[1];ReturnValue;taint;df-generated | @@ -12565,10 +11331,8 @@ summary | System.IO.Pipes;NamedPipeServerStream;BeginWaitForConnection;(System.AsyncCallback,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.IO.Pipes;NamedPipeServerStream;NamedPipeServerStream;(System.IO.Pipes.PipeDirection,System.Boolean,System.Boolean,Microsoft.Win32.SafeHandles.SafePipeHandle);Argument[3];Argument[this];taint;df-generated | | System.IO.Pipes;NamedPipeServerStream;RunAsClient;(System.IO.Pipes.PipeStreamImpersonationWorker);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.IO.Pipes;PipeStream;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.IO.Pipes;PipeStream;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[this];Argument[0];taint;manual | | System.IO.Pipes;PipeStream;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[0].Element;Argument[this];taint;manual | -| System.IO.Pipes;PipeStream;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.IO.Pipes;PipeStream;FlushAsync;(System.Threading.CancellationToken);Argument[this];ReturnValue.SyntheticField[System.Threading.Tasks.Task.m_stateObject];value;dfc-generated | | System.IO.Pipes;PipeStream;InitializeHandle;(Microsoft.Win32.SafeHandles.SafePipeHandle,System.Boolean,System.Boolean);Argument[0];Argument[this].SyntheticField[System.IO.Pipes.PipeStream._handle];value;dfc-generated | | System.IO.Pipes;PipeStream;Read;(System.Byte[],System.Int32,System.Int32);Argument[this];Argument[0];taint;manual | @@ -12597,10 +11361,8 @@ summary | System.IO;BinaryWriter;Write;(System.Byte[],System.Int32,System.Int32);Argument[0].Element;Argument[this];taint;df-generated | | System.IO;BinaryWriter;Write;(System.ReadOnlySpan);Argument[0];Argument[this];taint;df-generated | | System.IO;BinaryWriter;get_BaseStream;();Argument[this].Field[System.IO.BinaryWriter.OutStream];ReturnValue;value;dfc-generated | -| System.IO;BufferedStream;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.IO;BufferedStream;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[this];Argument[0];taint;manual | | System.IO;BufferedStream;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[0].Element;Argument[this];taint;manual | -| System.IO;BufferedStream;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.IO;BufferedStream;BufferedStream;(System.IO.Stream);Argument[0];Argument[this];taint;manual | | System.IO;BufferedStream;BufferedStream;(System.IO.Stream,System.Int32);Argument[0];Argument[this];taint;manual | | System.IO;BufferedStream;CopyTo;(System.IO.Stream,System.Int32);Argument[this];Argument[0];taint;manual | @@ -12717,13 +11479,10 @@ summary | System.IO;FileInfo;get_Name;();Argument[this];ReturnValue;taint;df-generated | | System.IO;FileLoadException;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | | System.IO;FileLoadException;get_Message;();Argument[this].Property[System.IO.FileLoadException.FileName];Argument[this].SyntheticField[System.Exception._message];taint;dfc-generated | -| System.IO;FileLoadException;get_Message;();Argument[this].SyntheticField[System.Exception._message];ReturnValue;value;dfc-generated | | System.IO;FileNotFoundException;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | | System.IO;FileNotFoundException;get_Message;();Argument[this].SyntheticField[System.Exception._message];ReturnValue;value;dfc-generated | -| System.IO;FileStream;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.IO;FileStream;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[this];Argument[0];taint;manual | | System.IO;FileStream;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[0].Element;Argument[this];taint;manual | -| System.IO;FileStream;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.IO;FileStream;CopyTo;(System.IO.Stream,System.Int32);Argument[this];Argument[0];taint;manual | | System.IO;FileStream;CopyToAsync;(System.IO.Stream,System.Int32,System.Threading.CancellationToken);Argument[this];Argument[0];taint;manual | | System.IO;FileStream;DisposeAsync;();Argument[this];ReturnValue;taint;df-generated | @@ -12738,7 +11497,6 @@ summary | System.IO;FileStream;FileStream;(System.String,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare,System.Int32,System.IO.FileOptions);Argument[0];Argument[this];taint;manual | | System.IO;FileStream;FileStream;(System.String,System.IO.FileStreamOptions);Argument[this];Argument[this].SyntheticField[System.IO.FileStream._strategy].SyntheticField[System.IO.Strategies.DerivedFileStreamStrategy._fileStream];value;dfc-generated | | System.IO;FileStream;FlushAsync;(System.Threading.CancellationToken);Argument[this].SyntheticField[System.IO.FileStream._strategy].SyntheticField[System.IO.Strategies.DerivedFileStreamStrategy._fileStream];ReturnValue.SyntheticField[System.Threading.Tasks.Task.m_stateObject];value;dfc-generated | -| System.IO;FileStream;FlushAsync;(System.Threading.CancellationToken);Argument[this];ReturnValue.SyntheticField[System.Threading.Tasks.Task.m_stateObject];value;dfc-generated | | System.IO;FileStream;Read;(System.Byte[],System.Int32,System.Int32);Argument[this];Argument[0];taint;manual | | System.IO;FileStream;Read;(System.Span);Argument[this];Argument[0];taint;manual | | System.IO;FileStream;ReadAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);Argument[this];Argument[0];taint;manual | @@ -12782,10 +11540,8 @@ summary | System.IO;FileSystemWatcher;remove_Deleted;(System.IO.FileSystemEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.IO;FileSystemWatcher;remove_Error;(System.IO.ErrorEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.IO;FileSystemWatcher;remove_Renamed;(System.IO.RenamedEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.IO;MemoryStream;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.IO;MemoryStream;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[this];Argument[0];taint;manual | | System.IO;MemoryStream;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[0].Element;Argument[this];taint;manual | -| System.IO;MemoryStream;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.IO;MemoryStream;CopyTo;(System.IO.Stream,System.Int32);Argument[this];Argument[0];taint;manual | | System.IO;MemoryStream;CopyToAsync;(System.IO.Stream,System.Int32,System.Threading.CancellationToken);Argument[this];Argument[0];taint;manual | | System.IO;MemoryStream;FlushAsync;(System.Threading.CancellationToken);Argument[this];ReturnValue.SyntheticField[System.Threading.Tasks.Task.m_stateObject];value;dfc-generated | @@ -12804,16 +11560,7 @@ summary | System.IO;MemoryStream;Write;(System.Byte[],System.Int32,System.Int32);Argument[0].Element;Argument[this];taint;manual | | System.IO;MemoryStream;Write;(System.ReadOnlySpan);Argument[0].Element;Argument[this];taint;manual | | System.IO;MemoryStream;WriteAsync;(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken);Argument[0].Element;Argument[this];taint;manual | -| System.IO;MemoryStream;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);Argument[0].Property[System.ReadOnlyMemory`1.Span].Element;Argument[this];taint;df-generated | | System.IO;MemoryStream;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);Argument[0].Property[System.ReadOnlyMemory`1.Span].Element;Argument[this];taint;dfc-generated | -| System.IO;MemoryStream;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);Argument[0];Argument[this];taint;df-generated | -| System.IO;MemoryStream;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);Argument[0];Argument[this];taint;dfc-generated | -| System.IO;MemoryStream;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);Argument[0];ReturnValue;taint;df-generated | -| System.IO;MemoryStream;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);Argument[0];ReturnValue;taint;dfc-generated | -| System.IO;MemoryStream;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);Argument[1];ReturnValue;taint;df-generated | -| System.IO;MemoryStream;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);Argument[1];ReturnValue;taint;dfc-generated | -| System.IO;MemoryStream;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);Argument[this];ReturnValue;taint;df-generated | -| System.IO;MemoryStream;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);Argument[this];ReturnValue;taint;dfc-generated | | System.IO;MemoryStream;WriteTo;(System.IO.Stream);Argument[this];Argument[0];taint;df-generated | | System.IO;Path;ChangeExtension;(System.String,System.String);Argument[0];ReturnValue;value;dfc-generated | | System.IO;Path;Combine;(System.ReadOnlySpan);Argument[0].Element;ReturnValue;taint;manual | @@ -12881,10 +11628,8 @@ summary | System.IO;RenamedEventArgs;get_OldFullPath;();Argument[this].SyntheticField[System.IO.RenamedEventArgs._oldFullPath];ReturnValue;value;dfc-generated | | System.IO;RenamedEventArgs;get_OldName;();Argument[this].SyntheticField[System.IO.RenamedEventArgs._oldName];ReturnValue;value;dfc-generated | | System.IO;RenamedEventHandler;BeginInvoke;(System.Object,System.IO.RenamedEventArgs,System.AsyncCallback,System.Object);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| System.IO;Stream;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.IO;Stream;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[this];Argument[0];taint;manual | | System.IO;Stream;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[0].Element;Argument[this];taint;manual | -| System.IO;Stream;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.IO;Stream;CopyTo;(System.IO.Stream);Argument[this];Argument[0];taint;manual | | System.IO;Stream;CopyTo;(System.IO.Stream,System.Int32);Argument[this];Argument[0];taint;manual | | System.IO;Stream;CopyToAsync;(System.IO.Stream);Argument[this];Argument[0];taint;manual | @@ -13197,10 +11942,7 @@ summary | System.Linq.Expressions;DynamicExpression;Update;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;value;dfc-generated | | System.Linq.Expressions;DynamicExpression;get_Arguments;();Argument[this];ReturnValue;taint;df-generated | | System.Linq.Expressions;DynamicExpressionVisitor;VisitDynamic;(System.Linq.Expressions.DynamicExpression);Argument[0];ReturnValue;value;dfc-generated | -| System.Linq.Expressions;ElementInit;GetArgument;(System.Int32);Argument[this].Property[System.Linq.Expressions.ElementInit.Arguments].Element;ReturnValue;value;df-generated | | System.Linq.Expressions;ElementInit;GetArgument;(System.Int32);Argument[this].Property[System.Linq.Expressions.ElementInit.Arguments].Element;ReturnValue;value;dfc-generated | -| System.Linq.Expressions;ElementInit;GetArgument;(System.Int32);Argument[this];ReturnValue;taint;df-generated | -| System.Linq.Expressions;ElementInit;GetArgument;(System.Int32);Argument[this];ReturnValue;taint;dfc-generated | | System.Linq.Expressions;ElementInit;ToString;();Argument[this];ReturnValue;taint;df-generated | | System.Linq.Expressions;ElementInit;Update;(System.Collections.Generic.IEnumerable);Argument[0];ReturnValue.Property[System.Linq.Expressions.ElementInit.Arguments];value;dfc-generated | | System.Linq.Expressions;ElementInit;Update;(System.Collections.Generic.IEnumerable);Argument[this].Property[System.Linq.Expressions.ElementInit.AddMethod];ReturnValue.Property[System.Linq.Expressions.ElementInit.AddMethod];value;dfc-generated | @@ -13566,10 +12308,7 @@ summary | System.Linq.Expressions;ExpressionVisitor;Visit;(System.Collections.ObjectModel.ReadOnlyCollection);Argument[0];ReturnValue;value;df-generated | | System.Linq.Expressions;ExpressionVisitor;Visit;(System.Linq.Expressions.Expression);Argument[0];ReturnValue;value;dfc-generated | | System.Linq.Expressions;ExpressionVisitor;Visit;(System.Collections.ObjectModel.ReadOnlyCollection,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | -| System.Linq.Expressions;ExpressionVisitor;Visit;(System.Collections.ObjectModel.ReadOnlyCollection,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | | System.Linq.Expressions;ExpressionVisitor;Visit;(System.Collections.ObjectModel.ReadOnlyCollection,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| System.Linq.Expressions;ExpressionVisitor;Visit;(System.Collections.ObjectModel.ReadOnlyCollection,System.Func);Argument[0];ReturnValue;value;hq-generated | -| System.Linq.Expressions;ExpressionVisitor;Visit;(System.Collections.ObjectModel.ReadOnlyCollection,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq.Expressions;ExpressionVisitor;Visit;(System.Collections.ObjectModel.ReadOnlyCollection,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq.Expressions;ExpressionVisitor;VisitAndConvert;(System.Collections.ObjectModel.ReadOnlyCollection,System.String);Argument[0].Element;Argument[this];taint;df-generated | | System.Linq.Expressions;ExpressionVisitor;VisitAndConvert;(System.Collections.ObjectModel.ReadOnlyCollection,System.String);Argument[0];ReturnValue;value;df-generated | @@ -13629,10 +12368,7 @@ summary | System.Linq.Expressions;GotoExpression;Update;(System.Linq.Expressions.LabelTarget,System.Linq.Expressions.Expression);Argument[this];ReturnValue;value;dfc-generated | | System.Linq.Expressions;IArgumentProvider;GetArgument;(System.Int32);Argument[this];ReturnValue;taint;df-generated | | System.Linq.Expressions;IndexExpression;Accept;(System.Linq.Expressions.ExpressionVisitor);Argument[this];ReturnValue;value;dfc-generated | -| System.Linq.Expressions;IndexExpression;GetArgument;(System.Int32);Argument[this].SyntheticField[System.Linq.Expressions.IndexExpression._arguments].Element;ReturnValue;value;df-generated | | System.Linq.Expressions;IndexExpression;GetArgument;(System.Int32);Argument[this].SyntheticField[System.Linq.Expressions.IndexExpression._arguments].Element;ReturnValue;value;dfc-generated | -| System.Linq.Expressions;IndexExpression;GetArgument;(System.Int32);Argument[this];ReturnValue;taint;df-generated | -| System.Linq.Expressions;IndexExpression;GetArgument;(System.Int32);Argument[this];ReturnValue;taint;dfc-generated | | System.Linq.Expressions;IndexExpression;Update;(System.Linq.Expressions.Expression,System.Collections.Generic.IEnumerable);Argument[0];ReturnValue.Property[System.Linq.Expressions.IndexExpression.Object];value;dfc-generated | | System.Linq.Expressions;IndexExpression;Update;(System.Linq.Expressions.Expression,System.Collections.Generic.IEnumerable);Argument[1];ReturnValue.SyntheticField[System.Linq.Expressions.IndexExpression._arguments];value;dfc-generated | | System.Linq.Expressions;IndexExpression;Update;(System.Linq.Expressions.Expression,System.Collections.Generic.IEnumerable);Argument[this].Property[System.Linq.Expressions.IndexExpression.Indexer];ReturnValue.Property[System.Linq.Expressions.IndexExpression.Indexer];value;dfc-generated | @@ -13687,11 +12423,7 @@ summary | System.Linq.Expressions;NewArrayExpression;Update;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;value;dfc-generated | | System.Linq.Expressions;NewExpression;Accept;(System.Linq.Expressions.ExpressionVisitor);Argument[this].Property[System.Linq.Expressions.NewExpression.Constructor];ReturnValue.Property[System.Linq.Expressions.NewExpression.Constructor];value;dfc-generated | | System.Linq.Expressions;NewExpression;Accept;(System.Linq.Expressions.ExpressionVisitor);Argument[this].Property[System.Linq.Expressions.NewExpression.Members];ReturnValue.Property[System.Linq.Expressions.NewExpression.Members];value;dfc-generated | -| System.Linq.Expressions;NewExpression;Accept;(System.Linq.Expressions.ExpressionVisitor);Argument[this];ReturnValue;value;dfc-generated | -| System.Linq.Expressions;NewExpression;GetArgument;(System.Int32);Argument[this].SyntheticField[System.Linq.Expressions.NewExpression._arguments].Element;ReturnValue;value;df-generated | | System.Linq.Expressions;NewExpression;GetArgument;(System.Int32);Argument[this].SyntheticField[System.Linq.Expressions.NewExpression._arguments].Element;ReturnValue;value;dfc-generated | -| System.Linq.Expressions;NewExpression;GetArgument;(System.Int32);Argument[this];ReturnValue;taint;df-generated | -| System.Linq.Expressions;NewExpression;GetArgument;(System.Int32);Argument[this];ReturnValue;taint;dfc-generated | | System.Linq.Expressions;NewExpression;Update;(System.Collections.Generic.IEnumerable);Argument[0];ReturnValue.SyntheticField[System.Linq.Expressions.NewExpression._arguments];value;dfc-generated | | System.Linq.Expressions;NewExpression;Update;(System.Collections.Generic.IEnumerable);Argument[this].Property[System.Linq.Expressions.NewExpression.Constructor];ReturnValue.Property[System.Linq.Expressions.NewExpression.Constructor];value;dfc-generated | | System.Linq.Expressions;NewExpression;Update;(System.Collections.Generic.IEnumerable);Argument[this].Property[System.Linq.Expressions.NewExpression.Members];ReturnValue.Property[System.Linq.Expressions.NewExpression.Members];value;dfc-generated | @@ -13699,7 +12431,6 @@ summary | System.Linq.Expressions;NewExpression;get_Arguments;();Argument[this].SyntheticField[System.Linq.Expressions.NewExpression._arguments];ReturnValue;value;dfc-generated | | System.Linq.Expressions;ParameterExpression;Accept;(System.Linq.Expressions.ExpressionVisitor);Argument[this];ReturnValue;value;dfc-generated | | System.Linq.Expressions;RuntimeVariablesExpression;Accept;(System.Linq.Expressions.ExpressionVisitor);Argument[this].Property[System.Linq.Expressions.RuntimeVariablesExpression.Variables];ReturnValue.Property[System.Linq.Expressions.RuntimeVariablesExpression.Variables];value;dfc-generated | -| System.Linq.Expressions;RuntimeVariablesExpression;Accept;(System.Linq.Expressions.ExpressionVisitor);Argument[this];ReturnValue;value;dfc-generated | | System.Linq.Expressions;RuntimeVariablesExpression;Update;(System.Collections.Generic.IEnumerable);Argument[0];ReturnValue.Property[System.Linq.Expressions.RuntimeVariablesExpression.Variables];value;dfc-generated | | System.Linq.Expressions;RuntimeVariablesExpression;Update;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;value;dfc-generated | | System.Linq.Expressions;SwitchCase;Update;(System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression);Argument[0];ReturnValue.Property[System.Linq.Expressions.SwitchCase.TestValues];value;dfc-generated | @@ -13726,112 +12457,62 @@ summary | System.Linq.Expressions;UnaryExpression;Update;(System.Linq.Expressions.Expression);Argument[this].Property[System.Linq.Expressions.UnaryExpression.Method];ReturnValue.Property[System.Linq.Expressions.UnaryExpression.Method];value;dfc-generated | | System.Linq.Expressions;UnaryExpression;Update;(System.Linq.Expressions.Expression);Argument[this];ReturnValue;value;dfc-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func>,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[2].Parameter[0];value;dfc-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func>,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[2].Parameter[0];value;hq-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func>,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[3].Parameter[0];value;dfc-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func>,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[3].Parameter[0];value;hq-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func>,System.Func>,System.Threading.CancellationToken);Argument[2].ReturnValue;Argument[3].Parameter[0];taint;dfc-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func>,System.Func>,System.Threading.CancellationToken);Argument[2].ReturnValue;Argument[3].Parameter[0];taint;hq-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func>,System.Func>,System.Threading.CancellationToken);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func>,System.Func>,System.Threading.CancellationToken);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func>,System.Func>,System.Threading.CancellationToken);Argument[3].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];taint;dfc-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func>,System.Func>,System.Threading.CancellationToken);Argument[3].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];taint;hq-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func>,System.Func>,System.Threading.CancellationToken);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func>,System.Func>,System.Threading.CancellationToken);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func>,System.Func>,System.Threading.CancellationToken);Argument[4];Argument[2].Parameter[2];value;dfc-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func>,System.Func>,System.Threading.CancellationToken);Argument[4];Argument[2].Parameter[2];value;hq-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func>,System.Func>,System.Threading.CancellationToken);Argument[4];Argument[3].Parameter[1];value;dfc-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func>,System.Func>,System.Threading.CancellationToken);Argument[4];Argument[3].Parameter[1];value;hq-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func,System.Func,System.Threading.CancellationToken);Argument[1];Argument[2].Parameter[0];value;dfc-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func,System.Func,System.Threading.CancellationToken);Argument[1];Argument[2].Parameter[0];value;hq-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func,System.Func,System.Threading.CancellationToken);Argument[1];Argument[3].Parameter[0];value;dfc-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func,System.Func,System.Threading.CancellationToken);Argument[1];Argument[3].Parameter[0];value;hq-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func,System.Func,System.Threading.CancellationToken);Argument[2].ReturnValue;Argument[3].Parameter[0];value;dfc-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func,System.Func,System.Threading.CancellationToken);Argument[2].ReturnValue;Argument[3].Parameter[0];value;hq-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func,System.Func,System.Threading.CancellationToken);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func,System.Func,System.Threading.CancellationToken);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func,System.Func,System.Threading.CancellationToken);Argument[3].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;dfc-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func,System.Func,System.Threading.CancellationToken);Argument[3].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;hq-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func,System.Func,System.Threading.CancellationToken);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func,System.Func,System.Threading.CancellationToken);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[2].Parameter[0];value;dfc-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[2].Parameter[0];value;hq-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func>,System.Threading.CancellationToken);Argument[1];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;dfc-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func>,System.Threading.CancellationToken);Argument[1];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;hq-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func>,System.Threading.CancellationToken);Argument[2].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];taint;dfc-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func>,System.Threading.CancellationToken);Argument[2].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];taint;hq-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func>,System.Threading.CancellationToken);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func>,System.Threading.CancellationToken);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func>,System.Threading.CancellationToken);Argument[3];Argument[2].Parameter[2];value;dfc-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func>,System.Threading.CancellationToken);Argument[3];Argument[2].Parameter[2];value;hq-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func,System.Threading.CancellationToken);Argument[1];Argument[2].Parameter[0];value;dfc-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func,System.Threading.CancellationToken);Argument[1];Argument[2].Parameter[0];value;hq-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func,System.Threading.CancellationToken);Argument[1];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;dfc-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func,System.Threading.CancellationToken);Argument[1];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;hq-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func,System.Threading.CancellationToken);Argument[2].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;dfc-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func,System.Threading.CancellationToken);Argument[2].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;hq-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func,System.Threading.CancellationToken);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func,System.Threading.CancellationToken);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];taint;dfc-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];taint;hq-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[2];Argument[1].Parameter[2];value;dfc-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[2];Argument[1].Parameter[2];value;hq-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Threading.CancellationToken);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;dfc-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Threading.CancellationToken);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;hq-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[1].ReturnValue;Argument[2].Parameter[0];taint;dfc-generated | -| System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[1].ReturnValue;Argument[2].Parameter[0];taint;hq-generated | -| System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[2].ReturnValue;Argument[3].Parameter[0];taint;dfc-generated | -| System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[2].ReturnValue;Argument[3].Parameter[0];taint;hq-generated | -| System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,TAccumulate,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,TAccumulate,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,TAccumulate,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[3].Parameter[0];value;dfc-generated | -| System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,TAccumulate,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[3].Parameter[0];value;hq-generated | -| System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,TAccumulate,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,TAccumulate,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].ReturnValue;Argument[2].Parameter[0];value;dfc-generated | -| System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].ReturnValue;Argument[2].Parameter[0];value;hq-generated | -| System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2].ReturnValue;Argument[3].Parameter[0];value;dfc-generated | -| System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2].ReturnValue;Argument[3].Parameter[0];value;hq-generated | -| System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,TAccumulate,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,TAccumulate,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,TAccumulate,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[3].Parameter[0];value;dfc-generated | -| System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,TAccumulate,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[3].Parameter[0];value;hq-generated | -| System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,TAccumulate,System.Func,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,TAccumulate,System.Func,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;AllAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;AllAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;AllAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;AllAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[2];Argument[1].Parameter[1];value;dfc-generated | -| System.Linq;AsyncEnumerable;AllAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[2];Argument[1].Parameter[1];value;hq-generated | | System.Linq;AsyncEnumerable;AnyAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;AnyAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;AnyAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;AnyAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[2];Argument[1].Parameter[1];value;dfc-generated | -| System.Linq;AsyncEnumerable;AnyAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[2];Argument[1].Parameter[1];value;hq-generated | | System.Linq;AsyncEnumerable;Append;(System.Collections.Generic.IAsyncEnumerable,TSource);Argument[1];ReturnValue.Element;value;dfc-generated | | System.Linq;AsyncEnumerable;Cast;(System.Collections.Generic.IAsyncEnumerable);Argument[0];ReturnValue;value;dfc-generated | | System.Linq;AsyncEnumerable;Concat;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable);Argument[0];ReturnValue;value;dfc-generated | | System.Linq;AsyncEnumerable;Concat;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable);Argument[1];ReturnValue;value;dfc-generated | | System.Linq;AsyncEnumerable;CountAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;CountAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;CountAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;CountAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[2];Argument[1].Parameter[1];value;dfc-generated | -| System.Linq;AsyncEnumerable;CountAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[2];Argument[1].Parameter[1];value;hq-generated | | System.Linq;AsyncEnumerable;CountBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;CountBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;DefaultIfEmpty;(System.Collections.Generic.IAsyncEnumerable,TSource);Argument[1];ReturnValue.Element;value;dfc-generated | @@ -13840,146 +12521,84 @@ summary | System.Linq;AsyncEnumerable;ExceptBy;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;ExceptBy;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;FirstAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;FirstAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;FirstAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;FirstAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[2];Argument[1].Parameter[1];value;dfc-generated | -| System.Linq;AsyncEnumerable;FirstAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[2];Argument[1].Parameter[1];value;hq-generated | | System.Linq;AsyncEnumerable;FirstOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;FirstOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,TSource,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;FirstOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,TSource,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;FirstOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,TSource,System.Threading.CancellationToken);Argument[2];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;dfc-generated | -| System.Linq;AsyncEnumerable;FirstOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,TSource,System.Threading.CancellationToken);Argument[2];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;hq-generated | -| System.Linq;AsyncEnumerable;FirstOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;FirstOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;FirstOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[2];Argument[1].Parameter[1];value;dfc-generated | -| System.Linq;AsyncEnumerable;FirstOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[2];Argument[1].Parameter[1];value;hq-generated | -| System.Linq;AsyncEnumerable;FirstOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,TSource,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;FirstOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,TSource,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;FirstOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,TSource,System.Threading.CancellationToken);Argument[2];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;dfc-generated | -| System.Linq;AsyncEnumerable;FirstOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,TSource,System.Threading.CancellationToken);Argument[2];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;hq-generated | | System.Linq;AsyncEnumerable;FirstOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,TSource,System.Threading.CancellationToken);Argument[3];Argument[1].Parameter[1];value;dfc-generated | -| System.Linq;AsyncEnumerable;FirstOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,TSource,System.Threading.CancellationToken);Argument[3];Argument[1].Parameter[1];value;hq-generated | | System.Linq;AsyncEnumerable;FirstOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,TSource,System.Threading.CancellationToken);Argument[1];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;dfc-generated | -| System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func,System.Threading.CancellationToken,System.Threading.Tasks.ValueTask>,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func,System.Threading.CancellationToken,System.Threading.Tasks.ValueTask>,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func,System.Threading.CancellationToken,System.Threading.Tasks.ValueTask>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func,System.Threading.CancellationToken,System.Threading.Tasks.ValueTask>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func,System.Threading.CancellationToken,System.Threading.Tasks.ValueTask>,System.Collections.Generic.IEqualityComparer);Argument[3].ReturnValue;ReturnValue.Element;taint;dfc-generated | -| System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func,System.Threading.CancellationToken,System.Threading.Tasks.ValueTask>,System.Collections.Generic.IEqualityComparer);Argument[3].ReturnValue;ReturnValue.Element;taint;hq-generated | -| System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func,System.Threading.CancellationToken,System.Threading.Tasks.ValueTask>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func,System.Threading.CancellationToken,System.Threading.Tasks.ValueTask>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[3].ReturnValue;ReturnValue.Element;value;dfc-generated | -| System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[3].ReturnValue;ReturnValue.Element;value;hq-generated | -| System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func,System.Threading.CancellationToken,System.Threading.Tasks.ValueTask>,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func,System.Threading.CancellationToken,System.Threading.Tasks.ValueTask>,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func,System.Threading.CancellationToken,System.Threading.Tasks.ValueTask>,System.Collections.Generic.IEqualityComparer);Argument[2].ReturnValue;ReturnValue.Element;taint;dfc-generated | -| System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func,System.Threading.CancellationToken,System.Threading.Tasks.ValueTask>,System.Collections.Generic.IEqualityComparer);Argument[2].ReturnValue;ReturnValue.Element;taint;hq-generated | -| System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func,System.Threading.CancellationToken,System.Threading.Tasks.ValueTask>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func,System.Threading.CancellationToken,System.Threading.Tasks.ValueTask>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[2].ReturnValue;ReturnValue.Element;value;dfc-generated | -| System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[2].ReturnValue;ReturnValue.Element;value;hq-generated | -| System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;GroupJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func,System.Threading.CancellationToken,System.Threading.Tasks.ValueTask>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;GroupJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func,System.Threading.CancellationToken,System.Threading.Tasks.ValueTask>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;GroupJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func,System.Threading.CancellationToken,System.Threading.Tasks.ValueTask>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;GroupJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func,System.Threading.CancellationToken,System.Threading.Tasks.ValueTask>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;GroupJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func,System.Threading.CancellationToken,System.Threading.Tasks.ValueTask>,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;taint;dfc-generated | -| System.Linq;AsyncEnumerable;GroupJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func,System.Threading.CancellationToken,System.Threading.Tasks.ValueTask>,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;taint;hq-generated | -| System.Linq;AsyncEnumerable;GroupJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func,System.Threading.CancellationToken,System.Threading.Tasks.ValueTask>,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;GroupJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func,System.Threading.CancellationToken,System.Threading.Tasks.ValueTask>,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;GroupJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;GroupJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;GroupJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;GroupJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;GroupJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;value;dfc-generated | -| System.Linq;AsyncEnumerable;GroupJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;value;hq-generated | -| System.Linq;AsyncEnumerable;GroupJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;GroupJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;InfiniteSequence;(T,T);Argument[0];ReturnValue.Element;value;dfc-generated | | System.Linq;AsyncEnumerable;IntersectBy;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;IntersectBy;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;Join;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;Join;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;Join;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;Join;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;Join;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;taint;dfc-generated | -| System.Linq;AsyncEnumerable;Join;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;taint;hq-generated | -| System.Linq;AsyncEnumerable;Join;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;Join;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;Join;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;Join;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;Join;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;Join;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;Join;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;value;dfc-generated | -| System.Linq;AsyncEnumerable;Join;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;value;hq-generated | -| System.Linq;AsyncEnumerable;Join;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;Join;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;LastAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;LastAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;LastAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;LastAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[2];Argument[1].Parameter[1];value;dfc-generated | -| System.Linq;AsyncEnumerable;LastAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[2];Argument[1].Parameter[1];value;hq-generated | | System.Linq;AsyncEnumerable;LastOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;LastOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,TSource,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;LastOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,TSource,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;LastOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,TSource,System.Threading.CancellationToken);Argument[2];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;dfc-generated | -| System.Linq;AsyncEnumerable;LastOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,TSource,System.Threading.CancellationToken);Argument[2];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;hq-generated | -| System.Linq;AsyncEnumerable;LastOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;LastOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;LastOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[2];Argument[1].Parameter[1];value;dfc-generated | -| System.Linq;AsyncEnumerable;LastOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[2];Argument[1].Parameter[1];value;hq-generated | -| System.Linq;AsyncEnumerable;LastOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,TSource,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;LastOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,TSource,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;LastOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,TSource,System.Threading.CancellationToken);Argument[2];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;dfc-generated | -| System.Linq;AsyncEnumerable;LastOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,TSource,System.Threading.CancellationToken);Argument[2];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;hq-generated | | System.Linq;AsyncEnumerable;LastOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,TSource,System.Threading.CancellationToken);Argument[3];Argument[1].Parameter[1];value;dfc-generated | -| System.Linq;AsyncEnumerable;LastOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,TSource,System.Threading.CancellationToken);Argument[3];Argument[1].Parameter[1];value;hq-generated | | System.Linq;AsyncEnumerable;LastOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,TSource,System.Threading.CancellationToken);Argument[1];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;dfc-generated | -| System.Linq;AsyncEnumerable;LeftJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;LeftJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;LeftJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;LeftJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;LeftJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;taint;dfc-generated | -| System.Linq;AsyncEnumerable;LeftJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;taint;hq-generated | -| System.Linq;AsyncEnumerable;LeftJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;LeftJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;LeftJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;LeftJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;LeftJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;LeftJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;LeftJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;value;dfc-generated | -| System.Linq;AsyncEnumerable;LeftJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;value;hq-generated | -| System.Linq;AsyncEnumerable;LeftJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;LeftJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;LongCountAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;LongCountAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;LongCountAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;LongCountAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[2];Argument[1].Parameter[1];value;dfc-generated | -| System.Linq;AsyncEnumerable;LongCountAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[2];Argument[1].Parameter[1];value;hq-generated | -| System.Linq;AsyncEnumerable;MaxByAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Collections.Generic.IComparer,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;MaxByAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Collections.Generic.IComparer,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;MaxByAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Collections.Generic.IComparer,System.Threading.CancellationToken);Argument[3];Argument[1].Parameter[1];value;dfc-generated | -| System.Linq;AsyncEnumerable;MaxByAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Collections.Generic.IComparer,System.Threading.CancellationToken);Argument[3];Argument[1].Parameter[1];value;hq-generated | | System.Linq;AsyncEnumerable;MaxByAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Collections.Generic.IComparer,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;MinByAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Collections.Generic.IComparer,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;MinByAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Collections.Generic.IComparer,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;MinByAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Collections.Generic.IComparer,System.Threading.CancellationToken);Argument[3];Argument[1].Parameter[1];value;dfc-generated | -| System.Linq;AsyncEnumerable;MinByAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Collections.Generic.IComparer,System.Threading.CancellationToken);Argument[3];Argument[1].Parameter[1];value;hq-generated | | System.Linq;AsyncEnumerable;MinByAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Collections.Generic.IComparer,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;Order;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IComparer);Argument[1];ReturnValue;taint;df-generated | | System.Linq;AsyncEnumerable;OrderBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | @@ -13989,117 +12608,65 @@ summary | System.Linq;AsyncEnumerable;OrderDescending;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IComparer);Argument[1];ReturnValue;taint;df-generated | | System.Linq;AsyncEnumerable;Prepend;(System.Collections.Generic.IAsyncEnumerable,TSource);Argument[1];ReturnValue.Element;value;dfc-generated | | System.Linq;AsyncEnumerable;Repeat;(TResult,System.Int32);Argument[0];ReturnValue.Element;value;dfc-generated | -| System.Linq;AsyncEnumerable;RightJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;RightJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;RightJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;RightJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;RightJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;taint;dfc-generated | -| System.Linq;AsyncEnumerable;RightJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;taint;hq-generated | -| System.Linq;AsyncEnumerable;RightJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;RightJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;RightJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;RightJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;RightJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;RightJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;RightJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;value;dfc-generated | -| System.Linq;AsyncEnumerable;RightJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;value;hq-generated | -| System.Linq;AsyncEnumerable;RightJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;RightJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;Select;(System.Collections.Generic.IAsyncEnumerable,System.Func>);Argument[1].ReturnValue;ReturnValue.Element;taint;dfc-generated | -| System.Linq;AsyncEnumerable;Select;(System.Collections.Generic.IAsyncEnumerable,System.Func>);Argument[1].ReturnValue;ReturnValue.Element;taint;hq-generated | -| System.Linq;AsyncEnumerable;Select;(System.Collections.Generic.IAsyncEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;Select;(System.Collections.Generic.IAsyncEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;Select;(System.Collections.Generic.IAsyncEnumerable,System.Func);Argument[1].ReturnValue;ReturnValue.Element;value;dfc-generated | -| System.Linq;AsyncEnumerable;Select;(System.Collections.Generic.IAsyncEnumerable,System.Func);Argument[1].ReturnValue;ReturnValue.Element;value;hq-generated | -| System.Linq;AsyncEnumerable;Select;(System.Collections.Generic.IAsyncEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;Select;(System.Collections.Generic.IAsyncEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;Select;(System.Collections.Generic.IAsyncEnumerable,System.Func>);Argument[1].ReturnValue;ReturnValue.Element;taint;dfc-generated | -| System.Linq;AsyncEnumerable;Select;(System.Collections.Generic.IAsyncEnumerable,System.Func>);Argument[1].ReturnValue;ReturnValue.Element;taint;hq-generated | -| System.Linq;AsyncEnumerable;Select;(System.Collections.Generic.IAsyncEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;Select;(System.Collections.Generic.IAsyncEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;Select;(System.Collections.Generic.IAsyncEnumerable,System.Func);Argument[1].ReturnValue;ReturnValue.Element;value;dfc-generated | -| System.Linq;AsyncEnumerable;Select;(System.Collections.Generic.IAsyncEnumerable,System.Func);Argument[1].ReturnValue;ReturnValue.Element;value;hq-generated | -| System.Linq;AsyncEnumerable;Select;(System.Collections.Generic.IAsyncEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;Select;(System.Collections.Generic.IAsyncEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>);Argument[2].ReturnValue;ReturnValue.Element;taint;dfc-generated | -| System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>);Argument[2].ReturnValue;ReturnValue.Element;taint;hq-generated | -| System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func);Argument[2].ReturnValue;ReturnValue.Element;value;dfc-generated | -| System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func);Argument[2].ReturnValue;ReturnValue.Element;value;hq-generated | -| System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func);Argument[1].ReturnValue.Element;Argument[2].Parameter[1];value;dfc-generated | -| System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func);Argument[1].ReturnValue.Element;Argument[2].Parameter[1];value;hq-generated | -| System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func);Argument[2].ReturnValue;ReturnValue.Element;value;dfc-generated | -| System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func);Argument[2].ReturnValue;ReturnValue.Element;value;hq-generated | -| System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>);Argument[2].ReturnValue;ReturnValue.Element;taint;dfc-generated | -| System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>);Argument[2].ReturnValue;ReturnValue.Element;taint;hq-generated | -| System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func);Argument[1].ReturnValue.Element;Argument[2].Parameter[1];value;dfc-generated | -| System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func);Argument[1].ReturnValue.Element;Argument[2].Parameter[1];value;hq-generated | -| System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func);Argument[2].ReturnValue;ReturnValue.Element;value;dfc-generated | -| System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func);Argument[2].ReturnValue;ReturnValue.Element;value;hq-generated | -| System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>>,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>>,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>>,System.Func>);Argument[2].ReturnValue;ReturnValue.Element;taint;dfc-generated | -| System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>>,System.Func>);Argument[2].ReturnValue;ReturnValue.Element;taint;hq-generated | -| System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>>,System.Func>);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>>,System.Func>);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>>,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>>,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>>,System.Func>);Argument[2].ReturnValue;ReturnValue.Element;taint;dfc-generated | -| System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>>,System.Func>);Argument[2].ReturnValue;ReturnValue.Element;taint;hq-generated | -| System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>>,System.Func>);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>>,System.Func>);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>);Argument[1].ReturnValue.Element;ReturnValue.Element;value;dfc-generated | -| System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>);Argument[1].ReturnValue.Element;ReturnValue.Element;value;hq-generated | -| System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>);Argument[1].ReturnValue.Element;ReturnValue.Element;value;dfc-generated | -| System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>);Argument[1].ReturnValue.Element;ReturnValue.Element;value;hq-generated | -| System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>>);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>>);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;Sequence;(T,T,T);Argument[0];ReturnValue.Element;value;dfc-generated | | System.Linq;AsyncEnumerable;SingleAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;SingleAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;SingleAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;SingleAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[2];Argument[1].Parameter[1];value;dfc-generated | -| System.Linq;AsyncEnumerable;SingleAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[2];Argument[1].Parameter[1];value;hq-generated | | System.Linq;AsyncEnumerable;SingleOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;SingleOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,TSource,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;SingleOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,TSource,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;SingleOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,TSource,System.Threading.CancellationToken);Argument[2];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;dfc-generated | -| System.Linq;AsyncEnumerable;SingleOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,TSource,System.Threading.CancellationToken);Argument[2];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;hq-generated | -| System.Linq;AsyncEnumerable;SingleOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;SingleOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;SingleOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[2];Argument[1].Parameter[1];value;dfc-generated | -| System.Linq;AsyncEnumerable;SingleOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[2];Argument[1].Parameter[1];value;hq-generated | -| System.Linq;AsyncEnumerable;SingleOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,TSource,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;SingleOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,TSource,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;SingleOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,TSource,System.Threading.CancellationToken);Argument[2];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;dfc-generated | -| System.Linq;AsyncEnumerable;SingleOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,TSource,System.Threading.CancellationToken);Argument[2];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;hq-generated | | System.Linq;AsyncEnumerable;SingleOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,TSource,System.Threading.CancellationToken);Argument[3];Argument[1].Parameter[1];value;dfc-generated | -| System.Linq;AsyncEnumerable;SingleOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,TSource,System.Threading.CancellationToken);Argument[3];Argument[1].Parameter[1];value;hq-generated | | System.Linq;AsyncEnumerable;SingleOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,TSource,System.Threading.CancellationToken);Argument[1];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;dfc-generated | | System.Linq;AsyncEnumerable;Skip;(System.Collections.Generic.IAsyncEnumerable,System.Int32);Argument[0];ReturnValue;value;dfc-generated | | System.Linq;AsyncEnumerable;SkipLast;(System.Collections.Generic.IAsyncEnumerable,System.Int32);Argument[0];ReturnValue;value;dfc-generated | @@ -14112,51 +12679,31 @@ summary | System.Linq;AsyncEnumerable;TakeWhile;(System.Collections.Generic.IAsyncEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;TakeWhile;(System.Collections.Generic.IAsyncEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;ThenBy;(System.Linq.IOrderedAsyncEnumerable,System.Func>,System.Collections.Generic.IComparer);Argument[0];ReturnValue;value;dfc-generated | -| System.Linq;AsyncEnumerable;ThenBy;(System.Linq.IOrderedAsyncEnumerable,System.Func>,System.Collections.Generic.IComparer);Argument[0];ReturnValue;value;hq-generated | -| System.Linq;AsyncEnumerable;ThenBy;(System.Linq.IOrderedAsyncEnumerable,System.Func>,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;ThenBy;(System.Linq.IOrderedAsyncEnumerable,System.Func>,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;ThenBy;(System.Linq.IOrderedAsyncEnumerable,System.Func,System.Collections.Generic.IComparer);Argument[0];ReturnValue;value;dfc-generated | -| System.Linq;AsyncEnumerable;ThenBy;(System.Linq.IOrderedAsyncEnumerable,System.Func,System.Collections.Generic.IComparer);Argument[0];ReturnValue;value;hq-generated | -| System.Linq;AsyncEnumerable;ThenBy;(System.Linq.IOrderedAsyncEnumerable,System.Func,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;ThenBy;(System.Linq.IOrderedAsyncEnumerable,System.Func,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;ThenByDescending;(System.Linq.IOrderedAsyncEnumerable,System.Func>,System.Collections.Generic.IComparer);Argument[0];ReturnValue;value;dfc-generated | -| System.Linq;AsyncEnumerable;ThenByDescending;(System.Linq.IOrderedAsyncEnumerable,System.Func>,System.Collections.Generic.IComparer);Argument[0];ReturnValue;value;hq-generated | -| System.Linq;AsyncEnumerable;ThenByDescending;(System.Linq.IOrderedAsyncEnumerable,System.Func>,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;ThenByDescending;(System.Linq.IOrderedAsyncEnumerable,System.Func>,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;ThenByDescending;(System.Linq.IOrderedAsyncEnumerable,System.Func,System.Collections.Generic.IComparer);Argument[0];ReturnValue;value;dfc-generated | -| System.Linq;AsyncEnumerable;ThenByDescending;(System.Linq.IOrderedAsyncEnumerable,System.Func,System.Collections.Generic.IComparer);Argument[0];ReturnValue;value;hq-generated | -| System.Linq;AsyncEnumerable;ThenByDescending;(System.Linq.IOrderedAsyncEnumerable,System.Func,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;ThenByDescending;(System.Linq.IOrderedAsyncEnumerable,System.Func,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;ToAsyncEnumerable;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue.Element;value;dfc-generated | -| System.Linq;AsyncEnumerable;ToDictionaryAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;ToDictionaryAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;ToDictionaryAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;ToDictionaryAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;ToDictionaryAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[4];Argument[1].Parameter[1];value;dfc-generated | -| System.Linq;AsyncEnumerable;ToDictionaryAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[4];Argument[1].Parameter[1];value;hq-generated | | System.Linq;AsyncEnumerable;ToDictionaryAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[4];Argument[2].Parameter[1];value;dfc-generated | -| System.Linq;AsyncEnumerable;ToDictionaryAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[4];Argument[2].Parameter[1];value;hq-generated | | System.Linq;AsyncEnumerable;ToDictionaryAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;ToDictionaryAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;ToDictionaryAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;ToDictionaryAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;ToDictionaryAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[3];Argument[1].Parameter[1];value;dfc-generated | -| System.Linq;AsyncEnumerable;ToDictionaryAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[3];Argument[1].Parameter[1];value;hq-generated | | System.Linq;AsyncEnumerable;ToDictionaryAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;ToLookupAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;ToLookupAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;ToLookupAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;ToLookupAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;ToLookupAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[4];Argument[1].Parameter[1];value;dfc-generated | -| System.Linq;AsyncEnumerable;ToLookupAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[4];Argument[1].Parameter[1];value;hq-generated | | System.Linq;AsyncEnumerable;ToLookupAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[4];Argument[2].Parameter[1];value;dfc-generated | -| System.Linq;AsyncEnumerable;ToLookupAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[4];Argument[2].Parameter[1];value;hq-generated | | System.Linq;AsyncEnumerable;ToLookupAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;ToLookupAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;ToLookupAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;ToLookupAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;ToLookupAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[3];Argument[1].Parameter[1];value;dfc-generated | -| System.Linq;AsyncEnumerable;ToLookupAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[3];Argument[1].Parameter[1];value;hq-generated | | System.Linq;AsyncEnumerable;ToLookupAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;UnionBy;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;UnionBy;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | @@ -14165,76 +12712,44 @@ summary | System.Linq;AsyncEnumerable;Where;(System.Collections.Generic.IAsyncEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;Where;(System.Collections.Generic.IAsyncEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;Zip;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>);Argument[2].ReturnValue;ReturnValue.Element;taint;dfc-generated | -| System.Linq;AsyncEnumerable;Zip;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>);Argument[2].ReturnValue;ReturnValue.Element;taint;hq-generated | -| System.Linq;AsyncEnumerable;Zip;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;Zip;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;Zip;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func);Argument[2].ReturnValue;ReturnValue.Element;value;dfc-generated | -| System.Linq;AsyncEnumerable;Zip;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func);Argument[2].ReturnValue;ReturnValue.Element;value;hq-generated | -| System.Linq;AsyncEnumerable;Zip;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;Zip;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;Aggregate;(System.Collections.Generic.IEnumerable,TAccumulate,System.Func,System.Func);Argument[0].Element;Argument[2].Parameter[1];value;manual | | System.Linq;Enumerable;Aggregate;(System.Collections.Generic.IEnumerable,TAccumulate,System.Func,System.Func);Argument[1];Argument[2].Parameter[0];value;manual | | System.Linq;Enumerable;Aggregate;(System.Collections.Generic.IEnumerable,TAccumulate,System.Func,System.Func);Argument[2].ReturnValue;Argument[3].Parameter[0];value;manual | -| System.Linq;Enumerable;Aggregate;(System.Collections.Generic.IEnumerable,TAccumulate,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Aggregate;(System.Collections.Generic.IEnumerable,TAccumulate,System.Func,System.Func);Argument[3].ReturnValue;ReturnValue;value;manual | -| System.Linq;Enumerable;Aggregate;(System.Collections.Generic.IEnumerable,TAccumulate,System.Func,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Aggregate;(System.Collections.Generic.IEnumerable,TAccumulate,System.Func);Argument[0].Element;Argument[2].Parameter[1];value;manual | | System.Linq;Enumerable;Aggregate;(System.Collections.Generic.IEnumerable,TAccumulate,System.Func);Argument[1];Argument[2].Parameter[0];value;manual | | System.Linq;Enumerable;Aggregate;(System.Collections.Generic.IEnumerable,TAccumulate,System.Func);Argument[2].ReturnValue;ReturnValue;value;manual | -| System.Linq;Enumerable;Aggregate;(System.Collections.Generic.IEnumerable,TAccumulate,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Aggregate;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[1];value;manual | | System.Linq;Enumerable;Aggregate;(System.Collections.Generic.IEnumerable,System.Func);Argument[1].ReturnValue;ReturnValue;value;manual | -| System.Linq;Enumerable;Aggregate;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;AggregateBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;AggregateBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | | System.Linq;Enumerable;AggregateBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[3].Parameter[1];value;dfc-generated | -| System.Linq;Enumerable;AggregateBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[3].Parameter[1];value;hq-generated | | System.Linq;Enumerable;AggregateBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].ReturnValue;Argument[2].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;AggregateBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].ReturnValue;Argument[2].Parameter[0];value;hq-generated | -| System.Linq;Enumerable;AggregateBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;AggregateBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;AggregateBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2].ReturnValue;Argument[3].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;AggregateBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2].ReturnValue;Argument[3].Parameter[0];value;hq-generated | -| System.Linq;Enumerable;AggregateBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;AggregateBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| System.Linq;Enumerable;AggregateBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;AggregateBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;AggregateBy;(System.Collections.Generic.IEnumerable,System.Func,TAccumulate,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;AggregateBy;(System.Collections.Generic.IEnumerable,System.Func,TAccumulate,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | | System.Linq;Enumerable;AggregateBy;(System.Collections.Generic.IEnumerable,System.Func,TAccumulate,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[3].Parameter[1];value;dfc-generated | -| System.Linq;Enumerable;AggregateBy;(System.Collections.Generic.IEnumerable,System.Func,TAccumulate,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[3].Parameter[1];value;hq-generated | -| System.Linq;Enumerable;AggregateBy;(System.Collections.Generic.IEnumerable,System.Func,TAccumulate,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;AggregateBy;(System.Collections.Generic.IEnumerable,System.Func,TAccumulate,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;AggregateBy;(System.Collections.Generic.IEnumerable,System.Func,TAccumulate,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[3].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;AggregateBy;(System.Collections.Generic.IEnumerable,System.Func,TAccumulate,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[3].Parameter[0];value;hq-generated | -| System.Linq;Enumerable;AggregateBy;(System.Collections.Generic.IEnumerable,System.Func,TAccumulate,System.Func,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;AggregateBy;(System.Collections.Generic.IEnumerable,System.Func,TAccumulate,System.Func,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;All;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;All;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Any;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Any;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Append;(System.Collections.Generic.IEnumerable,TSource);Argument[1];ReturnValue;taint;df-generated | | System.Linq;Enumerable;AsEnumerable;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;Average;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Average;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Average;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Average;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Average;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Average;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Average;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Average;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Average;(System.Collections.Generic.IEnumerable,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Average;(System.Collections.Generic.IEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Average;(System.Collections.Generic.IEnumerable,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Average;(System.Collections.Generic.IEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Average;(System.Collections.Generic.IEnumerable,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Average;(System.Collections.Generic.IEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Average;(System.Collections.Generic.IEnumerable,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Average;(System.Collections.Generic.IEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Average;(System.Collections.Generic.IEnumerable,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Average;(System.Collections.Generic.IEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Average;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Average;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Cast;(System.Collections.IEnumerable);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;Chunk;(System.Collections.Generic.IEnumerable,System.Int32);Argument[0].Element;ReturnValue.Element.Element;value;dfc-generated | | System.Linq;Enumerable;Concat;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue.Element;value;manual | @@ -14242,10 +12757,7 @@ summary | System.Linq;Enumerable;Contains;(System.Collections.Generic.IEnumerable,TSource,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2];taint;df-generated | | System.Linq;Enumerable;Contains;(System.Collections.Generic.IEnumerable,TSource,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[2];taint;df-generated | | System.Linq;Enumerable;Count;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Count;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;CountBy;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;CountBy;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | -| System.Linq;Enumerable;CountBy;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;CountBy;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;DefaultIfEmpty;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;DefaultIfEmpty;(System.Collections.Generic.IEnumerable,TSource);Argument[0].Element;ReturnValue.Element;value;manual | @@ -14253,16 +12765,10 @@ summary | System.Linq;Enumerable;Distinct;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;Distinct;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;DistinctBy;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;DistinctBy;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | | System.Linq;Enumerable;DistinctBy;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;ReturnValue.Element;value;dfc-generated | -| System.Linq;Enumerable;DistinctBy;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;ReturnValue.Element;value;hq-generated | -| System.Linq;Enumerable;DistinctBy;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;DistinctBy;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;DistinctBy;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;DistinctBy;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | | System.Linq;Enumerable;DistinctBy;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;ReturnValue.Element;value;dfc-generated | -| System.Linq;Enumerable;DistinctBy;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;ReturnValue.Element;value;hq-generated | -| System.Linq;Enumerable;DistinctBy;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;DistinctBy;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;ElementAt;(System.Collections.Generic.IEnumerable,System.Index);Argument[0].Element;ReturnValue;value;dfc-generated | | System.Linq;Enumerable;ElementAt;(System.Collections.Generic.IEnumerable,System.Int32);Argument[0].Element;ReturnValue;value;manual | @@ -14271,91 +12777,57 @@ summary | System.Linq;Enumerable;Except;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;Except;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;ExceptBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;ExceptBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;hq-generated | | System.Linq;Enumerable;ExceptBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;ReturnValue.Element;value;dfc-generated | -| System.Linq;Enumerable;ExceptBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;ReturnValue.Element;value;hq-generated | -| System.Linq;Enumerable;ExceptBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;ExceptBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;ExceptBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;ExceptBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;hq-generated | | System.Linq;Enumerable;ExceptBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;ReturnValue.Element;value;dfc-generated | -| System.Linq;Enumerable;ExceptBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;ReturnValue.Element;value;hq-generated | -| System.Linq;Enumerable;ExceptBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;ExceptBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;First;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue;value;manual | | System.Linq;Enumerable;First;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;First;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;ReturnValue;value;manual | -| System.Linq;Enumerable;First;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;FirstOrDefault;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue;value;manual | | System.Linq;Enumerable;FirstOrDefault;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;FirstOrDefault;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;ReturnValue;value;manual | -| System.Linq;Enumerable;FirstOrDefault;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;FirstOrDefault;(System.Collections.Generic.IEnumerable,System.Func,TSource);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;FirstOrDefault;(System.Collections.Generic.IEnumerable,System.Func,TSource);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | | System.Linq;Enumerable;FirstOrDefault;(System.Collections.Generic.IEnumerable,System.Func,TSource);Argument[0].Element;ReturnValue;value;dfc-generated | -| System.Linq;Enumerable;FirstOrDefault;(System.Collections.Generic.IEnumerable,System.Func,TSource);Argument[0].Element;ReturnValue;value;hq-generated | -| System.Linq;Enumerable;FirstOrDefault;(System.Collections.Generic.IEnumerable,System.Func,TSource);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;FirstOrDefault;(System.Collections.Generic.IEnumerable,System.Func,TSource);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;FirstOrDefault;(System.Collections.Generic.IEnumerable,System.Func,TSource);Argument[2];ReturnValue;value;dfc-generated | -| System.Linq;Enumerable;FirstOrDefault;(System.Collections.Generic.IEnumerable,System.Func,TSource);Argument[2];ReturnValue;value;hq-generated | | System.Linq;Enumerable;FirstOrDefault;(System.Collections.Generic.IEnumerable,TSource);Argument[1];ReturnValue;value;dfc-generated | | System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | -| System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);Argument[2].ReturnValue;Argument[3].Parameter[1].Element;value;manual | -| System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);Argument[3].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | -| System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[2].ReturnValue;Argument[3].Parameter[1].Element;value;manual | -| System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[3].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;manual | -| System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[2].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | -| System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | -| System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,TResult>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,TResult>);Argument[0];Argument[2].Parameter[1];value;manual | | System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,TResult>);Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | -| System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,TResult>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,TResult>);Argument[2].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,TResult>);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | -| System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | -| System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;GroupJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Enumerable;GroupJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;Enumerable;GroupJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;Enumerable;GroupJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);Argument[1].Element;Argument[4].Parameter[1];value;manual | -| System.Linq;Enumerable;GroupJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);Argument[2];Argument[2].Parameter[delegate-self];value;manual | -| System.Linq;Enumerable;GroupJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;GroupJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);Argument[4].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;GroupJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;GroupJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Enumerable;GroupJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;Enumerable;GroupJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;Enumerable;GroupJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[1].Element;Argument[4].Parameter[1];value;manual | -| System.Linq;Enumerable;GroupJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;manual | -| System.Linq;Enumerable;GroupJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;GroupJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;GroupJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Index;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue.Element.Field[System.ValueTuple`2.Item2];value;dfc-generated | | System.Linq;Enumerable;InfiniteSequence;(T,T);Argument[0];ReturnValue.Element;value;dfc-generated | | System.Linq;Enumerable;Intersect;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue.Element;value;manual | @@ -14363,105 +12835,63 @@ summary | System.Linq;Enumerable;Intersect;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;Intersect;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);Argument[1].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;IntersectBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;IntersectBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;hq-generated | | System.Linq;Enumerable;IntersectBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;ReturnValue.Element;value;dfc-generated | -| System.Linq;Enumerable;IntersectBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;ReturnValue.Element;value;hq-generated | -| System.Linq;Enumerable;IntersectBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;IntersectBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;IntersectBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;IntersectBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;hq-generated | | System.Linq;Enumerable;IntersectBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;ReturnValue.Element;value;dfc-generated | -| System.Linq;Enumerable;IntersectBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;ReturnValue.Element;value;hq-generated | -| System.Linq;Enumerable;IntersectBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;IntersectBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;Join;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Enumerable;Join;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;Enumerable;Join;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;Enumerable;Join;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[1].Element;Argument[4].Parameter[1];value;manual | -| System.Linq;Enumerable;Join;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;manual | -| System.Linq;Enumerable;Join;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Join;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[4].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;Join;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Join;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Enumerable;Join;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;Enumerable;Join;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;Enumerable;Join;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].Element;Argument[4].Parameter[1];value;manual | -| System.Linq;Enumerable;Join;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;manual | -| System.Linq;Enumerable;Join;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Join;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;Join;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Last;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue;value;manual | | System.Linq;Enumerable;Last;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;Last;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;ReturnValue;value;manual | -| System.Linq;Enumerable;Last;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;LastOrDefault;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue;value;manual | | System.Linq;Enumerable;LastOrDefault;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;LastOrDefault;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;ReturnValue;value;manual | -| System.Linq;Enumerable;LastOrDefault;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | -| System.Linq;Enumerable;LastOrDefault;(System.Collections.Generic.IEnumerable,System.Func,TSource);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;LastOrDefault;(System.Collections.Generic.IEnumerable,System.Func,TSource);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;LastOrDefault;(System.Collections.Generic.IEnumerable,System.Func,TSource);Argument[2];ReturnValue;value;dfc-generated | -| System.Linq;Enumerable;LastOrDefault;(System.Collections.Generic.IEnumerable,System.Func,TSource);Argument[2];ReturnValue;value;hq-generated | | System.Linq;Enumerable;LastOrDefault;(System.Collections.Generic.IEnumerable,TSource);Argument[1];ReturnValue;value;dfc-generated | | System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;hq-generated | | System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[0].Element;Argument[4].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[0].Element;Argument[4].Parameter[0];value;hq-generated | | System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[1].Element;Argument[3].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[1].Element;Argument[3].Parameter[0];value;hq-generated | -| System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[4].ReturnValue;ReturnValue.Element;value;dfc-generated | -| System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[4].ReturnValue;ReturnValue.Element;value;hq-generated | -| System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[4];Argument[4].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;hq-generated | | System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[4].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[4].Parameter[0];value;hq-generated | | System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].Element;Argument[3].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].Element;Argument[3].Parameter[0];value;hq-generated | -| System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;value;dfc-generated | -| System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;value;hq-generated | -| System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;LongCount;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;LongCount;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable>);Argument[0].Element;ReturnValue;value;dfc-generated | | System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable>);Argument[0].Element;ReturnValue;value;dfc-generated | | System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable>);Argument[0].Element;ReturnValue;value;dfc-generated | | System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable>);Argument[0].Element;ReturnValue;value;dfc-generated | | System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IComparer);Argument[0].Element;Argument[1];taint;df-generated | | System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IComparer);Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;MaxBy;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;MaxBy;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable>);Argument[0].Element;ReturnValue;value;dfc-generated | @@ -14469,30 +12899,19 @@ summary | System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable>);Argument[0].Element;ReturnValue;value;dfc-generated | | System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable>);Argument[0].Element;ReturnValue;value;dfc-generated | | System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IComparer);Argument[0].Element;Argument[1];taint;df-generated | | System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IComparer);Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;MinBy;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;MinBy;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;OfType;(System.Collections.IEnumerable);Argument[0].Element;ReturnValue.Element;value;manual | @@ -14500,16 +12919,12 @@ summary | System.Linq;Enumerable;Order;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IComparer);Argument[0].Element;ReturnValue.Element;value;dfc-generated | | System.Linq;Enumerable;OrderBy;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;OrderBy;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;OrderBy;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;OrderBy;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;OrderBy;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;OrderBy;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;OrderByDescending;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;OrderByDescending;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;OrderByDescending;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;OrderByDescending;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;OrderByDescending;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;OrderByDescending;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;OrderDescending;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue.Element;value;dfc-generated | | System.Linq;Enumerable;OrderDescending;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IComparer);Argument[0].Element;ReturnValue.Element;value;dfc-generated | | System.Linq;Enumerable;Prepend;(System.Collections.Generic.IEnumerable,TSource);Argument[1];ReturnValue;taint;df-generated | @@ -14517,57 +12932,35 @@ summary | System.Linq;Enumerable;Reverse;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;Reverse;(TSource[]);Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;hq-generated | | System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[1].Element;Argument[3].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[1].Element;Argument[3].Parameter[0];value;hq-generated | | System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[1].Element;Argument[4].Parameter[1];value;dfc-generated | -| System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[1].Element;Argument[4].Parameter[1];value;hq-generated | -| System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[4].ReturnValue;ReturnValue.Element;value;dfc-generated | -| System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[4].ReturnValue;ReturnValue.Element;value;hq-generated | -| System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[4];Argument[4].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;hq-generated | | System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].Element;Argument[3].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].Element;Argument[3].Parameter[0];value;hq-generated | | System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].Element;Argument[4].Parameter[1];value;dfc-generated | -| System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].Element;Argument[4].Parameter[1];value;hq-generated | -| System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;value;dfc-generated | -| System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;value;hq-generated | -| System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;Select;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;Select;(System.Collections.Generic.IEnumerable,System.Func);Argument[1].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;Select;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Select;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;Select;(System.Collections.Generic.IEnumerable,System.Func);Argument[1].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;Select;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;SelectMany;(System.Collections.Generic.IEnumerable,System.Func>,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;SelectMany;(System.Collections.Generic.IEnumerable,System.Func>,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Enumerable;SelectMany;(System.Collections.Generic.IEnumerable,System.Func>,System.Func);Argument[1].ReturnValue.Element;Argument[2].Parameter[1];value;manual | -| System.Linq;Enumerable;SelectMany;(System.Collections.Generic.IEnumerable,System.Func>,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;SelectMany;(System.Collections.Generic.IEnumerable,System.Func>,System.Func);Argument[2].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;SelectMany;(System.Collections.Generic.IEnumerable,System.Func>,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;SelectMany;(System.Collections.Generic.IEnumerable,System.Func>,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;SelectMany;(System.Collections.Generic.IEnumerable,System.Func>,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Enumerable;SelectMany;(System.Collections.Generic.IEnumerable,System.Func>,System.Func);Argument[1].ReturnValue.Element;Argument[2].Parameter[1];value;manual | -| System.Linq;Enumerable;SelectMany;(System.Collections.Generic.IEnumerable,System.Func>,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;SelectMany;(System.Collections.Generic.IEnumerable,System.Func>,System.Func);Argument[2].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;SelectMany;(System.Collections.Generic.IEnumerable,System.Func>,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;SelectMany;(System.Collections.Generic.IEnumerable,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;SelectMany;(System.Collections.Generic.IEnumerable,System.Func>);Argument[1].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;SelectMany;(System.Collections.Generic.IEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;SelectMany;(System.Collections.Generic.IEnumerable,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;SelectMany;(System.Collections.Generic.IEnumerable,System.Func>);Argument[1].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;SelectMany;(System.Collections.Generic.IEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Sequence;(T,T,T);Argument[0];ReturnValue.Element;value;dfc-generated | | System.Linq;Enumerable;SequenceEqual;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable);Argument[1].Element;Argument[0].Element;taint;df-generated | | System.Linq;Enumerable;SequenceEqual;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2];taint;df-generated | @@ -14577,70 +12970,46 @@ summary | System.Linq;Enumerable;Single;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue;value;manual | | System.Linq;Enumerable;Single;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;Single;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;ReturnValue;value;manual | -| System.Linq;Enumerable;Single;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;SingleOrDefault;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue;value;manual | | System.Linq;Enumerable;SingleOrDefault;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;SingleOrDefault;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;ReturnValue;value;manual | -| System.Linq;Enumerable;SingleOrDefault;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;SingleOrDefault;(System.Collections.Generic.IEnumerable,System.Func,TSource);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;SingleOrDefault;(System.Collections.Generic.IEnumerable,System.Func,TSource);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | | System.Linq;Enumerable;SingleOrDefault;(System.Collections.Generic.IEnumerable,System.Func,TSource);Argument[0].Element;ReturnValue;value;dfc-generated | -| System.Linq;Enumerable;SingleOrDefault;(System.Collections.Generic.IEnumerable,System.Func,TSource);Argument[0].Element;ReturnValue;value;hq-generated | -| System.Linq;Enumerable;SingleOrDefault;(System.Collections.Generic.IEnumerable,System.Func,TSource);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;SingleOrDefault;(System.Collections.Generic.IEnumerable,System.Func,TSource);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;SingleOrDefault;(System.Collections.Generic.IEnumerable,System.Func,TSource);Argument[2];ReturnValue;value;dfc-generated | -| System.Linq;Enumerable;SingleOrDefault;(System.Collections.Generic.IEnumerable,System.Func,TSource);Argument[2];ReturnValue;value;hq-generated | | System.Linq;Enumerable;SingleOrDefault;(System.Collections.Generic.IEnumerable,TSource);Argument[0].Element;ReturnValue;value;dfc-generated | | System.Linq;Enumerable;SingleOrDefault;(System.Collections.Generic.IEnumerable,TSource);Argument[1];ReturnValue;value;dfc-generated | | System.Linq;Enumerable;Skip;(System.Collections.Generic.IEnumerable,System.Int32);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;SkipLast;(System.Collections.Generic.IEnumerable,System.Int32);Argument[0];ReturnValue;value;df-generated | | System.Linq;Enumerable;SkipWhile;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;SkipWhile;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;SkipWhile;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;SkipWhile;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;SkipWhile;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;SkipWhile;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Sum;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Sum;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Sum;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Sum;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Sum;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Sum;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Sum;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Sum;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Sum;(System.Collections.Generic.IEnumerable,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Sum;(System.Collections.Generic.IEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Sum;(System.Collections.Generic.IEnumerable,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Sum;(System.Collections.Generic.IEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Sum;(System.Collections.Generic.IEnumerable,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Sum;(System.Collections.Generic.IEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Sum;(System.Collections.Generic.IEnumerable,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Sum;(System.Collections.Generic.IEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Sum;(System.Collections.Generic.IEnumerable,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Sum;(System.Collections.Generic.IEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Sum;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Sum;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Take;(System.Collections.Generic.IEnumerable,System.Int32);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;Take;(System.Collections.Generic.IEnumerable,System.Range);Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;Enumerable;TakeLast;(System.Collections.Generic.IEnumerable,System.Int32);Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;Enumerable;TakeWhile;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;TakeWhile;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;TakeWhile;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;TakeWhile;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;TakeWhile;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;TakeWhile;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;ThenBy;(System.Linq.IOrderedEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;ThenBy;(System.Linq.IOrderedEnumerable,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;ThenBy;(System.Linq.IOrderedEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;ThenBy;(System.Linq.IOrderedEnumerable,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;ThenBy;(System.Linq.IOrderedEnumerable,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;ThenBy;(System.Linq.IOrderedEnumerable,System.Func,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;ThenByDescending;(System.Linq.IOrderedEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;ThenByDescending;(System.Linq.IOrderedEnumerable,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;ThenByDescending;(System.Linq.IOrderedEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;ThenByDescending;(System.Linq.IOrderedEnumerable,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;ThenByDescending;(System.Linq.IOrderedEnumerable,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;ThenByDescending;(System.Linq.IOrderedEnumerable,System.Func,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;ToArray;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;ToDictionary;(System.Collections.Generic.IEnumerable>);Argument[0].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;dfc-generated | | System.Linq;Enumerable;ToDictionary;(System.Collections.Generic.IEnumerable>);Argument[0].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;dfc-generated | @@ -14654,71 +13023,46 @@ summary | System.Linq;Enumerable;ToDictionary;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEqualityComparer);Argument[0].Element.Field[System.ValueTuple`2.Item2];ReturnValue.Element;value;dfc-generated | | System.Linq;Enumerable;ToDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;ToDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;manual | -| System.Linq;Enumerable;ToDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;ToDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[2].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;ToDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;ToDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;ToDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;manual | -| System.Linq;Enumerable;ToDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;ToDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;ToDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;ToDictionary;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;ToDictionary;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;ToDictionary;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;ToDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;ToDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;ToDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;ToList;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;ToLookup;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;ToLookup;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;manual | -| System.Linq;Enumerable;ToLookup;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;ToLookup;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[2].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;ToLookup;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;ToLookup;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;ToLookup;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;manual | -| System.Linq;Enumerable;ToLookup;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;ToLookup;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;ToLookup;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;ToLookup;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;ToLookup;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;ToLookup;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;ToLookup;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;ToLookup;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;ToLookup;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Union;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;Union;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable);Argument[1].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;Union;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;Union;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);Argument[1].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;UnionBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;UnionBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;hq-generated | | System.Linq;Enumerable;UnionBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;ReturnValue.Element;value;dfc-generated | -| System.Linq;Enumerable;UnionBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;ReturnValue.Element;value;hq-generated | | System.Linq;Enumerable;UnionBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);Argument[1].Element;Argument[2].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;UnionBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);Argument[1].Element;Argument[2].Parameter[0];value;hq-generated | | System.Linq;Enumerable;UnionBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);Argument[1].Element;ReturnValue.Element;value;dfc-generated | -| System.Linq;Enumerable;UnionBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);Argument[1].Element;ReturnValue.Element;value;hq-generated | -| System.Linq;Enumerable;UnionBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;UnionBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;UnionBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;UnionBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;hq-generated | | System.Linq;Enumerable;UnionBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;ReturnValue.Element;value;dfc-generated | -| System.Linq;Enumerable;UnionBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;ReturnValue.Element;value;hq-generated | | System.Linq;Enumerable;UnionBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].Element;Argument[2].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;UnionBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].Element;Argument[2].Parameter[0];value;hq-generated | | System.Linq;Enumerable;UnionBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].Element;ReturnValue.Element;value;dfc-generated | -| System.Linq;Enumerable;UnionBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].Element;ReturnValue.Element;value;hq-generated | -| System.Linq;Enumerable;UnionBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;UnionBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;Where;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;Where;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;Where;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Where;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;Where;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;Where;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Zip;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Enumerable;Zip;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);Argument[1].Element;Argument[2].Parameter[1];value;manual | | System.Linq;Enumerable;Zip;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);Argument[2].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;Zip;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Zip;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue.Element.Field[System.ValueTuple`3.Item1];value;dfc-generated | | System.Linq;Enumerable;Zip;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable);Argument[1].Element;ReturnValue.Element.Field[System.ValueTuple`3.Item2];value;dfc-generated | | System.Linq;Enumerable;Zip;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable);Argument[2].Element;ReturnValue.Element.Field[System.ValueTuple`3.Item3];value;dfc-generated | @@ -14728,7 +13072,6 @@ summary | System.Linq;EnumerableQuery;EnumerableQuery;(System.Collections.Generic.IEnumerable);Argument[0].Element;Argument[this];taint;df-generated | | System.Linq;EnumerableQuery;EnumerableQuery;(System.Linq.Expressions.Expression);Argument[0];Argument[this].SyntheticField[System.Linq.EnumerableQuery`1._expression];value;dfc-generated | | System.Linq;EnumerableQuery;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | -| System.Linq;EnumerableQuery;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Linq;EnumerableQuery;ToString;();Argument[this];ReturnValue;taint;df-generated | | System.Linq;EnumerableQuery;get_Expression;();Argument[this].SyntheticField[System.Linq.EnumerableQuery`1._expression];ReturnValue;value;dfc-generated | | System.Linq;EnumerableQuery;get_Provider;();Argument[this];ReturnValue;value;dfc-generated | @@ -14737,32 +13080,18 @@ summary | System.Linq;IOrderedEnumerable;CreateOrderedEnumerable;(System.Func,System.Collections.Generic.IComparer,System.Boolean);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Linq;IQueryable;get_Provider;();Argument[this];ReturnValue;value;dfc-generated | | System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,System.Func);Argument[1].ReturnValue;Argument[1].Parameter[0];value;dfc-generated | -| System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,System.Func);Argument[1].ReturnValue;Argument[1].Parameter[0];value;hq-generated | | System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,System.Func);Argument[1].ReturnValue;ReturnValue;value;dfc-generated | -| System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,System.Func);Argument[1].ReturnValue;ReturnValue;value;hq-generated | -| System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,TAccumulate,System.Func);Argument[1];Argument[2].Parameter[0];value;dfc-generated | -| System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,TAccumulate,System.Func);Argument[1];Argument[2].Parameter[0];value;hq-generated | | System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,TAccumulate,System.Func);Argument[1];ReturnValue;value;dfc-generated | -| System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,TAccumulate,System.Func);Argument[1];ReturnValue;value;hq-generated | | System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,TAccumulate,System.Func);Argument[2].ReturnValue;Argument[2].Parameter[0];value;dfc-generated | -| System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,TAccumulate,System.Func);Argument[2].ReturnValue;Argument[2].Parameter[0];value;hq-generated | | System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,TAccumulate,System.Func);Argument[2].ReturnValue;ReturnValue;value;dfc-generated | -| System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,TAccumulate,System.Func);Argument[2].ReturnValue;ReturnValue;value;hq-generated | -| System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,TAccumulate,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,TAccumulate,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,TAccumulate,System.Func,System.Func);Argument[1];Argument[2].Parameter[0];value;dfc-generated | -| System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,TAccumulate,System.Func,System.Func);Argument[1];Argument[2].Parameter[0];value;hq-generated | | System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,TAccumulate,System.Func,System.Func);Argument[1];Argument[3].Parameter[0];value;dfc-generated | -| System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,TAccumulate,System.Func,System.Func);Argument[1];Argument[3].Parameter[0];value;hq-generated | | System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,TAccumulate,System.Func,System.Func);Argument[2].ReturnValue;Argument[3].Parameter[0];value;dfc-generated | -| System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,TAccumulate,System.Func,System.Func);Argument[2].ReturnValue;Argument[3].Parameter[0];value;hq-generated | -| System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,TAccumulate,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,TAccumulate,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,TAccumulate,System.Func,System.Func);Argument[3].ReturnValue;ReturnValue;value;dfc-generated | -| System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,TAccumulate,System.Func,System.Func);Argument[3].ReturnValue;ReturnValue;value;hq-generated | -| System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,TAccumulate,System.Func,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,TAccumulate,System.Func,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Linq;ImmutableArrayExtensions;All;(System.Collections.Immutable.ImmutableArray,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;ImmutableArrayExtensions;Any;(System.Collections.Immutable.ImmutableArray,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | @@ -14782,12 +13111,8 @@ summary | System.Linq;ImmutableArrayExtensions;LastOrDefault;(System.Collections.Immutable.ImmutableArray,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;ImmutableArrayExtensions;Select;(System.Collections.Immutable.ImmutableArray,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;ImmutableArrayExtensions;SelectMany;(System.Collections.Immutable.ImmutableArray,System.Func>,System.Func);Argument[1].ReturnValue.Element;Argument[2].Parameter[1];value;dfc-generated | -| System.Linq;ImmutableArrayExtensions;SelectMany;(System.Collections.Immutable.ImmutableArray,System.Func>,System.Func);Argument[1].ReturnValue.Element;Argument[2].Parameter[1];value;hq-generated | -| System.Linq;ImmutableArrayExtensions;SelectMany;(System.Collections.Immutable.ImmutableArray,System.Func>,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;ImmutableArrayExtensions;SelectMany;(System.Collections.Immutable.ImmutableArray,System.Func>,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;ImmutableArrayExtensions;SelectMany;(System.Collections.Immutable.ImmutableArray,System.Func>,System.Func);Argument[2].ReturnValue;ReturnValue.Element;value;dfc-generated | -| System.Linq;ImmutableArrayExtensions;SelectMany;(System.Collections.Immutable.ImmutableArray,System.Func>,System.Func);Argument[2].ReturnValue;ReturnValue.Element;value;hq-generated | -| System.Linq;ImmutableArrayExtensions;SelectMany;(System.Collections.Immutable.ImmutableArray,System.Func>,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;ImmutableArrayExtensions;SelectMany;(System.Collections.Immutable.ImmutableArray,System.Func>,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;ImmutableArrayExtensions;SequenceEqual;(System.Collections.Immutable.ImmutableArray,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2];taint;df-generated | | System.Linq;ImmutableArrayExtensions;SequenceEqual;(System.Collections.Immutable.ImmutableArray,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);Argument[1].Element;Argument[2];taint;df-generated | @@ -14800,89 +13125,51 @@ summary | System.Linq;ImmutableArrayExtensions;SingleOrDefault;(System.Collections.Immutable.ImmutableArray,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;ImmutableArrayExtensions;ToArray;(System.Collections.Immutable.ImmutableArray);Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | -| System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | | System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func);Argument[0].Element;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;dfc-generated | -| System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func);Argument[0].Element;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;hq-generated | | System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func);Argument[1].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;dfc-generated | -| System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func);Argument[1].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;hq-generated | -| System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | -| System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | | System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;dfc-generated | -| System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;hq-generated | | System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;dfc-generated | -| System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;hq-generated | -| System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func,System.Func);Argument[1].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;dfc-generated | -| System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func,System.Func);Argument[1].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;hq-generated | -| System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func,System.Func);Argument[2].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;dfc-generated | -| System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func,System.Func);Argument[2].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;hq-generated | -| System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;dfc-generated | -| System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;hq-generated | -| System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;dfc-generated | -| System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;hq-generated | -| System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;ImmutableArrayExtensions;Where;(System.Collections.Immutable.ImmutableArray,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Lookup;ApplyResultSelector;(System.Func,TResult>);Argument[0].ReturnValue;ReturnValue.Element;value;dfc-generated | -| System.Linq;Lookup;ApplyResultSelector;(System.Func,TResult>);Argument[0].ReturnValue;ReturnValue.Element;value;hq-generated | -| System.Linq;Lookup;ApplyResultSelector;(System.Func,TResult>);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Linq;Lookup;ApplyResultSelector;(System.Func,TResult>);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Linq;Lookup;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | -| System.Linq;Lookup;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Linq;Lookup;get_Item;(TKey);Argument[this];ReturnValue;taint;df-generated | | System.Linq;OrderedParallelQuery;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | | System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Func);Argument[1].ReturnValue;ReturnValue;value;dfc-generated | -| System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Func);Argument[1].ReturnValue;ReturnValue;value;hq-generated | -| System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | -| System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Func);Argument[3].ReturnValue;ReturnValue;value;dfc-generated | -| System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Func);Argument[3].ReturnValue;ReturnValue;value;hq-generated | -| System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Func);Argument[4].ReturnValue;ReturnValue;value;dfc-generated | -| System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Func);Argument[4].ReturnValue;ReturnValue;value;hq-generated | -| System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Func);Argument[4];Argument[4].Parameter[delegate-self];value;dfc-generated | | System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Func);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,TAccumulate,System.Func,System.Func,System.Func);Argument[1];ReturnValue;value;dfc-generated | -| System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,TAccumulate,System.Func,System.Func,System.Func);Argument[1];ReturnValue;value;hq-generated | -| System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,TAccumulate,System.Func,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,TAccumulate,System.Func,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,TAccumulate,System.Func,System.Func,System.Func);Argument[3].ReturnValue;ReturnValue;value;dfc-generated | -| System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,TAccumulate,System.Func,System.Func,System.Func);Argument[3].ReturnValue;ReturnValue;value;hq-generated | -| System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,TAccumulate,System.Func,System.Func,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,TAccumulate,System.Func,System.Func,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,TAccumulate,System.Func,System.Func,System.Func);Argument[4].ReturnValue;ReturnValue;value;dfc-generated | -| System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,TAccumulate,System.Func,System.Func,System.Func);Argument[4].ReturnValue;ReturnValue;value;hq-generated | -| System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,TAccumulate,System.Func,System.Func,System.Func);Argument[4];Argument[4].Parameter[delegate-self];value;dfc-generated | | System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,TAccumulate,System.Func,System.Func,System.Func);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,TAccumulate,System.Func,System.Func);Argument[0].Element;Argument[2].Parameter[1];value;manual | | System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,TAccumulate,System.Func,System.Func);Argument[1];Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,TAccumulate,System.Func,System.Func);Argument[2].ReturnValue;Argument[3].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,TAccumulate,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,TAccumulate,System.Func,System.Func);Argument[3].ReturnValue;ReturnValue;value;manual | -| System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,TAccumulate,System.Func,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,TAccumulate,System.Func);Argument[0].Element;Argument[2].Parameter[1];value;manual | | System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,TAccumulate,System.Func);Argument[1];Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,TAccumulate,System.Func);Argument[2].ReturnValue;ReturnValue;value;manual | -| System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,TAccumulate,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[1];value;manual | | System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,System.Func);Argument[1].ReturnValue;ReturnValue;value;manual | -| System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;All;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;All;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Any;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Any;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;AsEnumerable;(System.Linq.ParallelQuery);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;AsOrdered;(System.Linq.ParallelQuery);Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;ParallelEnumerable;AsOrdered;(System.Linq.ParallelQuery);Argument[0].Element;ReturnValue;taint;df-generated | @@ -14892,32 +13179,21 @@ summary | System.Linq;ParallelEnumerable;AsSequential;(System.Linq.ParallelQuery);Argument[0];ReturnValue;value;dfc-generated | | System.Linq;ParallelEnumerable;AsUnordered;(System.Linq.ParallelQuery);Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;ParallelEnumerable;Average;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Average;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Average;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Average;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Average;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Average;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Average;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Average;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Average;(System.Linq.ParallelQuery,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Average;(System.Linq.ParallelQuery,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Average;(System.Linq.ParallelQuery,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Average;(System.Linq.ParallelQuery,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Average;(System.Linq.ParallelQuery,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Average;(System.Linq.ParallelQuery,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Average;(System.Linq.ParallelQuery,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Average;(System.Linq.ParallelQuery,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Average;(System.Linq.ParallelQuery,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Average;(System.Linq.ParallelQuery,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Average;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Average;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Cast;(System.Linq.ParallelQuery);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;Concat;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;Concat;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable);Argument[1].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;Concat;(System.Linq.ParallelQuery,System.Linq.ParallelQuery);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;Concat;(System.Linq.ParallelQuery,System.Linq.ParallelQuery);Argument[1].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;Count;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Count;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;DefaultIfEmpty;(System.Linq.ParallelQuery);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;DefaultIfEmpty;(System.Linq.ParallelQuery,TSource);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;DefaultIfEmpty;(System.Linq.ParallelQuery,TSource);Argument[1];ReturnValue.Element;value;manual | @@ -14932,85 +13208,55 @@ summary | System.Linq;ParallelEnumerable;First;(System.Linq.ParallelQuery);Argument[0].Element;ReturnValue;value;manual | | System.Linq;ParallelEnumerable;First;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;First;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;ReturnValue;value;manual | -| System.Linq;ParallelEnumerable;First;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;FirstOrDefault;(System.Linq.ParallelQuery);Argument[0].Element;ReturnValue;value;manual | | System.Linq;ParallelEnumerable;FirstOrDefault;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;FirstOrDefault;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;ReturnValue;value;manual | -| System.Linq;ParallelEnumerable;FirstOrDefault;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;ForAll;(System.Linq.ParallelQuery,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);Argument[2].ReturnValue;Argument[3].Parameter[1].Element;value;manual | -| System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);Argument[3].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[2].ReturnValue;Argument[3].Parameter[1].Element;value;manual | -| System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[3].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func);Argument[2].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | -| System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,TResult>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,TResult>);Argument[0];Argument[2].Parameter[1];value;manual | | System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,TResult>);Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,TResult>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,TResult>);Argument[2].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,TResult>);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | -| System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);Argument[1].Element;Argument[4].Parameter[1];value;manual | -| System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);Argument[2];Argument[2].Parameter[delegate-self];value;manual | -| System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);Argument[4].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[1].Element;Argument[4].Parameter[1];value;manual | -| System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;manual | -| System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);Argument[1].Element;Argument[4].Parameter[1];value;manual | -| System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);Argument[2];Argument[2].Parameter[delegate-self];value;manual | -| System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);Argument[4].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[1].Element;Argument[4].Parameter[1];value;manual | -| System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;manual | -| System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Intersect;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;Intersect;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable);Argument[1].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;Intersect;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);Argument[0].Element;ReturnValue.Element;value;manual | @@ -15023,217 +13269,136 @@ summary | System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[1].Element;Argument[4].Parameter[1];value;manual | -| System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;manual | -| System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[4].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].Element;Argument[4].Parameter[1];value;manual | -| System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;manual | -| System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func);Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func);Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func);Argument[1].Element;Argument[4].Parameter[1];value;manual | -| System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;manual | -| System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func);Argument[4].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func);Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].Element;Argument[4].Parameter[1];value;manual | -| System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;manual | -| System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Last;(System.Linq.ParallelQuery);Argument[0].Element;ReturnValue;value;manual | | System.Linq;ParallelEnumerable;Last;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;Last;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;ReturnValue;value;manual | -| System.Linq;ParallelEnumerable;Last;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;LastOrDefault;(System.Linq.ParallelQuery);Argument[0].Element;ReturnValue;value;manual | | System.Linq;ParallelEnumerable;LastOrDefault;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;LastOrDefault;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;ReturnValue;value;manual | -| System.Linq;ParallelEnumerable;LastOrDefault;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;LongCount;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;LongCount;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Max;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Max;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Max;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Max;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Max;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Max;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Max;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Max;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Max;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Max;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Max;(System.Linq.ParallelQuery,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Max;(System.Linq.ParallelQuery,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Max;(System.Linq.ParallelQuery,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Max;(System.Linq.ParallelQuery,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Max;(System.Linq.ParallelQuery,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Max;(System.Linq.ParallelQuery,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Max;(System.Linq.ParallelQuery,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Max;(System.Linq.ParallelQuery,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Max;(System.Linq.ParallelQuery,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Max;(System.Linq.ParallelQuery,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Max;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Max;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Min;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Min;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Min;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Min;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Min;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Min;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Min;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Min;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Min;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Min;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Min;(System.Linq.ParallelQuery,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Min;(System.Linq.ParallelQuery,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Min;(System.Linq.ParallelQuery,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Min;(System.Linq.ParallelQuery,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Min;(System.Linq.ParallelQuery,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Min;(System.Linq.ParallelQuery,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Min;(System.Linq.ParallelQuery,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Min;(System.Linq.ParallelQuery,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Min;(System.Linq.ParallelQuery,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Min;(System.Linq.ParallelQuery,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Min;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Min;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;OfType;(System.Linq.ParallelQuery);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;OrderBy;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;OrderBy;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;OrderBy;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;OrderBy;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;OrderBy;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;OrderBy;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;OrderByDescending;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;OrderByDescending;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;OrderByDescending;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;OrderByDescending;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;OrderByDescending;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;OrderByDescending;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Repeat;(TResult,System.Int32);Argument[0];ReturnValue;taint;df-generated | | System.Linq;ParallelEnumerable;Reverse;(System.Linq.ParallelQuery);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;Select;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;Select;(System.Linq.ParallelQuery,System.Func);Argument[1].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;Select;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Select;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;Select;(System.Linq.ParallelQuery,System.Func);Argument[1].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;Select;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;SelectMany;(System.Linq.ParallelQuery,System.Func>,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;SelectMany;(System.Linq.ParallelQuery,System.Func>,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;SelectMany;(System.Linq.ParallelQuery,System.Func>,System.Func);Argument[1].ReturnValue.Element;Argument[2].Parameter[1];value;manual | -| System.Linq;ParallelEnumerable;SelectMany;(System.Linq.ParallelQuery,System.Func>,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;SelectMany;(System.Linq.ParallelQuery,System.Func>,System.Func);Argument[2].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;SelectMany;(System.Linq.ParallelQuery,System.Func>,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;SelectMany;(System.Linq.ParallelQuery,System.Func>,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;SelectMany;(System.Linq.ParallelQuery,System.Func>,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;SelectMany;(System.Linq.ParallelQuery,System.Func>,System.Func);Argument[1].ReturnValue.Element;Argument[2].Parameter[1];value;manual | -| System.Linq;ParallelEnumerable;SelectMany;(System.Linq.ParallelQuery,System.Func>,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;SelectMany;(System.Linq.ParallelQuery,System.Func>,System.Func);Argument[2].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;SelectMany;(System.Linq.ParallelQuery,System.Func>,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;SelectMany;(System.Linq.ParallelQuery,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;SelectMany;(System.Linq.ParallelQuery,System.Func>);Argument[1].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;SelectMany;(System.Linq.ParallelQuery,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;SelectMany;(System.Linq.ParallelQuery,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;SelectMany;(System.Linq.ParallelQuery,System.Func>);Argument[1].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;SelectMany;(System.Linq.ParallelQuery,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;SequenceEqual;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2];taint;df-generated | | System.Linq;ParallelEnumerable;SequenceEqual;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Collections.Generic.IEqualityComparer);Argument[1].Element;Argument[2];taint;df-generated | | System.Linq;ParallelEnumerable;Single;(System.Linq.ParallelQuery);Argument[0].Element;ReturnValue;value;manual | | System.Linq;ParallelEnumerable;Single;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;Single;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;ReturnValue;value;manual | -| System.Linq;ParallelEnumerable;Single;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;SingleOrDefault;(System.Linq.ParallelQuery);Argument[0].Element;ReturnValue;value;manual | | System.Linq;ParallelEnumerable;SingleOrDefault;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;SingleOrDefault;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;ReturnValue;value;manual | -| System.Linq;ParallelEnumerable;SingleOrDefault;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Skip;(System.Linq.ParallelQuery,System.Int32);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;SkipWhile;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;SkipWhile;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;SkipWhile;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;SkipWhile;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;SkipWhile;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;SkipWhile;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Sum;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Sum;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Sum;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Sum;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Sum;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Sum;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Sum;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Sum;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Sum;(System.Linq.ParallelQuery,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Sum;(System.Linq.ParallelQuery,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Sum;(System.Linq.ParallelQuery,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Sum;(System.Linq.ParallelQuery,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Sum;(System.Linq.ParallelQuery,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Sum;(System.Linq.ParallelQuery,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Sum;(System.Linq.ParallelQuery,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Sum;(System.Linq.ParallelQuery,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Sum;(System.Linq.ParallelQuery,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Sum;(System.Linq.ParallelQuery,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Sum;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Sum;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Take;(System.Linq.ParallelQuery,System.Int32);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;TakeWhile;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;TakeWhile;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;TakeWhile;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;TakeWhile;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;TakeWhile;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;TakeWhile;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;ThenBy;(System.Linq.OrderedParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;ThenBy;(System.Linq.OrderedParallelQuery,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;ThenBy;(System.Linq.OrderedParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;ThenBy;(System.Linq.OrderedParallelQuery,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;ThenBy;(System.Linq.OrderedParallelQuery,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;ThenBy;(System.Linq.OrderedParallelQuery,System.Func,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;ThenByDescending;(System.Linq.OrderedParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;ThenByDescending;(System.Linq.OrderedParallelQuery,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;ThenByDescending;(System.Linq.OrderedParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;ThenByDescending;(System.Linq.OrderedParallelQuery,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;ThenByDescending;(System.Linq.OrderedParallelQuery,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;ThenByDescending;(System.Linq.OrderedParallelQuery,System.Func,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;ToArray;(System.Linq.ParallelQuery);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;ToDictionary;(System.Linq.ParallelQuery,System.Func,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;ToDictionary;(System.Linq.ParallelQuery,System.Func,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;ToDictionary;(System.Linq.ParallelQuery,System.Func,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;ToDictionary;(System.Linq.ParallelQuery,System.Func,System.Func);Argument[2].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;ToDictionary;(System.Linq.ParallelQuery,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;ToDictionary;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;ToDictionary;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;ToDictionary;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;ToDictionary;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;ToDictionary;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;ToDictionary;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;ToDictionary;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;ToDictionary;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;ToDictionary;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;ToDictionary;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;ToDictionary;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;ToList;(System.Linq.ParallelQuery);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;ToLookup;(System.Linq.ParallelQuery,System.Func,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;ToLookup;(System.Linq.ParallelQuery,System.Func,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;ToLookup;(System.Linq.ParallelQuery,System.Func,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;ToLookup;(System.Linq.ParallelQuery,System.Func,System.Func);Argument[2].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;ToLookup;(System.Linq.ParallelQuery,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;ToLookup;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;ToLookup;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;ToLookup;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;ToLookup;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;ToLookup;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;ToLookup;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;ToLookup;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;ToLookup;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;ToLookup;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;ToLookup;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;ToLookup;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Union;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;Union;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable);Argument[1].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;Union;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);Argument[0].Element;ReturnValue.Element;value;manual | @@ -15244,10 +13409,8 @@ summary | System.Linq;ParallelEnumerable;Union;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Collections.Generic.IEqualityComparer);Argument[1].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;Where;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;Where;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;Where;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Where;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;Where;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;Where;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;WithCancellation;(System.Linq.ParallelQuery,System.Threading.CancellationToken);Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;ParallelEnumerable;WithDegreeOfParallelism;(System.Linq.ParallelQuery,System.Int32);Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;ParallelEnumerable;WithExecutionMode;(System.Linq.ParallelQuery,System.Linq.ParallelExecutionMode);Argument[0].Element;ReturnValue;taint;df-generated | @@ -15255,62 +13418,43 @@ summary | System.Linq;ParallelEnumerable;Zip;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;Zip;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func);Argument[1].Element;Argument[2].Parameter[1];value;manual | | System.Linq;ParallelEnumerable;Zip;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func);Argument[2].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;Zip;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Zip;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;Zip;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func);Argument[1].Element;Argument[2].Parameter[1];value;manual | | System.Linq;ParallelEnumerable;Zip;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func);Argument[2].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;Zip;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelQuery;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Linq;ParallelQuery;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | | System.Linq;Queryable;Aggregate;(System.Linq.IQueryable,TAccumulate,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[2].Parameter[1];value;manual | | System.Linq;Queryable;Aggregate;(System.Linq.IQueryable,TAccumulate,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);Argument[1];Argument[2].Parameter[0];value;manual | | System.Linq;Queryable;Aggregate;(System.Linq.IQueryable,TAccumulate,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);Argument[2].ReturnValue;Argument[3].Parameter[0];value;manual | -| System.Linq;Queryable;Aggregate;(System.Linq.IQueryable,TAccumulate,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Aggregate;(System.Linq.IQueryable,TAccumulate,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);Argument[3].ReturnValue;ReturnValue;value;manual | -| System.Linq;Queryable;Aggregate;(System.Linq.IQueryable,TAccumulate,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Aggregate;(System.Linq.IQueryable,TAccumulate,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[2].Parameter[1];value;manual | | System.Linq;Queryable;Aggregate;(System.Linq.IQueryable,TAccumulate,System.Linq.Expressions.Expression>);Argument[1];Argument[2].Parameter[0];value;manual | | System.Linq;Queryable;Aggregate;(System.Linq.IQueryable,TAccumulate,System.Linq.Expressions.Expression>);Argument[2].ReturnValue;ReturnValue;value;manual | -| System.Linq;Queryable;Aggregate;(System.Linq.IQueryable,TAccumulate,System.Linq.Expressions.Expression>);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Aggregate;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[1];value;manual | | System.Linq;Queryable;Aggregate;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1].ReturnValue;ReturnValue;value;manual | -| System.Linq;Queryable;Aggregate;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;AggregateBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;AggregateBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;AggregateBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;AggregateBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,TAccumulate,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;AggregateBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,TAccumulate,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;All;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;All;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Any;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;Any;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;AsQueryable;(System.Collections.IEnumerable);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;AsQueryable;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;Average;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;Average;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Average;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;Average;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Average;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;Average;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Average;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;Average;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Average;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;Average;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Average;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;Average;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Average;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;Average;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Average;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;Average;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Average;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;Average;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Average;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;Average;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Cast;(System.Linq.IQueryable);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;Concat;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;Concat;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable);Argument[1].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;Count;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;Count;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;CountBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;DefaultIfEmpty;(System.Linq.IQueryable);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;DefaultIfEmpty;(System.Linq.IQueryable,TSource);Argument[0].Element;ReturnValue.Element;value;manual | @@ -15328,66 +13472,42 @@ summary | System.Linq;Queryable;First;(System.Linq.IQueryable);Argument[0].Element;ReturnValue;value;manual | | System.Linq;Queryable;First;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;First;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;ReturnValue;value;manual | -| System.Linq;Queryable;First;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;FirstOrDefault;(System.Linq.IQueryable);Argument[0].Element;ReturnValue;value;manual | | System.Linq;Queryable;FirstOrDefault;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;FirstOrDefault;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;ReturnValue;value;manual | -| System.Linq;Queryable;FirstOrDefault;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;FirstOrDefault;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,TSource);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | -| System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);Argument[2].ReturnValue;Argument[3].Parameter[1].Element;value;manual | -| System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);Argument[3].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | -| System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);Argument[2].ReturnValue;Argument[3].Parameter[1].Element;value;manual | -| System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);Argument[3].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);Argument[2].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | -| System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | -| System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);Argument[2].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | -| System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | -| System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;GroupJoin;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Queryable;GroupJoin;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;Queryable;GroupJoin;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;Queryable;GroupJoin;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);Argument[1].Element;Argument[4].Parameter[1];value;manual | -| System.Linq;Queryable;GroupJoin;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);Argument[2];Argument[2].Parameter[delegate-self];value;manual | -| System.Linq;Queryable;GroupJoin;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Queryable;GroupJoin;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);Argument[4].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Queryable;GroupJoin;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;Queryable;GroupJoin;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Queryable;GroupJoin;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;Queryable;GroupJoin;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;Queryable;GroupJoin;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);Argument[1].Element;Argument[4].Parameter[1];value;manual | -| System.Linq;Queryable;GroupJoin;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;manual | -| System.Linq;Queryable;GroupJoin;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Queryable;GroupJoin;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Queryable;GroupJoin;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Intersect;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;Intersect;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable);Argument[1].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;Intersect;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);Argument[0].Element;ReturnValue.Element;value;manual | @@ -15398,26 +13518,18 @@ summary | System.Linq;Queryable;Join;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;Queryable;Join;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;Queryable;Join;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);Argument[1].Element;Argument[4].Parameter[1];value;manual | -| System.Linq;Queryable;Join;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);Argument[2];Argument[2].Parameter[delegate-self];value;manual | -| System.Linq;Queryable;Join;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Join;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);Argument[4].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Queryable;Join;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Join;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Queryable;Join;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;Queryable;Join;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;Queryable;Join;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);Argument[1].Element;Argument[4].Parameter[1];value;manual | -| System.Linq;Queryable;Join;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;manual | -| System.Linq;Queryable;Join;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Join;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Queryable;Join;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Last;(System.Linq.IQueryable);Argument[0].Element;ReturnValue;value;manual | | System.Linq;Queryable;Last;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;Last;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;ReturnValue;value;manual | -| System.Linq;Queryable;Last;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;LastOrDefault;(System.Linq.IQueryable);Argument[0].Element;ReturnValue;value;manual | | System.Linq;Queryable;LastOrDefault;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;LastOrDefault;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;ReturnValue;value;manual | -| System.Linq;Queryable;LastOrDefault;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;LastOrDefault;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,TSource);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;LeftJoin;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;LeftJoin;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | @@ -15426,30 +13538,23 @@ summary | System.Linq;Queryable;LeftJoin;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;LeftJoin;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;LongCount;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;LongCount;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Max;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;Max;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;MaxBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;MaxBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;MaxBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;Min;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;Min;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;MinBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;MinBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;MinBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;OfType;(System.Linq.IQueryable);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;OrderBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;OrderBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Queryable;OrderBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;OrderBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;OrderBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Queryable;OrderBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;OrderByDescending;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;OrderByDescending;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Queryable;OrderByDescending;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;OrderByDescending;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;OrderByDescending;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Queryable;OrderByDescending;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Reverse;(System.Linq.IQueryable);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;RightJoin;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;RightJoin;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | @@ -15459,83 +13564,55 @@ summary | System.Linq;Queryable;RightJoin;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;Select;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;Select;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Queryable;Select;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Select;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;Select;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Queryable;Select;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;SelectMany;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;SelectMany;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Queryable;SelectMany;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>,System.Linq.Expressions.Expression>);Argument[1].ReturnValue.Element;Argument[2].Parameter[1];value;manual | -| System.Linq;Queryable;SelectMany;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;SelectMany;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>,System.Linq.Expressions.Expression>);Argument[2].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Queryable;SelectMany;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>,System.Linq.Expressions.Expression>);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Queryable;SelectMany;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;SelectMany;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Queryable;SelectMany;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>,System.Linq.Expressions.Expression>);Argument[1].ReturnValue.Element;Argument[2].Parameter[1];value;manual | -| System.Linq;Queryable;SelectMany;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;SelectMany;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>,System.Linq.Expressions.Expression>);Argument[2].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Queryable;SelectMany;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>,System.Linq.Expressions.Expression>);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Queryable;SelectMany;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;SelectMany;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);Argument[1].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Queryable;SelectMany;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;SelectMany;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;SelectMany;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);Argument[1].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Queryable;SelectMany;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Single;(System.Linq.IQueryable);Argument[0].Element;ReturnValue;value;manual | | System.Linq;Queryable;Single;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;Single;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;ReturnValue;value;manual | -| System.Linq;Queryable;Single;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;SingleOrDefault;(System.Linq.IQueryable);Argument[0].Element;ReturnValue;value;manual | | System.Linq;Queryable;SingleOrDefault;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;SingleOrDefault;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;ReturnValue;value;manual | -| System.Linq;Queryable;SingleOrDefault;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;SingleOrDefault;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,TSource);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;Skip;(System.Linq.IQueryable,System.Int32);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;SkipWhile;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;SkipWhile;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Queryable;SkipWhile;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;SkipWhile;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;SkipWhile;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Queryable;SkipWhile;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Sum;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;Sum;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Sum;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;Sum;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Sum;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;Sum;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Sum;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;Sum;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Sum;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;Sum;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Sum;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;Sum;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Sum;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;Sum;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Sum;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;Sum;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Sum;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;Sum;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Sum;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;Sum;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Take;(System.Linq.IQueryable,System.Int32);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;TakeWhile;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;TakeWhile;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Queryable;TakeWhile;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;TakeWhile;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;TakeWhile;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Queryable;TakeWhile;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;ThenBy;(System.Linq.IOrderedQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;ThenBy;(System.Linq.IOrderedQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Queryable;ThenBy;(System.Linq.IOrderedQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;ThenBy;(System.Linq.IOrderedQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;ThenBy;(System.Linq.IOrderedQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Queryable;ThenBy;(System.Linq.IOrderedQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;ThenByDescending;(System.Linq.IOrderedQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;ThenByDescending;(System.Linq.IOrderedQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Queryable;ThenByDescending;(System.Linq.IOrderedQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;ThenByDescending;(System.Linq.IOrderedQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;ThenByDescending;(System.Linq.IOrderedQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Queryable;ThenByDescending;(System.Linq.IOrderedQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Union;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;Union;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable);Argument[1].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;Union;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);Argument[0].Element;ReturnValue.Element;value;manual | @@ -15544,14 +13621,11 @@ summary | System.Linq;Queryable;UnionBy;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;Where;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;Where;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Queryable;Where;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Where;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;Where;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Queryable;Where;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Zip;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Queryable;Zip;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>);Argument[1].Element;Argument[2].Parameter[1];value;manual | | System.Linq;Queryable;Zip;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>);Argument[2].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Queryable;Zip;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Media;SoundPlayer;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | | System.Media;SoundPlayer;add_LoadCompleted;(System.ComponentModel.AsyncCompletedEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Media;SoundPlayer;add_SoundLocationChanged;(System.EventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | @@ -15566,7 +13640,6 @@ summary | System.Net.Http.Headers;AuthenticationHeaderValue;AuthenticationHeaderValue;(System.String,System.String);Argument[1];Argument[this].SyntheticField[System.Net.Http.Headers.AuthenticationHeaderValue._parameter];value;dfc-generated | | System.Net.Http.Headers;AuthenticationHeaderValue;Clone;();Argument[this].SyntheticField[System.Net.Http.Headers.AuthenticationHeaderValue._parameter];ReturnValue.SyntheticField[System.Net.Http.Headers.AuthenticationHeaderValue._parameter];value;dfc-generated | | System.Net.Http.Headers;AuthenticationHeaderValue;Clone;();Argument[this].SyntheticField[System.Net.Http.Headers.AuthenticationHeaderValue._scheme];ReturnValue.SyntheticField[System.Net.Http.Headers.AuthenticationHeaderValue._scheme];value;dfc-generated | -| System.Net.Http.Headers;AuthenticationHeaderValue;Clone;();Argument[this];ReturnValue;value;dfc-generated | | System.Net.Http.Headers;AuthenticationHeaderValue;ToString;();Argument[this].SyntheticField[System.Net.Http.Headers.AuthenticationHeaderValue._parameter];ReturnValue;taint;dfc-generated | | System.Net.Http.Headers;AuthenticationHeaderValue;ToString;();Argument[this].SyntheticField[System.Net.Http.Headers.AuthenticationHeaderValue._scheme];ReturnValue;value;dfc-generated | | System.Net.Http.Headers;AuthenticationHeaderValue;get_Parameter;();Argument[this].SyntheticField[System.Net.Http.Headers.AuthenticationHeaderValue._parameter];ReturnValue;value;dfc-generated | @@ -15579,13 +13652,10 @@ summary | System.Net.Http.Headers;ContentDispositionHeaderValue;ToString;();Argument[this].SyntheticField[System.Net.Http.Headers.ContentDispositionHeaderValue._dispositionType];ReturnValue;taint;dfc-generated | | System.Net.Http.Headers;ContentRangeHeaderValue;Clone;();Argument[this];ReturnValue;value;dfc-generated | | System.Net.Http.Headers;EntityTagHeaderValue;Clone;();Argument[this].Property[System.Net.Http.Headers.EntityTagHeaderValue.Tag];ReturnValue.Property[System.Net.Http.Headers.EntityTagHeaderValue.Tag];value;dfc-generated | -| System.Net.Http.Headers;EntityTagHeaderValue;Clone;();Argument[this];ReturnValue;value;dfc-generated | | System.Net.Http.Headers;EntityTagHeaderValue;EntityTagHeaderValue;(System.String,System.Boolean);Argument[0];Argument[this].Property[System.Net.Http.Headers.EntityTagHeaderValue.Tag];value;dfc-generated | | System.Net.Http.Headers;EntityTagHeaderValue;ToString;();Argument[this].Property[System.Net.Http.Headers.EntityTagHeaderValue.Tag];ReturnValue;value;dfc-generated | -| System.Net.Http.Headers;HeaderStringValues+Enumerator;get_Current;();Argument[this].Property[System.Net.Http.Headers.HeaderStringValues+Enumerator.Current];ReturnValue;value;df-generated | | System.Net.Http.Headers;HeaderStringValues+Enumerator;get_Current;();Argument[this].Property[System.Net.Http.Headers.HeaderStringValues+Enumerator.Current];ReturnValue;value;dfc-generated | | System.Net.Http.Headers;HeaderStringValues+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Net.Http.Headers;HeaderStringValues+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Net.Http.Headers;HeaderStringValues;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | | System.Net.Http.Headers;HeaderStringValues;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Net.Http.Headers;HeaderStringValues;GetEnumerator;();Argument[this];ReturnValue;taint;df-generated | @@ -15641,7 +13711,6 @@ summary | System.Net.Http.Headers;NameValueWithParametersHeaderValue;Clone;();Argument[this];ReturnValue;value;dfc-generated | | System.Net.Http.Headers;ProductHeaderValue;Clone;();Argument[this].SyntheticField[System.Net.Http.Headers.ProductHeaderValue._name];ReturnValue.SyntheticField[System.Net.Http.Headers.ProductHeaderValue._name];value;dfc-generated | | System.Net.Http.Headers;ProductHeaderValue;Clone;();Argument[this].SyntheticField[System.Net.Http.Headers.ProductHeaderValue._version];ReturnValue.SyntheticField[System.Net.Http.Headers.ProductHeaderValue._version];value;dfc-generated | -| System.Net.Http.Headers;ProductHeaderValue;Clone;();Argument[this];ReturnValue;value;dfc-generated | | System.Net.Http.Headers;ProductHeaderValue;ProductHeaderValue;(System.String,System.String);Argument[0];Argument[this].SyntheticField[System.Net.Http.Headers.ProductHeaderValue._name];value;dfc-generated | | System.Net.Http.Headers;ProductHeaderValue;ProductHeaderValue;(System.String,System.String);Argument[1];Argument[this].SyntheticField[System.Net.Http.Headers.ProductHeaderValue._version];value;dfc-generated | | System.Net.Http.Headers;ProductHeaderValue;ToString;();Argument[this].SyntheticField[System.Net.Http.Headers.ProductHeaderValue._name];ReturnValue;value;dfc-generated | @@ -15650,7 +13719,6 @@ summary | System.Net.Http.Headers;ProductHeaderValue;get_Version;();Argument[this].SyntheticField[System.Net.Http.Headers.ProductHeaderValue._version];ReturnValue;value;dfc-generated | | System.Net.Http.Headers;ProductInfoHeaderValue;Clone;();Argument[this].SyntheticField[System.Net.Http.Headers.ProductInfoHeaderValue._comment];ReturnValue.SyntheticField[System.Net.Http.Headers.ProductInfoHeaderValue._comment];value;dfc-generated | | System.Net.Http.Headers;ProductInfoHeaderValue;Clone;();Argument[this].SyntheticField[System.Net.Http.Headers.ProductInfoHeaderValue._product];ReturnValue.SyntheticField[System.Net.Http.Headers.ProductInfoHeaderValue._product];value;dfc-generated | -| System.Net.Http.Headers;ProductInfoHeaderValue;Clone;();Argument[this];ReturnValue;value;dfc-generated | | System.Net.Http.Headers;ProductInfoHeaderValue;ProductInfoHeaderValue;(System.Net.Http.Headers.ProductHeaderValue);Argument[0];Argument[this].SyntheticField[System.Net.Http.Headers.ProductInfoHeaderValue._product];value;dfc-generated | | System.Net.Http.Headers;ProductInfoHeaderValue;ProductInfoHeaderValue;(System.String);Argument[0];Argument[this].SyntheticField[System.Net.Http.Headers.ProductInfoHeaderValue._comment];value;dfc-generated | | System.Net.Http.Headers;ProductInfoHeaderValue;ToString;();Argument[this].SyntheticField[System.Net.Http.Headers.ProductInfoHeaderValue._comment];ReturnValue;value;dfc-generated | @@ -15658,7 +13726,6 @@ summary | System.Net.Http.Headers;ProductInfoHeaderValue;get_Product;();Argument[this].SyntheticField[System.Net.Http.Headers.ProductInfoHeaderValue._product];ReturnValue;value;dfc-generated | | System.Net.Http.Headers;RangeConditionHeaderValue;Clone;();Argument[this].SyntheticField[System.Net.Http.Headers.RangeConditionHeaderValue._date];ReturnValue.SyntheticField[System.Net.Http.Headers.RangeConditionHeaderValue._date];value;dfc-generated | | System.Net.Http.Headers;RangeConditionHeaderValue;Clone;();Argument[this].SyntheticField[System.Net.Http.Headers.RangeConditionHeaderValue._entityTag];ReturnValue.SyntheticField[System.Net.Http.Headers.RangeConditionHeaderValue._entityTag];value;dfc-generated | -| System.Net.Http.Headers;RangeConditionHeaderValue;Clone;();Argument[this];ReturnValue;value;dfc-generated | | System.Net.Http.Headers;RangeConditionHeaderValue;RangeConditionHeaderValue;(System.DateTimeOffset);Argument[0];Argument[this].SyntheticField[System.Net.Http.Headers.RangeConditionHeaderValue._date];value;dfc-generated | | System.Net.Http.Headers;RangeConditionHeaderValue;RangeConditionHeaderValue;(System.Net.Http.Headers.EntityTagHeaderValue);Argument[0];Argument[this].SyntheticField[System.Net.Http.Headers.RangeConditionHeaderValue._entityTag];value;dfc-generated | | System.Net.Http.Headers;RangeConditionHeaderValue;ToString;();Argument[this].SyntheticField[System.Net.Http.Headers.RangeConditionHeaderValue._entityTag].Property[System.Net.Http.Headers.EntityTagHeaderValue.Tag];ReturnValue;value;dfc-generated | @@ -15668,13 +13735,11 @@ summary | System.Net.Http.Headers;RangeItemHeaderValue;Clone;();Argument[this];ReturnValue;value;dfc-generated | | System.Net.Http.Headers;RetryConditionHeaderValue;Clone;();Argument[this].SyntheticField[System.Net.Http.Headers.RetryConditionHeaderValue._date];ReturnValue.SyntheticField[System.Net.Http.Headers.RetryConditionHeaderValue._date];value;dfc-generated | | System.Net.Http.Headers;RetryConditionHeaderValue;Clone;();Argument[this].SyntheticField[System.Net.Http.Headers.RetryConditionHeaderValue._delta];ReturnValue.SyntheticField[System.Net.Http.Headers.RetryConditionHeaderValue._delta];value;dfc-generated | -| System.Net.Http.Headers;RetryConditionHeaderValue;Clone;();Argument[this];ReturnValue;value;dfc-generated | | System.Net.Http.Headers;RetryConditionHeaderValue;RetryConditionHeaderValue;(System.DateTimeOffset);Argument[0];Argument[this].SyntheticField[System.Net.Http.Headers.RetryConditionHeaderValue._date];value;dfc-generated | | System.Net.Http.Headers;RetryConditionHeaderValue;RetryConditionHeaderValue;(System.TimeSpan);Argument[0];Argument[this].SyntheticField[System.Net.Http.Headers.RetryConditionHeaderValue._delta];value;dfc-generated | | System.Net.Http.Headers;RetryConditionHeaderValue;get_Date;();Argument[this].SyntheticField[System.Net.Http.Headers.RetryConditionHeaderValue._date];ReturnValue;value;dfc-generated | | System.Net.Http.Headers;RetryConditionHeaderValue;get_Delta;();Argument[this].SyntheticField[System.Net.Http.Headers.RetryConditionHeaderValue._delta];ReturnValue;value;dfc-generated | | System.Net.Http.Headers;StringWithQualityHeaderValue;Clone;();Argument[this].SyntheticField[System.Net.Http.Headers.StringWithQualityHeaderValue._value];ReturnValue.SyntheticField[System.Net.Http.Headers.StringWithQualityHeaderValue._value];value;dfc-generated | -| System.Net.Http.Headers;StringWithQualityHeaderValue;Clone;();Argument[this];ReturnValue;value;dfc-generated | | System.Net.Http.Headers;StringWithQualityHeaderValue;StringWithQualityHeaderValue;(System.String);Argument[0];Argument[this].SyntheticField[System.Net.Http.Headers.StringWithQualityHeaderValue._value];value;dfc-generated | | System.Net.Http.Headers;StringWithQualityHeaderValue;StringWithQualityHeaderValue;(System.String,System.Double);Argument[0];Argument[this].SyntheticField[System.Net.Http.Headers.StringWithQualityHeaderValue._value];value;dfc-generated | | System.Net.Http.Headers;StringWithQualityHeaderValue;ToString;();Argument[this].SyntheticField[System.Net.Http.Headers.StringWithQualityHeaderValue._value];ReturnValue;value;dfc-generated | @@ -15699,7 +13764,6 @@ summary | System.Net.Http.Headers;WarningHeaderValue;Clone;();Argument[this].SyntheticField[System.Net.Http.Headers.WarningHeaderValue._agent];ReturnValue.SyntheticField[System.Net.Http.Headers.WarningHeaderValue._agent];value;dfc-generated | | System.Net.Http.Headers;WarningHeaderValue;Clone;();Argument[this].SyntheticField[System.Net.Http.Headers.WarningHeaderValue._date];ReturnValue.SyntheticField[System.Net.Http.Headers.WarningHeaderValue._date];value;dfc-generated | | System.Net.Http.Headers;WarningHeaderValue;Clone;();Argument[this].SyntheticField[System.Net.Http.Headers.WarningHeaderValue._text];ReturnValue.SyntheticField[System.Net.Http.Headers.WarningHeaderValue._text];value;dfc-generated | -| System.Net.Http.Headers;WarningHeaderValue;Clone;();Argument[this];ReturnValue;value;dfc-generated | | System.Net.Http.Headers;WarningHeaderValue;WarningHeaderValue;(System.Int32,System.String,System.String);Argument[1];Argument[this].SyntheticField[System.Net.Http.Headers.WarningHeaderValue._agent];value;dfc-generated | | System.Net.Http.Headers;WarningHeaderValue;WarningHeaderValue;(System.Int32,System.String,System.String);Argument[2];Argument[this].SyntheticField[System.Net.Http.Headers.WarningHeaderValue._text];value;dfc-generated | | System.Net.Http.Headers;WarningHeaderValue;WarningHeaderValue;(System.Int32,System.String,System.String,System.DateTimeOffset);Argument[1];Argument[this].SyntheticField[System.Net.Http.Headers.WarningHeaderValue._agent];value;dfc-generated | @@ -15726,14 +13790,8 @@ summary | System.Net.Http.Metrics;HttpMetricsEnrichmentContext;get_Response;();Argument[this];ReturnValue;taint;df-generated | | System.Net.Http;ByteArrayContent;ByteArrayContent;(System.Byte[]);Argument[0];Argument[this].SyntheticField[System.Net.Http.ByteArrayContent._content];value;dfc-generated | | System.Net.Http;ByteArrayContent;ByteArrayContent;(System.Byte[],System.Int32,System.Int32);Argument[0];Argument[this].SyntheticField[System.Net.Http.ByteArrayContent._content];value;dfc-generated | -| System.Net.Http;ByteArrayContent;CreateContentReadStream;(System.Threading.CancellationToken);Argument[this].SyntheticField[System.Net.Http.ByteArrayContent._content].Element;ReturnValue;taint;df-generated | | System.Net.Http;ByteArrayContent;CreateContentReadStream;(System.Threading.CancellationToken);Argument[this].SyntheticField[System.Net.Http.ByteArrayContent._content].Element;ReturnValue;taint;dfc-generated | -| System.Net.Http;ByteArrayContent;CreateContentReadStream;(System.Threading.CancellationToken);Argument[this];ReturnValue;taint;df-generated | -| System.Net.Http;ByteArrayContent;CreateContentReadStream;(System.Threading.CancellationToken);Argument[this];ReturnValue;taint;dfc-generated | -| System.Net.Http;ByteArrayContent;CreateContentReadStreamAsync;();Argument[this].SyntheticField[System.Net.Http.ByteArrayContent._content].Element;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];taint;df-generated | | System.Net.Http;ByteArrayContent;CreateContentReadStreamAsync;();Argument[this].SyntheticField[System.Net.Http.ByteArrayContent._content].Element;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];taint;dfc-generated | -| System.Net.Http;ByteArrayContent;CreateContentReadStreamAsync;();Argument[this];ReturnValue;taint;df-generated | -| System.Net.Http;ByteArrayContent;CreateContentReadStreamAsync;();Argument[this];ReturnValue;taint;dfc-generated | | System.Net.Http;ByteArrayContent;SerializeToStream;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);Argument[this];Argument[0];taint;df-generated | | System.Net.Http;ByteArrayContent;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext);Argument[0];ReturnValue;taint;df-generated | | System.Net.Http;ByteArrayContent;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext);Argument[this];Argument[0];taint;df-generated | @@ -15779,7 +13837,6 @@ summary | System.Net.Http;HttpContent;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);Argument[this];Argument[0];taint;df-generated | | System.Net.Http;HttpContent;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);Argument[this];ReturnValue;taint;df-generated | | System.Net.Http;HttpIOException;get_Message;();Argument[this].Property[System.Exception.Message];ReturnValue;taint;dfc-generated | -| System.Net.Http;HttpIOException;get_Message;();Argument[this].SyntheticField[System.Exception._message];ReturnValue;value;dfc-generated | | System.Net.Http;HttpMessageInvoker;HttpMessageInvoker;(System.Net.Http.HttpMessageHandler,System.Boolean);Argument[0];Argument[this];taint;df-generated | | System.Net.Http;HttpMessageInvoker;Send;(System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken);Argument[this];Argument[0];taint;df-generated | | System.Net.Http;HttpMessageInvoker;SendAsync;(System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken);Argument[this];Argument[0];taint;df-generated | @@ -15793,7 +13850,6 @@ summary | System.Net.Http;HttpRequestMessage;get_Properties;();Argument[this].Property[System.Net.Http.HttpRequestMessage.Options];ReturnValue;value;dfc-generated | | System.Net.Http;HttpRequestOptions;Add;(System.Collections.Generic.KeyValuePair);Argument[0].Property[System.Collections.Generic.KeyValuePair`2.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | | System.Net.Http;HttpRequestOptions;Add;(System.Collections.Generic.KeyValuePair);Argument[0].Property[System.Collections.Generic.KeyValuePair`2.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;manual | -| System.Net.Http;HttpRequestOptions;Add;(System.Collections.Generic.KeyValuePair);Argument[0];Argument[this].Element;value;manual | | System.Net.Http;HttpRequestOptions;Add;(System.String,System.Object);Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | | System.Net.Http;HttpRequestOptions;Add;(System.String,System.Object);Argument[1];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;manual | | System.Net.Http;HttpRequestOptions;Clear;();Argument[this].WithoutElement;Argument[this];value;manual | @@ -15856,10 +13912,7 @@ summary | System.Net.Http;SocketsHttpPlaintextStreamFilterContext;get_PlaintextStream;();Argument[this];ReturnValue;taint;df-generated | | System.Net.Http;StreamContent;CreateContentReadStream;(System.Threading.CancellationToken);Argument[this];ReturnValue;taint;df-generated | | System.Net.Http;StreamContent;CreateContentReadStreamAsync;();Argument[this];ReturnValue;taint;df-generated | -| System.Net.Http;StreamContent;SerializeToStream;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);Argument[this].SyntheticField[System.Net.Http.StreamContent._content];Argument[0];taint;df-generated | | System.Net.Http;StreamContent;SerializeToStream;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);Argument[this].SyntheticField[System.Net.Http.StreamContent._content];Argument[0];taint;dfc-generated | -| System.Net.Http;StreamContent;SerializeToStream;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);Argument[this];Argument[0];taint;df-generated | -| System.Net.Http;StreamContent;SerializeToStream;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);Argument[this];Argument[0];taint;dfc-generated | | System.Net.Http;StreamContent;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext);Argument[0];ReturnValue;taint;df-generated | | System.Net.Http;StreamContent;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext);Argument[this];Argument[0];taint;df-generated | | System.Net.Http;StreamContent;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext);Argument[this];ReturnValue;taint;df-generated | @@ -15877,8 +13930,6 @@ summary | System.Net.Mail;AlternateView;CreateAlternateViewFromString;(System.String,System.Net.Mime.ContentType);Argument[0];ReturnValue;taint;df-generated | | System.Net.Mail;AlternateView;CreateAlternateViewFromString;(System.String,System.Net.Mime.ContentType);Argument[1];ReturnValue;taint;df-generated | | System.Net.Mail;AlternateView;CreateAlternateViewFromString;(System.String,System.Text.Encoding,System.String);Argument[0];ReturnValue;taint;df-generated | -| System.Net.Mail;AlternateViewCollection;InsertItem;(System.Int32,System.Net.Mail.AlternateView);Argument[1];Argument[this].SyntheticField[System.Collections.ObjectModel.Collection`1.items].Element;value;dfc-generated | -| System.Net.Mail;AlternateViewCollection;SetItem;(System.Int32,System.Net.Mail.AlternateView);Argument[1];Argument[this];taint;df-generated | | System.Net.Mail;Attachment;Attachment;(System.IO.Stream,System.Net.Mime.ContentType);Argument[1];Argument[this];taint;df-generated | | System.Net.Mail;Attachment;Attachment;(System.IO.Stream,System.String);Argument[1];Argument[this];taint;df-generated | | System.Net.Mail;Attachment;Attachment;(System.IO.Stream,System.String,System.String);Argument[1];Argument[this];taint;df-generated | @@ -15900,14 +13951,10 @@ summary | System.Net.Mail;AttachmentBase;AttachmentBase;(System.String,System.Net.Mime.ContentType);Argument[0];Argument[this].SyntheticField[System.Net.Mail.AttachmentBase._part].SyntheticField[System.Net.Mime.MimePart._stream];taint;dfc-generated | | System.Net.Mail;AttachmentBase;AttachmentBase;(System.String,System.String);Argument[0];Argument[this].SyntheticField[System.Net.Mail.AttachmentBase._part].SyntheticField[System.Net.Mime.MimePart._stream];taint;dfc-generated | | System.Net.Mail;AttachmentBase;get_ContentStream;();Argument[this].SyntheticField[System.Net.Mail.AttachmentBase._part].SyntheticField[System.Net.Mime.MimePart._stream];ReturnValue;value;dfc-generated | -| System.Net.Mail;AttachmentCollection;InsertItem;(System.Int32,System.Net.Mail.Attachment);Argument[1];Argument[this].SyntheticField[System.Collections.ObjectModel.Collection`1.items].Element;value;dfc-generated | -| System.Net.Mail;AttachmentCollection;SetItem;(System.Int32,System.Net.Mail.Attachment);Argument[1];Argument[this];taint;df-generated | | System.Net.Mail;LinkedResource;CreateLinkedResourceFromString;(System.String);Argument[0];ReturnValue;taint;df-generated | | System.Net.Mail;LinkedResource;CreateLinkedResourceFromString;(System.String,System.Net.Mime.ContentType);Argument[0];ReturnValue;taint;df-generated | | System.Net.Mail;LinkedResource;CreateLinkedResourceFromString;(System.String,System.Net.Mime.ContentType);Argument[1];ReturnValue;taint;df-generated | | System.Net.Mail;LinkedResource;CreateLinkedResourceFromString;(System.String,System.Text.Encoding,System.String);Argument[0];ReturnValue;taint;df-generated | -| System.Net.Mail;LinkedResourceCollection;InsertItem;(System.Int32,System.Net.Mail.LinkedResource);Argument[1];Argument[this].SyntheticField[System.Collections.ObjectModel.Collection`1.items].Element;value;dfc-generated | -| System.Net.Mail;LinkedResourceCollection;SetItem;(System.Int32,System.Net.Mail.LinkedResource);Argument[1];Argument[this];taint;df-generated | | System.Net.Mail;MailAddress;MailAddress;(System.String,System.String,System.Text.Encoding);Argument[0];Argument[this].SyntheticField[System.Net.Mail.MailAddress._displayName];taint;dfc-generated | | System.Net.Mail;MailAddress;MailAddress;(System.String,System.String,System.Text.Encoding);Argument[0];Argument[this].SyntheticField[System.Net.Mail.MailAddress._host];taint;dfc-generated | | System.Net.Mail;MailAddress;MailAddress;(System.String,System.String,System.Text.Encoding);Argument[0];Argument[this].SyntheticField[System.Net.Mail.MailAddress._userName];taint;dfc-generated | @@ -15930,8 +13977,6 @@ summary | System.Net.Mail;MailAddress;get_Host;();Argument[this].SyntheticField[System.Net.Mail.MailAddress._host];ReturnValue;value;dfc-generated | | System.Net.Mail;MailAddress;get_User;();Argument[this].SyntheticField[System.Net.Mail.MailAddress._userName];ReturnValue;value;dfc-generated | | System.Net.Mail;MailAddressCollection;Add;(System.String);Argument[0];Argument[this].Element;value;manual | -| System.Net.Mail;MailAddressCollection;InsertItem;(System.Int32,System.Net.Mail.MailAddress);Argument[1];Argument[this].SyntheticField[System.Collections.ObjectModel.Collection`1.items].Element;value;dfc-generated | -| System.Net.Mail;MailAddressCollection;SetItem;(System.Int32,System.Net.Mail.MailAddress);Argument[1];Argument[this];taint;df-generated | | System.Net.Mail;MailAddressCollection;ToString;();Argument[this].Element;ReturnValue;taint;dfc-generated | | System.Net.Mail;MailMessage;MailMessage;(System.Net.Mail.MailAddress,System.Net.Mail.MailAddress);Argument[0];Argument[this];taint;df-generated | | System.Net.Mail;MailMessage;MailMessage;(System.Net.Mail.MailAddress,System.Net.Mail.MailAddress);Argument[1];Argument[this];taint;df-generated | @@ -15949,15 +13994,12 @@ summary | System.Net.Mail;SmtpClient;remove_SendCompleted;(System.Net.Mail.SendCompletedEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net.Mail;SmtpException;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | | System.Net.Mail;SmtpFailedRecipientException;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this].SyntheticField[System.Net.Mail.SmtpFailedRecipientException._failedRecipient];Argument[0];taint;dfc-generated | -| System.Net.Mail;SmtpFailedRecipientException;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | | System.Net.Mail;SmtpFailedRecipientException;SmtpFailedRecipientException;(System.Net.Mail.SmtpStatusCode,System.String);Argument[1];Argument[this].SyntheticField[System.Net.Mail.SmtpFailedRecipientException._failedRecipient];value;dfc-generated | | System.Net.Mail;SmtpFailedRecipientException;SmtpFailedRecipientException;(System.Net.Mail.SmtpStatusCode,System.String,System.String);Argument[1];Argument[this].SyntheticField[System.Net.Mail.SmtpFailedRecipientException._failedRecipient];value;dfc-generated | | System.Net.Mail;SmtpFailedRecipientException;SmtpFailedRecipientException;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[0];Argument[this].SyntheticField[System.Net.Mail.SmtpFailedRecipientException._failedRecipient];taint;dfc-generated | | System.Net.Mail;SmtpFailedRecipientException;SmtpFailedRecipientException;(System.String,System.String,System.Exception);Argument[1];Argument[this].SyntheticField[System.Net.Mail.SmtpFailedRecipientException._failedRecipient];value;dfc-generated | | System.Net.Mail;SmtpFailedRecipientException;get_FailedRecipient;();Argument[this].SyntheticField[System.Net.Mail.SmtpFailedRecipientException._failedRecipient];ReturnValue;value;dfc-generated | -| System.Net.Mail;SmtpFailedRecipientsException;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this].SyntheticField[System.Net.Mail.SmtpFailedRecipientException._failedRecipient];Argument[0];taint;dfc-generated | | System.Net.Mail;SmtpFailedRecipientsException;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this].SyntheticField[System.Net.Mail.SmtpFailedRecipientsException._innerExceptions];Argument[0];taint;dfc-generated | -| System.Net.Mail;SmtpFailedRecipientsException;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | | System.Net.Mail;SmtpFailedRecipientsException;SmtpFailedRecipientsException;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[0];Argument[this].SyntheticField[System.Net.Mail.SmtpFailedRecipientsException._innerExceptions];taint;dfc-generated | | System.Net.Mail;SmtpFailedRecipientsException;SmtpFailedRecipientsException;(System.String,System.Exception);Argument[1];Argument[this].SyntheticField[System.Net.Mail.SmtpFailedRecipientsException._innerExceptions].Element;value;dfc-generated | | System.Net.Mail;SmtpFailedRecipientsException;SmtpFailedRecipientsException;(System.String,System.Net.Mail.SmtpFailedRecipientException[]);Argument[1];Argument[this].SyntheticField[System.Net.Mail.SmtpFailedRecipientsException._innerExceptions];value;dfc-generated | @@ -16050,10 +14092,8 @@ summary | System.Net.Quic;QuicConnectionOptions;set_StreamCapacityCallback;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net.Quic;QuicListener;DisposeAsync;();Argument[this];ReturnValue;taint;df-generated | | System.Net.Quic;QuicListenerOptions;set_ConnectionOptionsCallback;(System.Func>);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Net.Quic;QuicStream;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Net.Quic;QuicStream;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[this];Argument[0];taint;manual | | System.Net.Quic;QuicStream;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[0].Element;Argument[this];taint;manual | -| System.Net.Quic;QuicStream;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Net.Quic;QuicStream;DisposeAsync;();Argument[this];ReturnValue;taint;df-generated | | System.Net.Quic;QuicStream;FlushAsync;(System.Threading.CancellationToken);Argument[this];ReturnValue.SyntheticField[System.Threading.Tasks.Task.m_stateObject];value;dfc-generated | | System.Net.Quic;QuicStream;Read;(System.Byte[],System.Int32,System.Int32);Argument[this];Argument[0];taint;manual | @@ -16091,10 +14131,8 @@ summary | System.Net.Security;NegotiateStream;BeginAuthenticateAsServer;(System.Net.NetworkCredential,System.Net.Security.ProtectionLevel,System.Security.Principal.TokenImpersonationLevel,System.AsyncCallback,System.Object);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Net.Security;NegotiateStream;BeginAuthenticateAsServer;(System.Net.NetworkCredential,System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy,System.Net.Security.ProtectionLevel,System.Security.Principal.TokenImpersonationLevel,System.AsyncCallback,System.Object);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | System.Net.Security;NegotiateStream;BeginAuthenticateAsServer;(System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy,System.AsyncCallback,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | -| System.Net.Security;NegotiateStream;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Net.Security;NegotiateStream;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[this];Argument[0];taint;manual | | System.Net.Security;NegotiateStream;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[0].Element;Argument[this];taint;manual | -| System.Net.Security;NegotiateStream;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Net.Security;NegotiateStream;DisposeAsync;();Argument[this];ReturnValue;taint;df-generated | | System.Net.Security;NegotiateStream;FlushAsync;(System.Threading.CancellationToken);Argument[this];ReturnValue.SyntheticField[System.Threading.Tasks.Task.m_stateObject];value;dfc-generated | | System.Net.Security;NegotiateStream;Read;(System.Byte[],System.Int32,System.Int32);Argument[this];Argument[0];taint;manual | @@ -16130,24 +14168,16 @@ summary | System.Net.Security;SslStream;AuthenticateAsServerAsync;(System.Net.Security.ServerOptionsSelectionCallback,System.Object,System.Threading.CancellationToken);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net.Security;SslStream;AuthenticateAsServerAsync;(System.Net.Security.SslServerAuthenticationOptions,System.Threading.CancellationToken);Argument[0];Argument[this];taint;df-generated | | System.Net.Security;SslStream;BeginAuthenticateAsClient;(System.String,System.AsyncCallback,System.Object);Argument[0];Argument[this].SyntheticField[System.Net.Security.SslStream._sslAuthenticationOptions].SyntheticField[System.Net.Security.SslAuthenticationOptions.TargetHost];value;dfc-generated | -| System.Net.Security;SslStream;BeginAuthenticateAsClient;(System.String,System.AsyncCallback,System.Object);Argument[0];Argument[this].SyntheticField[System.Net.Security.SslStream._sslAuthenticationOptions].SyntheticField[System.Net.Security.SslAuthenticationOptions.TargetHost];value;hq-generated | -| System.Net.Security;SslStream;BeginAuthenticateAsClient;(System.String,System.AsyncCallback,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Net.Security;SslStream;BeginAuthenticateAsClient;(System.String,System.AsyncCallback,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Net.Security;SslStream;BeginAuthenticateAsClient;(System.String,System.Security.Cryptography.X509Certificates.X509CertificateCollection,System.Boolean,System.AsyncCallback,System.Object);Argument[0];Argument[this].SyntheticField[System.Net.Security.SslStream._sslAuthenticationOptions].SyntheticField[System.Net.Security.SslAuthenticationOptions.TargetHost];value;dfc-generated | -| System.Net.Security;SslStream;BeginAuthenticateAsClient;(System.String,System.Security.Cryptography.X509Certificates.X509CertificateCollection,System.Boolean,System.AsyncCallback,System.Object);Argument[0];Argument[this].SyntheticField[System.Net.Security.SslStream._sslAuthenticationOptions].SyntheticField[System.Net.Security.SslAuthenticationOptions.TargetHost];value;hq-generated | -| System.Net.Security;SslStream;BeginAuthenticateAsClient;(System.String,System.Security.Cryptography.X509Certificates.X509CertificateCollection,System.Boolean,System.AsyncCallback,System.Object);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Net.Security;SslStream;BeginAuthenticateAsClient;(System.String,System.Security.Cryptography.X509Certificates.X509CertificateCollection,System.Boolean,System.AsyncCallback,System.Object);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Net.Security;SslStream;BeginAuthenticateAsClient;(System.String,System.Security.Cryptography.X509Certificates.X509CertificateCollection,System.Security.Authentication.SslProtocols,System.Boolean,System.AsyncCallback,System.Object);Argument[0];Argument[this].SyntheticField[System.Net.Security.SslStream._sslAuthenticationOptions].SyntheticField[System.Net.Security.SslAuthenticationOptions.TargetHost];value;dfc-generated | -| System.Net.Security;SslStream;BeginAuthenticateAsClient;(System.String,System.Security.Cryptography.X509Certificates.X509CertificateCollection,System.Security.Authentication.SslProtocols,System.Boolean,System.AsyncCallback,System.Object);Argument[0];Argument[this].SyntheticField[System.Net.Security.SslStream._sslAuthenticationOptions].SyntheticField[System.Net.Security.SslAuthenticationOptions.TargetHost];value;hq-generated | -| System.Net.Security;SslStream;BeginAuthenticateAsClient;(System.String,System.Security.Cryptography.X509Certificates.X509CertificateCollection,System.Security.Authentication.SslProtocols,System.Boolean,System.AsyncCallback,System.Object);Argument[4];Argument[4].Parameter[delegate-self];value;dfc-generated | | System.Net.Security;SslStream;BeginAuthenticateAsClient;(System.String,System.Security.Cryptography.X509Certificates.X509CertificateCollection,System.Security.Authentication.SslProtocols,System.Boolean,System.AsyncCallback,System.Object);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | System.Net.Security;SslStream;BeginAuthenticateAsServer;(System.Security.Cryptography.X509Certificates.X509Certificate,System.AsyncCallback,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Net.Security;SslStream;BeginAuthenticateAsServer;(System.Security.Cryptography.X509Certificates.X509Certificate,System.Boolean,System.Boolean,System.AsyncCallback,System.Object);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Net.Security;SslStream;BeginAuthenticateAsServer;(System.Security.Cryptography.X509Certificates.X509Certificate,System.Boolean,System.Security.Authentication.SslProtocols,System.Boolean,System.AsyncCallback,System.Object);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | -| System.Net.Security;SslStream;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Net.Security;SslStream;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[this];Argument[0];taint;manual | | System.Net.Security;SslStream;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[0].Element;Argument[this];taint;manual | -| System.Net.Security;SslStream;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Net.Security;SslStream;DisposeAsync;();Argument[this];ReturnValue;taint;df-generated | | System.Net.Security;SslStream;FlushAsync;(System.Threading.CancellationToken);Argument[this];ReturnValue.SyntheticField[System.Threading.Tasks.Task.m_stateObject];value;dfc-generated | | System.Net.Security;SslStream;Read;(System.Byte[],System.Int32,System.Int32);Argument[this];Argument[0];taint;manual | @@ -16190,10 +14220,8 @@ summary | System.Net.Sockets;MulticastOption;MulticastOption;(System.Net.IPAddress,System.Int32);Argument[0];Argument[this];taint;df-generated | | System.Net.Sockets;MulticastOption;MulticastOption;(System.Net.IPAddress,System.Net.IPAddress);Argument[0];Argument[this];taint;df-generated | | System.Net.Sockets;MulticastOption;MulticastOption;(System.Net.IPAddress,System.Net.IPAddress);Argument[1];Argument[this];taint;df-generated | -| System.Net.Sockets;NetworkStream;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Net.Sockets;NetworkStream;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[this];Argument[0];taint;manual | | System.Net.Sockets;NetworkStream;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[0].Element;Argument[this];taint;manual | -| System.Net.Sockets;NetworkStream;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Net.Sockets;NetworkStream;FlushAsync;(System.Threading.CancellationToken);Argument[this];ReturnValue.SyntheticField[System.Threading.Tasks.Task.m_stateObject];value;dfc-generated | | System.Net.Sockets;NetworkStream;NetworkStream;(System.Net.Sockets.Socket,System.IO.FileAccess,System.Boolean);Argument[0];Argument[this].SyntheticField[System.Net.Sockets.NetworkStream._streamSocket];value;dfc-generated | | System.Net.Sockets;NetworkStream;Read;(System.Byte[],System.Int32,System.Int32);Argument[this];Argument[0];taint;manual | @@ -16278,7 +14306,6 @@ summary | System.Net.Sockets;SocketAsyncEventArgs;get_ReceiveMessageFromPacketInfo;();Argument[this];ReturnValue;taint;df-generated | | System.Net.Sockets;SocketAsyncEventArgs;remove_Completed;(System.EventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net.Sockets;SocketException;get_Message;();Argument[this].Property[System.Exception.Message];ReturnValue;value;dfc-generated | -| System.Net.Sockets;SocketException;get_Message;();Argument[this].SyntheticField[System.Exception._message];ReturnValue;value;dfc-generated | | System.Net.Sockets;SocketTaskExtensions;ConnectAsync;(System.Net.Sockets.Socket,System.Net.EndPoint);Argument[1];Argument[0];taint;df-generated | | System.Net.Sockets;SocketTaskExtensions;ConnectAsync;(System.Net.Sockets.Socket,System.Net.EndPoint,System.Threading.CancellationToken);Argument[1];Argument[0];taint;df-generated | | System.Net.Sockets;SocketTaskExtensions;SendToAsync;(System.Net.Sockets.Socket,System.ArraySegment,System.Net.Sockets.SocketFlags,System.Net.EndPoint);Argument[3];Argument[0];taint;df-generated | @@ -16342,10 +14369,8 @@ summary | System.Net.WebSockets;WebSocketException;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | | System.Net.WebSockets;WebSocketReceiveResult;WebSocketReceiveResult;(System.Int32,System.Net.WebSockets.WebSocketMessageType,System.Boolean,System.Nullable,System.String);Argument[3];Argument[this].Property[System.Net.WebSockets.WebSocketReceiveResult.CloseStatus];value;dfc-generated | | System.Net.WebSockets;WebSocketReceiveResult;WebSocketReceiveResult;(System.Int32,System.Net.WebSockets.WebSocketMessageType,System.Boolean,System.Nullable,System.String);Argument[4];Argument[this].Property[System.Net.WebSockets.WebSocketReceiveResult.CloseStatusDescription];value;dfc-generated | -| System.Net.WebSockets;WebSocketStream;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Net.WebSockets;WebSocketStream;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[this];Argument[0];taint;manual | | System.Net.WebSockets;WebSocketStream;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[0].Element;Argument[this];taint;manual | -| System.Net.WebSockets;WebSocketStream;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Net.WebSockets;WebSocketStream;Create;(System.Net.WebSockets.WebSocket,System.Net.WebSockets.WebSocketMessageType,System.TimeSpan);Argument[2];ReturnValue;taint;df-generated | | System.Net.WebSockets;WebSocketStream;DisposeAsync;();Argument[this];ReturnValue;taint;df-generated | | System.Net.WebSockets;WebSocketStream;FlushAsync;(System.Threading.CancellationToken);Argument[this];ReturnValue.SyntheticField[System.Threading.Tasks.Task.m_stateObject];value;dfc-generated | @@ -16407,12 +14432,10 @@ summary | System.Net;FileWebRequest;BeginGetResponse;(System.AsyncCallback,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net;FileWebRequest;EndGetRequestStream;(System.IAsyncResult);Argument[this];ReturnValue;taint;df-generated | | System.Net;FileWebRequest;EndGetResponse;(System.IAsyncResult);Argument[this];ReturnValue;taint;df-generated | -| System.Net;FileWebRequest;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | | System.Net;FileWebRequest;GetRequestStream;();Argument[this];ReturnValue;taint;df-generated | | System.Net;FileWebRequest;GetRequestStreamAsync;();Argument[this];ReturnValue;taint;df-generated | | System.Net;FileWebRequest;GetResponse;();Argument[this];ReturnValue;taint;df-generated | | System.Net;FileWebRequest;get_RequestUri;();Argument[this].SyntheticField[System.Net.FileWebRequest._uri];ReturnValue;value;dfc-generated | -| System.Net;FileWebResponse;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | | System.Net;FileWebResponse;GetResponseStream;();Argument[this];ReturnValue;taint;df-generated | | System.Net;FileWebResponse;get_Headers;();Argument[this];ReturnValue;taint;df-generated | | System.Net;FileWebResponse;get_ResponseUri;();Argument[this];ReturnValue;taint;df-generated | @@ -16432,10 +14455,8 @@ summary | System.Net;FtpWebResponse;get_WelcomeMessage;();Argument[this];ReturnValue;taint;df-generated | | System.Net;HttpContinueDelegate;BeginInvoke;(System.Int32,System.Net.WebHeaderCollection,System.AsyncCallback,System.Object);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Net;HttpListener+ExtendedProtectionSelector;BeginInvoke;(System.Net.HttpListenerRequest,System.AsyncCallback,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | -| System.Net;HttpListener;BeginGetContext;(System.AsyncCallback,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Net;HttpListener;BeginGetContext;(System.AsyncCallback,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net;HttpListener;BeginGetContext;(System.AsyncCallback,System.Object);Argument[1];ReturnValue.SyntheticField[System.Net.ListenerAsyncResult._state];value;dfc-generated | -| System.Net;HttpListener;BeginGetContext;(System.AsyncCallback,System.Object);Argument[1];ReturnValue.SyntheticField[System.Net.ListenerAsyncResult._state];value;hq-generated | | System.Net;HttpListener;EndGetContext;(System.IAsyncResult);Argument[0];ReturnValue;taint;df-generated | | System.Net;HttpListener;GetContext;();Argument[this];ReturnValue;taint;df-generated | | System.Net;HttpListener;get_DefaultServiceNames;();Argument[this];ReturnValue;taint;df-generated | @@ -16478,16 +14499,9 @@ summary | System.Net;HttpListenerResponse;get_OutputStream;();Argument[this];ReturnValue;taint;df-generated | | System.Net;HttpWebRequest;BeginGetRequestStream;(System.AsyncCallback,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net;HttpWebRequest;BeginGetResponse;(System.AsyncCallback,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Net;HttpWebRequest;EndGetRequestStream;(System.IAsyncResult);Argument[0].Property[System.Threading.Tasks.Task`1.Result];ReturnValue;value;df-generated | | System.Net;HttpWebRequest;EndGetRequestStream;(System.IAsyncResult);Argument[0].Property[System.Threading.Tasks.Task`1.Result];ReturnValue;value;dfc-generated | -| System.Net;HttpWebRequest;EndGetRequestStream;(System.IAsyncResult);Argument[this];ReturnValue;taint;df-generated | -| System.Net;HttpWebRequest;EndGetRequestStream;(System.IAsyncResult);Argument[this];ReturnValue;taint;dfc-generated | | System.Net;HttpWebRequest;EndGetRequestStream;(System.IAsyncResult,System.Net.TransportContext);Argument[0].Property[System.Threading.Tasks.Task`1.Result];ReturnValue;value;dfc-generated | -| System.Net;HttpWebRequest;EndGetResponse;(System.IAsyncResult);Argument[0].Property[System.Threading.Tasks.Task`1.Result];ReturnValue;value;df-generated | | System.Net;HttpWebRequest;EndGetResponse;(System.IAsyncResult);Argument[0].Property[System.Threading.Tasks.Task`1.Result];ReturnValue;value;dfc-generated | -| System.Net;HttpWebRequest;EndGetResponse;(System.IAsyncResult);Argument[this];ReturnValue;taint;df-generated | -| System.Net;HttpWebRequest;EndGetResponse;(System.IAsyncResult);Argument[this];ReturnValue;taint;dfc-generated | -| System.Net;HttpWebRequest;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | | System.Net;HttpWebRequest;GetRequestStream;();Argument[this];ReturnValue;taint;df-generated | | System.Net;HttpWebRequest;GetRequestStream;(System.Net.TransportContext);Argument[this];ReturnValue;taint;df-generated | | System.Net;HttpWebRequest;GetResponse;();Argument[this];ReturnValue;taint;df-generated | @@ -16495,7 +14509,6 @@ summary | System.Net;HttpWebRequest;get_RequestUri;();Argument[this].SyntheticField[System.Net.HttpWebRequest._requestUri];ReturnValue;value;dfc-generated | | System.Net;HttpWebRequest;set_ContinueDelegate;(System.Net.HttpContinueDelegate);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net;HttpWebRequest;set_ServerCertificateValidationCallback;(System.Net.Security.RemoteCertificateValidationCallback);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Net;HttpWebResponse;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | | System.Net;HttpWebResponse;GetResponseHeader;(System.String);Argument[this];ReturnValue;taint;df-generated | | System.Net;HttpWebResponse;GetResponseStream;();Argument[this];ReturnValue;taint;df-generated | | System.Net;HttpWebResponse;get_CharacterSet;();Argument[this];ReturnValue;taint;df-generated | @@ -16627,8 +14640,6 @@ summary | System.Net;WebPermission;Copy;();Argument[this];ReturnValue;value;dfc-generated | | System.Net;WebPermission;Intersect;(System.Security.IPermission);Argument[0];ReturnValue;value;dfc-generated | | System.Net;WebPermission;Union;(System.Security.IPermission);Argument[this];ReturnValue;taint;df-generated | -| System.Net;WebProxy;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | -| System.Net;WebProxy;GetProxy;(System.Uri);Argument[0];ReturnValue;value;dfc-generated | | System.Net;WebProxy;GetProxy;(System.Uri);Argument[this].Property[System.Net.WebProxy.Address];ReturnValue;value;dfc-generated | | System.Net;WebProxy;WebProxy;(System.Uri,System.Boolean,System.String[],System.Net.ICredentials);Argument[0];Argument[this].Property[System.Net.WebProxy.Address];value;dfc-generated | | System.Net;WebProxy;WebProxy;(System.Uri,System.Boolean,System.String[],System.Net.ICredentials);Argument[3];Argument[this].Property[System.Net.WebProxy.Credentials];value;dfc-generated | @@ -16641,11 +14652,9 @@ summary | System.Net;WebRequest;CreateHttp;(System.Uri);Argument[0];ReturnValue.SyntheticField[System.Net.HttpWebRequest._requestUri];value;dfc-generated | | System.Net;WebRequest;EndGetRequestStream;(System.IAsyncResult);Argument[this];ReturnValue;taint;df-generated | | System.Net;WebRequest;EndGetResponse;(System.IAsyncResult);Argument[this];ReturnValue;taint;df-generated | -| System.Net;WebRequest;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | | System.Net;WebRequest;GetRequestStream;();Argument[this];ReturnValue;taint;df-generated | | System.Net;WebRequest;GetRequestStreamAsync;();Argument[this];ReturnValue;taint;df-generated | | System.Net;WebRequest;GetResponse;();Argument[this];ReturnValue;taint;df-generated | -| System.Net;WebResponse;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | | System.Net;WebResponse;GetResponseStream;();Argument[this];ReturnValue;taint;df-generated | | System.Net;WebResponse;get_Headers;();Argument[this];ReturnValue;taint;df-generated | | System.Net;WebResponse;get_ResponseUri;();Argument[this];ReturnValue;taint;df-generated | @@ -16681,7 +14690,6 @@ summary | System.Numerics;BigInteger;MinMagnitudeNumber;(System.Numerics.BigInteger,System.Numerics.BigInteger);Argument[1];ReturnValue;value;dfc-generated | | System.Numerics;BigInteger;MinNumber;(System.Numerics.BigInteger,System.Numerics.BigInteger);Argument[0];ReturnValue;value;dfc-generated | | System.Numerics;BigInteger;MinNumber;(System.Numerics.BigInteger,System.Numerics.BigInteger);Argument[1];ReturnValue;value;dfc-generated | -| System.Numerics;BigInteger;MultiplyAddEstimate;(System.Numerics.BigInteger,System.Numerics.BigInteger,System.Numerics.BigInteger);Argument[2];ReturnValue;taint;dfc-generated | | System.Numerics;BigInteger;Pow;(System.Numerics.BigInteger,System.Int32);Argument[0];ReturnValue;value;dfc-generated | | System.Numerics;BigInteger;Remainder;(System.Numerics.BigInteger,System.Numerics.BigInteger);Argument[0];ReturnValue;value;dfc-generated | | System.Numerics;BigInteger;RotateLeft;(System.Numerics.BigInteger,System.Int32);Argument[0];ReturnValue;value;dfc-generated | @@ -16698,7 +14706,6 @@ summary | System.Numerics;Complex;MinMagnitude;(System.Numerics.Complex,System.Numerics.Complex);Argument[1];ReturnValue;value;dfc-generated | | System.Numerics;Complex;MinMagnitudeNumber;(System.Numerics.Complex,System.Numerics.Complex);Argument[0];ReturnValue;value;dfc-generated | | System.Numerics;Complex;MinMagnitudeNumber;(System.Numerics.Complex,System.Numerics.Complex);Argument[1];ReturnValue;value;dfc-generated | -| System.Numerics;Complex;MultiplyAddEstimate;(System.Numerics.Complex,System.Numerics.Complex,System.Numerics.Complex);Argument[2];ReturnValue;taint;dfc-generated | | System.Numerics;Complex;ToString;(System.String,System.IFormatProvider);Argument[this];ReturnValue;taint;dfc-generated | | System.Numerics;IAdditionOperators;op_CheckedAddition;(TSelf,TOther);Argument[0];ReturnValue;taint;dfc-generated | | System.Numerics;IAdditionOperators;op_CheckedAddition;(TSelf,TOther);Argument[1];ReturnValue;taint;dfc-generated | @@ -16818,19 +14825,10 @@ summary | System.Reflection.Emit;DynamicMethod;Invoke;(System.Object,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo);Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Emit;DynamicMethod;get_DeclaringType;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Emit;DynamicMethod;get_MethodHandle;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Emit;DynamicMethod;get_Module;();Argument[this].SyntheticField[System.Reflection.Emit.DynamicMethod._module];ReturnValue;value;df-generated | | System.Reflection.Emit;DynamicMethod;get_Module;();Argument[this].SyntheticField[System.Reflection.Emit.DynamicMethod._module];ReturnValue;value;dfc-generated | -| System.Reflection.Emit;DynamicMethod;get_Module;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Emit;DynamicMethod;get_Module;();Argument[this];ReturnValue;taint;dfc-generated | -| System.Reflection.Emit;DynamicMethod;get_Name;();Argument[this].SyntheticField[System.Reflection.Emit.DynamicMethod._name];ReturnValue;value;df-generated | | System.Reflection.Emit;DynamicMethod;get_Name;();Argument[this].SyntheticField[System.Reflection.Emit.DynamicMethod._name];ReturnValue;value;dfc-generated | -| System.Reflection.Emit;DynamicMethod;get_Name;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Emit;DynamicMethod;get_Name;();Argument[this];ReturnValue;taint;dfc-generated | | System.Reflection.Emit;DynamicMethod;get_ReflectedType;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Emit;DynamicMethod;get_ReturnParameter;();Argument[this];ReturnValue.Field[System.Reflection.ParameterInfo.MemberImpl];value;df-generated | | System.Reflection.Emit;DynamicMethod;get_ReturnParameter;();Argument[this];ReturnValue.Field[System.Reflection.ParameterInfo.MemberImpl];value;dfc-generated | -| System.Reflection.Emit;DynamicMethod;get_ReturnParameter;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Emit;DynamicMethod;get_ReturnParameter;();Argument[this];ReturnValue;taint;dfc-generated | | System.Reflection.Emit;DynamicMethod;get_ReturnType;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Emit;DynamicMethod;get_ReturnTypeCustomAttributes;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Emit;EnumBuilder;GetConstructorImpl;(System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[]);Argument[this];ReturnValue;taint;df-generated | @@ -17298,10 +15296,8 @@ summary | System.Reflection.Metadata.Ecma335;PermissionSetEncoder;AddPermission;(System.String,System.Collections.Immutable.ImmutableArray);Argument[this];ReturnValue;value;dfc-generated | | System.Reflection.Metadata.Ecma335;PermissionSetEncoder;AddPermission;(System.String,System.Reflection.Metadata.BlobBuilder);Argument[this];ReturnValue;value;dfc-generated | | System.Reflection.Metadata.Ecma335;PermissionSetEncoder;PermissionSetEncoder;(System.Reflection.Metadata.BlobBuilder);Argument[0];Argument[this].Property[System.Reflection.Metadata.Ecma335.PermissionSetEncoder.Builder];value;dfc-generated | -| System.Reflection.Metadata.Ecma335;PortablePdbBuilder;PortablePdbBuilder;(System.Reflection.Metadata.Ecma335.MetadataBuilder,System.Collections.Immutable.ImmutableArray,System.Reflection.Metadata.MethodDefinitionHandle,System.Func,System.Reflection.Metadata.BlobContentId>);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Reflection.Metadata.Ecma335;PortablePdbBuilder;PortablePdbBuilder;(System.Reflection.Metadata.Ecma335.MetadataBuilder,System.Collections.Immutable.ImmutableArray,System.Reflection.Metadata.MethodDefinitionHandle,System.Func,System.Reflection.Metadata.BlobContentId>);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Reflection.Metadata.Ecma335;PortablePdbBuilder;PortablePdbBuilder;(System.Reflection.Metadata.Ecma335.MetadataBuilder,System.Collections.Immutable.ImmutableArray,System.Reflection.Metadata.MethodDefinitionHandle,System.Func,System.Reflection.Metadata.BlobContentId>);Argument[3];Argument[this].Property[System.Reflection.Metadata.Ecma335.PortablePdbBuilder.IdProvider];value;dfc-generated | -| System.Reflection.Metadata.Ecma335;PortablePdbBuilder;PortablePdbBuilder;(System.Reflection.Metadata.Ecma335.MetadataBuilder,System.Collections.Immutable.ImmutableArray,System.Reflection.Metadata.MethodDefinitionHandle,System.Func,System.Reflection.Metadata.BlobContentId>);Argument[3];Argument[this].Property[System.Reflection.Metadata.Ecma335.PortablePdbBuilder.IdProvider];value;hq-generated | | System.Reflection.Metadata.Ecma335;PortablePdbBuilder;Serialize;(System.Reflection.Metadata.BlobBuilder);Argument[0];Argument[this];taint;df-generated | | System.Reflection.Metadata.Ecma335;PortablePdbBuilder;Serialize;(System.Reflection.Metadata.BlobBuilder);Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata.Ecma335;ReturnTypeEncoder;ReturnTypeEncoder;(System.Reflection.Metadata.BlobBuilder);Argument[0];Argument[this].Property[System.Reflection.Metadata.Ecma335.ReturnTypeEncoder.Builder];value;dfc-generated | @@ -17311,12 +15307,9 @@ summary | System.Reflection.Metadata.Ecma335;SignatureDecoder;SignatureDecoder;(System.Reflection.Metadata.ISignatureTypeProvider,System.Reflection.Metadata.MetadataReader,TGenericContext);Argument[0];Argument[this];taint;df-generated | | System.Reflection.Metadata.Ecma335;SignatureDecoder;SignatureDecoder;(System.Reflection.Metadata.ISignatureTypeProvider,System.Reflection.Metadata.MetadataReader,TGenericContext);Argument[1];Argument[this];taint;df-generated | | System.Reflection.Metadata.Ecma335;SignatureDecoder;SignatureDecoder;(System.Reflection.Metadata.ISignatureTypeProvider,System.Reflection.Metadata.MetadataReader,TGenericContext);Argument[2];Argument[this];taint;df-generated | -| System.Reflection.Metadata.Ecma335;SignatureTypeEncoder;Array;(System.Action,System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Reflection.Metadata.Ecma335;SignatureTypeEncoder;Array;(System.Action,System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Reflection.Metadata.Ecma335;SignatureTypeEncoder;Array;(System.Action,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Reflection.Metadata.Ecma335;SignatureTypeEncoder;Array;(System.Action,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Reflection.Metadata.Ecma335;SignatureTypeEncoder;Array;(System.Action,System.Action);Argument[this];Argument[0].Parameter[0];value;dfc-generated | -| System.Reflection.Metadata.Ecma335;SignatureTypeEncoder;Array;(System.Action,System.Action);Argument[this];Argument[0].Parameter[0];value;hq-generated | | System.Reflection.Metadata.Ecma335;SignatureTypeEncoder;Array;(System.Reflection.Metadata.Ecma335.SignatureTypeEncoder,System.Reflection.Metadata.Ecma335.ArrayShapeEncoder);Argument[this];Argument[0];value;dfc-generated | | System.Reflection.Metadata.Ecma335;SignatureTypeEncoder;Pointer;();Argument[this];ReturnValue;value;dfc-generated | | System.Reflection.Metadata.Ecma335;SignatureTypeEncoder;SZArray;();Argument[this];ReturnValue;value;dfc-generated | @@ -17325,10 +15318,7 @@ summary | System.Reflection.Metadata;AssemblyDefinition;GetCustomAttributes;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;AssemblyDefinition;GetDeclarativeSecurityAttributes;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;AssemblyFile;GetCustomAttributes;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;AssemblyFileHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.AssemblyFileHandleCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Reflection.Metadata;AssemblyFileHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.AssemblyFileHandleCollection+Enumerator.Current];ReturnValue;value;dfc-generated | -| System.Reflection.Metadata;AssemblyFileHandleCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;AssemblyFileHandleCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Reflection.Metadata;AssemblyFileHandleCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | | System.Reflection.Metadata;AssemblyFileHandleCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Reflection.Metadata;AssemblyNameInfo;AssemblyNameInfo;(System.String,System.Version,System.String,System.Reflection.AssemblyNameFlags,System.Collections.Immutable.ImmutableArray);Argument[0];Argument[this].Property[System.Reflection.Metadata.AssemblyNameInfo.Name];value;dfc-generated | @@ -17337,20 +15327,14 @@ summary | System.Reflection.Metadata;AssemblyNameInfo;AssemblyNameInfo;(System.String,System.Version,System.String,System.Reflection.AssemblyNameFlags,System.Collections.Immutable.ImmutableArray);Argument[4];Argument[this].Property[System.Reflection.Metadata.AssemblyNameInfo.PublicKeyOrToken];value;dfc-generated | | System.Reflection.Metadata;AssemblyNameInfo;get_FullName;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;AssemblyReference;GetCustomAttributes;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;AssemblyReferenceHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.AssemblyReferenceHandleCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Reflection.Metadata;AssemblyReferenceHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.AssemblyReferenceHandleCollection+Enumerator.Current];ReturnValue;value;dfc-generated | -| System.Reflection.Metadata;AssemblyReferenceHandleCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;AssemblyReferenceHandleCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Reflection.Metadata;AssemblyReferenceHandleCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | | System.Reflection.Metadata;AssemblyReferenceHandleCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Reflection.Metadata;AssemblyReferenceHandleCollection;GetEnumerator;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;BlobBuilder+Blobs;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | | System.Reflection.Metadata;BlobBuilder+Blobs;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Reflection.Metadata;BlobBuilder+Blobs;GetEnumerator;();Argument[this];ReturnValue;value;dfc-generated | -| System.Reflection.Metadata;BlobBuilder+Blobs;get_Current;();Argument[this].Property[System.Reflection.Metadata.BlobBuilder+Blobs.Current];ReturnValue;value;df-generated | | System.Reflection.Metadata;BlobBuilder+Blobs;get_Current;();Argument[this].Property[System.Reflection.Metadata.BlobBuilder+Blobs.Current];ReturnValue;value;dfc-generated | -| System.Reflection.Metadata;BlobBuilder+Blobs;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;BlobBuilder+Blobs;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Reflection.Metadata;BlobBuilder;GetBlobs;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;BlobBuilder;LinkPrefix;(System.Reflection.Metadata.BlobBuilder);Argument[0];Argument[this];taint;df-generated | | System.Reflection.Metadata;BlobBuilder;LinkPrefix;(System.Reflection.Metadata.BlobBuilder);Argument[this];Argument[0];taint;df-generated | @@ -17369,10 +15353,7 @@ summary | System.Reflection.Metadata;BlobWriter;BlobWriter;(System.Byte[],System.Int32,System.Int32);Argument[0].Element;Argument[this];taint;df-generated | | System.Reflection.Metadata;BlobWriter;WriteBytes;(System.IO.Stream,System.Int32);Argument[0];Argument[this];taint;df-generated | | System.Reflection.Metadata;BlobWriter;get_Blob;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;CustomAttributeHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.CustomAttributeHandleCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Reflection.Metadata;CustomAttributeHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.CustomAttributeHandleCollection+Enumerator.Current];ReturnValue;value;dfc-generated | -| System.Reflection.Metadata;CustomAttributeHandleCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;CustomAttributeHandleCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Reflection.Metadata;CustomAttributeHandleCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | | System.Reflection.Metadata;CustomAttributeHandleCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Reflection.Metadata;CustomAttributeHandleCollection;GetEnumerator;();Argument[this];ReturnValue;taint;df-generated | @@ -17383,124 +15364,76 @@ summary | System.Reflection.Metadata;CustomAttributeTypedArgument;CustomAttributeTypedArgument;(TType,System.Object);Argument[1];Argument[this].Property[System.Reflection.Metadata.CustomAttributeTypedArgument`1.Value];value;dfc-generated | | System.Reflection.Metadata;CustomAttributeValue;CustomAttributeValue;(System.Collections.Immutable.ImmutableArray>,System.Collections.Immutable.ImmutableArray>);Argument[0];Argument[this].Property[System.Reflection.Metadata.CustomAttributeValue`1.FixedArguments];value;dfc-generated | | System.Reflection.Metadata;CustomAttributeValue;CustomAttributeValue;(System.Collections.Immutable.ImmutableArray>,System.Collections.Immutable.ImmutableArray>);Argument[1];Argument[this].Property[System.Reflection.Metadata.CustomAttributeValue`1.NamedArguments];value;dfc-generated | -| System.Reflection.Metadata;CustomDebugInformationHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.CustomDebugInformationHandleCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Reflection.Metadata;CustomDebugInformationHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.CustomDebugInformationHandleCollection+Enumerator.Current];ReturnValue;value;dfc-generated | -| System.Reflection.Metadata;CustomDebugInformationHandleCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;CustomDebugInformationHandleCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Reflection.Metadata;CustomDebugInformationHandleCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | | System.Reflection.Metadata;CustomDebugInformationHandleCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Reflection.Metadata;CustomDebugInformationHandleCollection;GetEnumerator;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;DeclarativeSecurityAttributeHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.DeclarativeSecurityAttributeHandleCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Reflection.Metadata;DeclarativeSecurityAttributeHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.DeclarativeSecurityAttributeHandleCollection+Enumerator.Current];ReturnValue;value;dfc-generated | -| System.Reflection.Metadata;DeclarativeSecurityAttributeHandleCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;DeclarativeSecurityAttributeHandleCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Reflection.Metadata;DeclarativeSecurityAttributeHandleCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | | System.Reflection.Metadata;DeclarativeSecurityAttributeHandleCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Reflection.Metadata;DeclarativeSecurityAttributeHandleCollection;GetEnumerator;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;DocumentHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.DocumentHandleCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Reflection.Metadata;DocumentHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.DocumentHandleCollection+Enumerator.Current];ReturnValue;value;dfc-generated | -| System.Reflection.Metadata;DocumentHandleCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;DocumentHandleCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Reflection.Metadata;DocumentHandleCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | | System.Reflection.Metadata;DocumentHandleCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Reflection.Metadata;DocumentHandleCollection;GetEnumerator;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;EventAccessors;get_Others;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;EventDefinition;GetCustomAttributes;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;EventDefinitionHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.EventDefinitionHandleCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Reflection.Metadata;EventDefinitionHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.EventDefinitionHandleCollection+Enumerator.Current];ReturnValue;value;dfc-generated | -| System.Reflection.Metadata;EventDefinitionHandleCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;EventDefinitionHandleCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Reflection.Metadata;EventDefinitionHandleCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | | System.Reflection.Metadata;EventDefinitionHandleCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Reflection.Metadata;EventDefinitionHandleCollection;GetEnumerator;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;ExportedType;GetCustomAttributes;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;ExportedTypeHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.ExportedTypeHandleCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Reflection.Metadata;ExportedTypeHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.ExportedTypeHandleCollection+Enumerator.Current];ReturnValue;value;dfc-generated | -| System.Reflection.Metadata;ExportedTypeHandleCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;ExportedTypeHandleCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Reflection.Metadata;ExportedTypeHandleCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | | System.Reflection.Metadata;ExportedTypeHandleCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Reflection.Metadata;FieldDefinition;GetCustomAttributes;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;FieldDefinitionHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.FieldDefinitionHandleCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Reflection.Metadata;FieldDefinitionHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.FieldDefinitionHandleCollection+Enumerator.Current];ReturnValue;value;dfc-generated | -| System.Reflection.Metadata;FieldDefinitionHandleCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;FieldDefinitionHandleCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Reflection.Metadata;FieldDefinitionHandleCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | | System.Reflection.Metadata;FieldDefinitionHandleCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Reflection.Metadata;FieldDefinitionHandleCollection;GetEnumerator;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;GenericParameter;GetCustomAttributes;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;GenericParameterConstraint;GetCustomAttributes;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;GenericParameterConstraintHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.GenericParameterConstraintHandleCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Reflection.Metadata;GenericParameterConstraintHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.GenericParameterConstraintHandleCollection+Enumerator.Current];ReturnValue;value;dfc-generated | -| System.Reflection.Metadata;GenericParameterConstraintHandleCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;GenericParameterConstraintHandleCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Reflection.Metadata;GenericParameterConstraintHandleCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | | System.Reflection.Metadata;GenericParameterConstraintHandleCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | -| System.Reflection.Metadata;GenericParameterHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.GenericParameterHandleCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Reflection.Metadata;GenericParameterHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.GenericParameterHandleCollection+Enumerator.Current];ReturnValue;value;dfc-generated | -| System.Reflection.Metadata;GenericParameterHandleCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;GenericParameterHandleCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Reflection.Metadata;GenericParameterHandleCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | | System.Reflection.Metadata;GenericParameterHandleCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Reflection.Metadata;ImportDefinitionCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;ImportDefinitionCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | | System.Reflection.Metadata;ImportDefinitionCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Reflection.Metadata;ImportDefinitionCollection;GetEnumerator;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;ImportScopeCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.ImportScopeCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Reflection.Metadata;ImportScopeCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.ImportScopeCollection+Enumerator.Current];ReturnValue;value;dfc-generated | -| System.Reflection.Metadata;ImportScopeCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;ImportScopeCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Reflection.Metadata;ImportScopeCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | | System.Reflection.Metadata;ImportScopeCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Reflection.Metadata;ImportScopeCollection;GetEnumerator;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;InterfaceImplementation;GetCustomAttributes;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;InterfaceImplementationHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.InterfaceImplementationHandleCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Reflection.Metadata;InterfaceImplementationHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.InterfaceImplementationHandleCollection+Enumerator.Current];ReturnValue;value;dfc-generated | -| System.Reflection.Metadata;InterfaceImplementationHandleCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;InterfaceImplementationHandleCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Reflection.Metadata;InterfaceImplementationHandleCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | | System.Reflection.Metadata;InterfaceImplementationHandleCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Reflection.Metadata;InterfaceImplementationHandleCollection;GetEnumerator;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;LocalConstantHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.LocalConstantHandleCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Reflection.Metadata;LocalConstantHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.LocalConstantHandleCollection+Enumerator.Current];ReturnValue;value;dfc-generated | -| System.Reflection.Metadata;LocalConstantHandleCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;LocalConstantHandleCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Reflection.Metadata;LocalConstantHandleCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | | System.Reflection.Metadata;LocalConstantHandleCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Reflection.Metadata;LocalConstantHandleCollection;GetEnumerator;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;LocalScope;GetChildren;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;LocalScope;GetLocalConstants;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;LocalScope;GetLocalVariables;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;LocalScopeHandleCollection+ChildrenEnumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.LocalScopeHandleCollection+ChildrenEnumerator.Current];ReturnValue;value;df-generated | | System.Reflection.Metadata;LocalScopeHandleCollection+ChildrenEnumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.LocalScopeHandleCollection+ChildrenEnumerator.Current];ReturnValue;value;dfc-generated | -| System.Reflection.Metadata;LocalScopeHandleCollection+ChildrenEnumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;LocalScopeHandleCollection+ChildrenEnumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | -| System.Reflection.Metadata;LocalScopeHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.LocalScopeHandleCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Reflection.Metadata;LocalScopeHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.LocalScopeHandleCollection+Enumerator.Current];ReturnValue;value;dfc-generated | -| System.Reflection.Metadata;LocalScopeHandleCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;LocalScopeHandleCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Reflection.Metadata;LocalScopeHandleCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | | System.Reflection.Metadata;LocalScopeHandleCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Reflection.Metadata;LocalScopeHandleCollection;GetEnumerator;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;LocalVariableHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.LocalVariableHandleCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Reflection.Metadata;LocalVariableHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.LocalVariableHandleCollection+Enumerator.Current];ReturnValue;value;dfc-generated | -| System.Reflection.Metadata;LocalVariableHandleCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;LocalVariableHandleCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Reflection.Metadata;LocalVariableHandleCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | | System.Reflection.Metadata;LocalVariableHandleCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Reflection.Metadata;LocalVariableHandleCollection;GetEnumerator;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;ManifestResource;GetCustomAttributes;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;ManifestResourceHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.ManifestResourceHandleCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Reflection.Metadata;ManifestResourceHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.ManifestResourceHandleCollection+Enumerator.Current];ReturnValue;value;dfc-generated | -| System.Reflection.Metadata;ManifestResourceHandleCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;ManifestResourceHandleCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Reflection.Metadata;ManifestResourceHandleCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | | System.Reflection.Metadata;ManifestResourceHandleCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Reflection.Metadata;MemberReference;GetCustomAttributes;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;MemberReferenceHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.MemberReferenceHandleCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Reflection.Metadata;MemberReferenceHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.MemberReferenceHandleCollection+Enumerator.Current];ReturnValue;value;dfc-generated | -| System.Reflection.Metadata;MemberReferenceHandleCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;MemberReferenceHandleCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Reflection.Metadata;MemberReferenceHandleCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | | System.Reflection.Metadata;MemberReferenceHandleCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Reflection.Metadata;MetadataReader;GetAssemblyDefinition;();Argument[this];ReturnValue;taint;df-generated | @@ -17573,28 +15506,19 @@ summary | System.Reflection.Metadata;MethodBodyBlock;get_ExceptionRegions;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;MethodBodyBlock;get_LocalSignature;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;MethodDebugInformation;GetSequencePoints;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;MethodDebugInformationHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.MethodDebugInformationHandleCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Reflection.Metadata;MethodDebugInformationHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.MethodDebugInformationHandleCollection+Enumerator.Current];ReturnValue;value;dfc-generated | -| System.Reflection.Metadata;MethodDebugInformationHandleCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;MethodDebugInformationHandleCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Reflection.Metadata;MethodDebugInformationHandleCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | | System.Reflection.Metadata;MethodDebugInformationHandleCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Reflection.Metadata;MethodDebugInformationHandleCollection;GetEnumerator;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;MethodDefinition;GetCustomAttributes;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;MethodDefinition;GetDeclarativeSecurityAttributes;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;MethodDefinition;GetParameters;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;MethodDefinitionHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.MethodDefinitionHandleCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Reflection.Metadata;MethodDefinitionHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.MethodDefinitionHandleCollection+Enumerator.Current];ReturnValue;value;dfc-generated | -| System.Reflection.Metadata;MethodDefinitionHandleCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;MethodDefinitionHandleCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Reflection.Metadata;MethodDefinitionHandleCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | | System.Reflection.Metadata;MethodDefinitionHandleCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Reflection.Metadata;MethodDefinitionHandleCollection;GetEnumerator;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;MethodImplementation;GetCustomAttributes;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;MethodImplementationHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.MethodImplementationHandleCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Reflection.Metadata;MethodImplementationHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.MethodImplementationHandleCollection+Enumerator.Current];ReturnValue;value;dfc-generated | -| System.Reflection.Metadata;MethodImplementationHandleCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;MethodImplementationHandleCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Reflection.Metadata;MethodImplementationHandleCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | | System.Reflection.Metadata;MethodImplementationHandleCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Reflection.Metadata;MethodImport;get_Module;();Argument[this];ReturnValue;taint;df-generated | @@ -17614,19 +15538,13 @@ summary | System.Reflection.Metadata;PEReaderExtensions;GetMetadataReader;(System.Reflection.PortableExecutable.PEReader,System.Reflection.Metadata.MetadataReaderOptions);Argument[0];ReturnValue;taint;df-generated | | System.Reflection.Metadata;PEReaderExtensions;GetMetadataReader;(System.Reflection.PortableExecutable.PEReader,System.Reflection.Metadata.MetadataReaderOptions,System.Reflection.Metadata.MetadataStringDecoder);Argument[2];ReturnValue.Property[System.Reflection.Metadata.MetadataReader.UTF8Decoder];value;dfc-generated | | System.Reflection.Metadata;Parameter;GetCustomAttributes;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;ParameterHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.ParameterHandleCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Reflection.Metadata;ParameterHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.ParameterHandleCollection+Enumerator.Current];ReturnValue;value;dfc-generated | -| System.Reflection.Metadata;ParameterHandleCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;ParameterHandleCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Reflection.Metadata;ParameterHandleCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | | System.Reflection.Metadata;ParameterHandleCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Reflection.Metadata;ParameterHandleCollection;GetEnumerator;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;PropertyAccessors;get_Others;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;PropertyDefinition;GetCustomAttributes;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;PropertyDefinitionHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.PropertyDefinitionHandleCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Reflection.Metadata;PropertyDefinitionHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.PropertyDefinitionHandleCollection+Enumerator.Current];ReturnValue;value;dfc-generated | -| System.Reflection.Metadata;PropertyDefinitionHandleCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;PropertyDefinitionHandleCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Reflection.Metadata;PropertyDefinitionHandleCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | | System.Reflection.Metadata;PropertyDefinitionHandleCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Reflection.Metadata;PropertyDefinitionHandleCollection;GetEnumerator;();Argument[this];ReturnValue;taint;df-generated | @@ -17642,10 +15560,7 @@ summary | System.Reflection.Metadata;TypeDefinition;GetInterfaceImplementations;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;TypeDefinition;GetMethods;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;TypeDefinition;GetProperties;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;TypeDefinitionHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.TypeDefinitionHandleCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Reflection.Metadata;TypeDefinitionHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.TypeDefinitionHandleCollection+Enumerator.Current];ReturnValue;value;dfc-generated | -| System.Reflection.Metadata;TypeDefinitionHandleCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;TypeDefinitionHandleCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Reflection.Metadata;TypeDefinitionHandleCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | | System.Reflection.Metadata;TypeDefinitionHandleCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Reflection.Metadata;TypeName;GetElementType;();Argument[this].SyntheticField[System.Reflection.Metadata.TypeName._elementOrGenericType];ReturnValue;value;dfc-generated | @@ -17671,16 +15586,11 @@ summary | System.Reflection.Metadata;TypeName;get_FullName;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;TypeName;get_Name;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;TypeName;get_Namespace;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;TypeReferenceHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.TypeReferenceHandleCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Reflection.Metadata;TypeReferenceHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.TypeReferenceHandleCollection+Enumerator.Current];ReturnValue;value;dfc-generated | -| System.Reflection.Metadata;TypeReferenceHandleCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;TypeReferenceHandleCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Reflection.Metadata;TypeReferenceHandleCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | | System.Reflection.Metadata;TypeReferenceHandleCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Reflection.Metadata;TypeSpecification;GetCustomAttributes;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.PortableExecutable;DebugDirectoryBuilder;AddEntry;(System.Reflection.PortableExecutable.DebugDirectoryEntryType,System.UInt32,System.UInt32,TData,System.Action);Argument[3];Argument[4].Parameter[1];value;dfc-generated | -| System.Reflection.PortableExecutable;DebugDirectoryBuilder;AddEntry;(System.Reflection.PortableExecutable.DebugDirectoryEntryType,System.UInt32,System.UInt32,TData,System.Action);Argument[3];Argument[4].Parameter[1];value;hq-generated | -| System.Reflection.PortableExecutable;DebugDirectoryBuilder;AddEntry;(System.Reflection.PortableExecutable.DebugDirectoryEntryType,System.UInt32,System.UInt32,TData,System.Action);Argument[4];Argument[4].Parameter[delegate-self];value;dfc-generated | | System.Reflection.PortableExecutable;DebugDirectoryBuilder;AddEntry;(System.Reflection.PortableExecutable.DebugDirectoryEntryType,System.UInt32,System.UInt32,TData,System.Action);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | System.Reflection.PortableExecutable;ManagedPEBuilder;GetDirectories;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.PortableExecutable;ManagedPEBuilder;ManagedPEBuilder;(System.Reflection.PortableExecutable.PEHeaderBuilder,System.Reflection.Metadata.Ecma335.MetadataRootBuilder,System.Reflection.Metadata.BlobBuilder,System.Reflection.Metadata.BlobBuilder,System.Reflection.Metadata.BlobBuilder,System.Reflection.PortableExecutable.ResourceSectionBuilder,System.Reflection.PortableExecutable.DebugDirectoryBuilder,System.Int32,System.Reflection.Metadata.MethodDefinitionHandle,System.Reflection.PortableExecutable.CorFlags,System.Func,System.Reflection.Metadata.BlobContentId>);Argument[10];Argument[10].Parameter[delegate-self];value;hq-generated | @@ -17690,11 +15600,8 @@ summary | System.Reflection.PortableExecutable;PEBuilder;GetDirectories;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.PortableExecutable;PEBuilder;GetSections;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.PortableExecutable;PEBuilder;PEBuilder;(System.Reflection.PortableExecutable.PEHeaderBuilder,System.Func,System.Reflection.Metadata.BlobContentId>);Argument[0];Argument[this].Property[System.Reflection.PortableExecutable.PEBuilder.Header];value;dfc-generated | -| System.Reflection.PortableExecutable;PEBuilder;PEBuilder;(System.Reflection.PortableExecutable.PEHeaderBuilder,System.Func,System.Reflection.Metadata.BlobContentId>);Argument[0];Argument[this].Property[System.Reflection.PortableExecutable.PEBuilder.Header];value;hq-generated | -| System.Reflection.PortableExecutable;PEBuilder;PEBuilder;(System.Reflection.PortableExecutable.PEHeaderBuilder,System.Func,System.Reflection.Metadata.BlobContentId>);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Reflection.PortableExecutable;PEBuilder;PEBuilder;(System.Reflection.PortableExecutable.PEHeaderBuilder,System.Func,System.Reflection.Metadata.BlobContentId>);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Reflection.PortableExecutable;PEBuilder;PEBuilder;(System.Reflection.PortableExecutable.PEHeaderBuilder,System.Func,System.Reflection.Metadata.BlobContentId>);Argument[1];Argument[this].Property[System.Reflection.PortableExecutable.PEBuilder.IdProvider];value;dfc-generated | -| System.Reflection.PortableExecutable;PEBuilder;PEBuilder;(System.Reflection.PortableExecutable.PEHeaderBuilder,System.Func,System.Reflection.Metadata.BlobContentId>);Argument[1];Argument[this].Property[System.Reflection.PortableExecutable.PEBuilder.IdProvider];value;hq-generated | | System.Reflection.PortableExecutable;PEBuilder;Serialize;(System.Reflection.Metadata.BlobBuilder);Argument[0];Argument[this];taint;df-generated | | System.Reflection.PortableExecutable;PEBuilder;Serialize;(System.Reflection.Metadata.BlobBuilder);Argument[this];ReturnValue;taint;df-generated | | System.Reflection.PortableExecutable;PEBuilder;SerializeSection;(System.String,System.Reflection.PortableExecutable.SectionLocation);Argument[this];ReturnValue;taint;df-generated | @@ -17711,10 +15618,7 @@ summary | System.Reflection.PortableExecutable;PEReader;PEReader;(System.Collections.Immutable.ImmutableArray);Argument[0].Element;Argument[this];taint;df-generated | | System.Reflection.PortableExecutable;PEReader;PEReader;(System.IO.Stream,System.Reflection.PortableExecutable.PEStreamOptions,System.Int32);Argument[0];Argument[this];taint;df-generated | | System.Reflection.PortableExecutable;PEReader;TryOpenAssociatedPortablePdb;(System.String,System.Func,System.Reflection.Metadata.MetadataReaderProvider,System.String);Argument[0];Argument[1].Parameter[0];taint;dfc-generated | -| System.Reflection.PortableExecutable;PEReader;TryOpenAssociatedPortablePdb;(System.String,System.Func,System.Reflection.Metadata.MetadataReaderProvider,System.String);Argument[0];Argument[1].Parameter[0];taint;hq-generated | | System.Reflection.PortableExecutable;PEReader;TryOpenAssociatedPortablePdb;(System.String,System.Func,System.Reflection.Metadata.MetadataReaderProvider,System.String);Argument[0];Argument[3];taint;dfc-generated | -| System.Reflection.PortableExecutable;PEReader;TryOpenAssociatedPortablePdb;(System.String,System.Func,System.Reflection.Metadata.MetadataReaderProvider,System.String);Argument[0];Argument[3];taint;hq-generated | -| System.Reflection.PortableExecutable;PEReader;TryOpenAssociatedPortablePdb;(System.String,System.Func,System.Reflection.Metadata.MetadataReaderProvider,System.String);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Reflection.PortableExecutable;PEReader;TryOpenAssociatedPortablePdb;(System.String,System.Func,System.Reflection.Metadata.MetadataReaderProvider,System.String);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Reflection.PortableExecutable;PEReader;get_PEHeaders;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection;Assembly;CreateQualifiedName;(System.String,System.String);Argument[0];ReturnValue;taint;dfc-generated | @@ -17870,10 +15774,8 @@ summary | System.Reflection;MethodInvoker;Invoke;(System.Object,System.Span);Argument[1];Argument[this];taint;df-generated | | System.Reflection;MethodInvoker;Invoke;(System.Object,System.Span);Argument[this];ReturnValue;taint;df-generated | | System.Reflection;Missing;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | -| System.Reflection;Module;FindTypes;(System.Reflection.TypeFilter,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Reflection;Module;FindTypes;(System.Reflection.TypeFilter,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Reflection;Module;FindTypes;(System.Reflection.TypeFilter,System.Object);Argument[1];Argument[0].Parameter[1];value;dfc-generated | -| System.Reflection;Module;FindTypes;(System.Reflection.TypeFilter,System.Object);Argument[1];Argument[0].Parameter[1];value;hq-generated | | System.Reflection;Module;GetField;(System.String);Argument[this];ReturnValue;taint;df-generated | | System.Reflection;Module;GetField;(System.String,System.Reflection.BindingFlags);Argument[this];ReturnValue;taint;df-generated | | System.Reflection;Module;GetMethod;(System.String);Argument[this];ReturnValue;taint;df-generated | @@ -17938,7 +15840,6 @@ summary | System.Reflection;ReflectionContext;MapType;(System.Reflection.TypeInfo);Argument[0];ReturnValue;value;dfc-generated | | System.Reflection;ReflectionTypeLoadException;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | | System.Reflection;ReflectionTypeLoadException;get_Message;();Argument[this].Property[System.Exception.Message];ReturnValue;value;dfc-generated | -| System.Reflection;ReflectionTypeLoadException;get_Message;();Argument[this].SyntheticField[System.Exception._message];ReturnValue;value;dfc-generated | | System.Reflection;RuntimeReflectionExtensions;GetMethodInfo;(System.Delegate);Argument[0].Property[System.Delegate.Method];ReturnValue;value;dfc-generated | | System.Reflection;RuntimeReflectionExtensions;GetRuntimeBaseDefinition;(System.Reflection.MethodInfo);Argument[0];ReturnValue;value;df-generated | | System.Reflection;RuntimeReflectionExtensions;GetRuntimeInterfaceMap;(System.Reflection.TypeInfo,System.Type);Argument[0];ReturnValue;taint;df-generated | @@ -18039,25 +15940,15 @@ summary | System.Runtime.CompilerServices;ConditionalWeakTable;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | | System.Runtime.CompilerServices;ConditionalWeakTable;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Runtime.CompilerServices;ConditionalWeakTable;GetOrAdd;(TKey,System.Func);Argument[0];Argument[1].Parameter[0];value;dfc-generated | -| System.Runtime.CompilerServices;ConditionalWeakTable;GetOrAdd;(TKey,System.Func);Argument[0];Argument[1].Parameter[0];value;hq-generated | | System.Runtime.CompilerServices;ConditionalWeakTable;GetOrAdd;(TKey,System.Func);Argument[1].ReturnValue;ReturnValue;value;dfc-generated | -| System.Runtime.CompilerServices;ConditionalWeakTable;GetOrAdd;(TKey,System.Func);Argument[1].ReturnValue;ReturnValue;value;hq-generated | -| System.Runtime.CompilerServices;ConditionalWeakTable;GetOrAdd;(TKey,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Runtime.CompilerServices;ConditionalWeakTable;GetOrAdd;(TKey,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Runtime.CompilerServices;ConditionalWeakTable;GetOrAdd;(TKey,TValue);Argument[1];ReturnValue;value;dfc-generated | | System.Runtime.CompilerServices;ConditionalWeakTable;GetOrAdd;(TKey,System.Func,TArg);Argument[0];Argument[1].Parameter[0];value;dfc-generated | -| System.Runtime.CompilerServices;ConditionalWeakTable;GetOrAdd;(TKey,System.Func,TArg);Argument[0];Argument[1].Parameter[0];value;hq-generated | | System.Runtime.CompilerServices;ConditionalWeakTable;GetOrAdd;(TKey,System.Func,TArg);Argument[1].ReturnValue;ReturnValue;value;dfc-generated | -| System.Runtime.CompilerServices;ConditionalWeakTable;GetOrAdd;(TKey,System.Func,TArg);Argument[1].ReturnValue;ReturnValue;value;hq-generated | -| System.Runtime.CompilerServices;ConditionalWeakTable;GetOrAdd;(TKey,System.Func,TArg);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Runtime.CompilerServices;ConditionalWeakTable;GetOrAdd;(TKey,System.Func,TArg);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Runtime.CompilerServices;ConditionalWeakTable;GetOrAdd;(TKey,System.Func,TArg);Argument[2];Argument[1].Parameter[1];value;dfc-generated | -| System.Runtime.CompilerServices;ConditionalWeakTable;GetOrAdd;(TKey,System.Func,TArg);Argument[2];Argument[1].Parameter[1];value;hq-generated | | System.Runtime.CompilerServices;ConditionalWeakTable;GetValue;(TKey,System.Runtime.CompilerServices.ConditionalWeakTable+CreateValueCallback);Argument[0];Argument[1].Parameter[0];value;dfc-generated | -| System.Runtime.CompilerServices;ConditionalWeakTable;GetValue;(TKey,System.Runtime.CompilerServices.ConditionalWeakTable+CreateValueCallback);Argument[0];Argument[1].Parameter[0];value;hq-generated | | System.Runtime.CompilerServices;ConditionalWeakTable;GetValue;(TKey,System.Runtime.CompilerServices.ConditionalWeakTable+CreateValueCallback);Argument[1].ReturnValue;ReturnValue;value;dfc-generated | -| System.Runtime.CompilerServices;ConditionalWeakTable;GetValue;(TKey,System.Runtime.CompilerServices.ConditionalWeakTable+CreateValueCallback);Argument[1].ReturnValue;ReturnValue;value;hq-generated | -| System.Runtime.CompilerServices;ConditionalWeakTable;GetValue;(TKey,System.Runtime.CompilerServices.ConditionalWeakTable+CreateValueCallback);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Runtime.CompilerServices;ConditionalWeakTable;GetValue;(TKey,System.Runtime.CompilerServices.ConditionalWeakTable+CreateValueCallback);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Runtime.CompilerServices;ConfiguredCancelableAsyncEnumerable+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | | System.Runtime.CompilerServices;ConfiguredCancelableAsyncEnumerable;ConfigureAwait;(System.Boolean);Argument[this];ReturnValue;taint;df-generated | @@ -18114,14 +16005,10 @@ summary | System.Runtime.CompilerServices;ReadOnlyCollectionBuilder;set_Item;(System.Int32,T);Argument[1];Argument[this].Element;value;manual | | System.Runtime.CompilerServices;RuntimeHelpers+CleanupCode;BeginInvoke;(System.Object,System.Boolean,System.AsyncCallback,System.Object);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Runtime.CompilerServices;RuntimeHelpers+TryCode;BeginInvoke;(System.Object,System.AsyncCallback,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | -| System.Runtime.CompilerServices;RuntimeHelpers;ExecuteCodeWithGuaranteedCleanup;(System.Runtime.CompilerServices.RuntimeHelpers+TryCode,System.Runtime.CompilerServices.RuntimeHelpers+CleanupCode,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Runtime.CompilerServices;RuntimeHelpers;ExecuteCodeWithGuaranteedCleanup;(System.Runtime.CompilerServices.RuntimeHelpers+TryCode,System.Runtime.CompilerServices.RuntimeHelpers+CleanupCode,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Runtime.CompilerServices;RuntimeHelpers;ExecuteCodeWithGuaranteedCleanup;(System.Runtime.CompilerServices.RuntimeHelpers+TryCode,System.Runtime.CompilerServices.RuntimeHelpers+CleanupCode,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Runtime.CompilerServices;RuntimeHelpers;ExecuteCodeWithGuaranteedCleanup;(System.Runtime.CompilerServices.RuntimeHelpers+TryCode,System.Runtime.CompilerServices.RuntimeHelpers+CleanupCode,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Runtime.CompilerServices;RuntimeHelpers;ExecuteCodeWithGuaranteedCleanup;(System.Runtime.CompilerServices.RuntimeHelpers+TryCode,System.Runtime.CompilerServices.RuntimeHelpers+CleanupCode,System.Object);Argument[2];Argument[0].Parameter[0];value;dfc-generated | -| System.Runtime.CompilerServices;RuntimeHelpers;ExecuteCodeWithGuaranteedCleanup;(System.Runtime.CompilerServices.RuntimeHelpers+TryCode,System.Runtime.CompilerServices.RuntimeHelpers+CleanupCode,System.Object);Argument[2];Argument[0].Parameter[0];value;hq-generated | | System.Runtime.CompilerServices;RuntimeHelpers;ExecuteCodeWithGuaranteedCleanup;(System.Runtime.CompilerServices.RuntimeHelpers+TryCode,System.Runtime.CompilerServices.RuntimeHelpers+CleanupCode,System.Object);Argument[2];Argument[1].Parameter[0];value;dfc-generated | -| System.Runtime.CompilerServices;RuntimeHelpers;ExecuteCodeWithGuaranteedCleanup;(System.Runtime.CompilerServices.RuntimeHelpers+TryCode,System.Runtime.CompilerServices.RuntimeHelpers+CleanupCode,System.Object);Argument[2];Argument[1].Parameter[0];value;hq-generated | | System.Runtime.CompilerServices;RuntimeWrappedException;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | | System.Runtime.CompilerServices;RuntimeWrappedException;RuntimeWrappedException;(System.Object);Argument[0];Argument[this].SyntheticField[System.Runtime.CompilerServices.RuntimeWrappedException._wrappedException];value;dfc-generated | | System.Runtime.CompilerServices;RuntimeWrappedException;get_WrappedException;();Argument[this].SyntheticField[System.Runtime.CompilerServices.RuntimeWrappedException._wrappedException];ReturnValue;value;dfc-generated | @@ -18129,7 +16016,6 @@ summary | System.Runtime.CompilerServices;SwitchExpressionException;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | | System.Runtime.CompilerServices;SwitchExpressionException;get_Message;();Argument[this].Property[System.Exception.Message];ReturnValue;value;dfc-generated | | System.Runtime.CompilerServices;SwitchExpressionException;get_Message;();Argument[this].Property[System.Runtime.CompilerServices.SwitchExpressionException.UnmatchedValue];ReturnValue;taint;dfc-generated | -| System.Runtime.CompilerServices;SwitchExpressionException;get_Message;();Argument[this].SyntheticField[System.Exception._message];ReturnValue;value;dfc-generated | | System.Runtime.CompilerServices;TaskAwaiter;OnCompleted;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Runtime.CompilerServices;TaskAwaiter;UnsafeOnCompleted;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Runtime.CompilerServices;TaskAwaiter;GetResult;();Argument[this].SyntheticField[m_task_task_awaiter].Property[System.Threading.Tasks.Task`1.Result];ReturnValue;value;manual | @@ -18286,33 +16172,11 @@ summary | System.Runtime.InteropServices;MemoryMarshal;TryGetMemoryManager;(System.ReadOnlyMemory,TManager);Argument[0];Argument[1];taint;df-generated | | System.Runtime.InteropServices;MemoryMarshal;TryGetMemoryManager;(System.ReadOnlyMemory,TManager,System.Int32,System.Int32);Argument[0];Argument[1];taint;df-generated | | System.Runtime.InteropServices;MemoryMarshal;TryGetString;(System.ReadOnlyMemory,System.String,System.Int32,System.Int32);Argument[0].SyntheticField[System.ReadOnlyMemory`1._object];Argument[1];value;dfc-generated | -| System.Runtime.InteropServices;NFloat;Clamp;(System.Runtime.InteropServices.NFloat,System.Runtime.InteropServices.NFloat,System.Runtime.InteropServices.NFloat);Argument[0];ReturnValue;value;dfc-generated | -| System.Runtime.InteropServices;NFloat;Clamp;(System.Runtime.InteropServices.NFloat,System.Runtime.InteropServices.NFloat,System.Runtime.InteropServices.NFloat);Argument[1];ReturnValue;value;dfc-generated | -| System.Runtime.InteropServices;NFloat;Clamp;(System.Runtime.InteropServices.NFloat,System.Runtime.InteropServices.NFloat,System.Runtime.InteropServices.NFloat);Argument[2];ReturnValue;value;dfc-generated | -| System.Runtime.InteropServices;NFloat;ClampNative;(System.Runtime.InteropServices.NFloat,System.Runtime.InteropServices.NFloat,System.Runtime.InteropServices.NFloat);Argument[0];ReturnValue;value;dfc-generated | -| System.Runtime.InteropServices;NFloat;ClampNative;(System.Runtime.InteropServices.NFloat,System.Runtime.InteropServices.NFloat,System.Runtime.InteropServices.NFloat);Argument[1];ReturnValue;value;dfc-generated | -| System.Runtime.InteropServices;NFloat;ClampNative;(System.Runtime.InteropServices.NFloat,System.Runtime.InteropServices.NFloat,System.Runtime.InteropServices.NFloat);Argument[2];ReturnValue;value;dfc-generated | | System.Runtime.InteropServices;NFloat;ConvertToInteger;(System.Runtime.InteropServices.NFloat);Argument[0];ReturnValue;value;dfc-generated | | System.Runtime.InteropServices;NFloat;ConvertToIntegerNative;(System.Runtime.InteropServices.NFloat);Argument[0];ReturnValue;value;dfc-generated | -| System.Runtime.InteropServices;NFloat;CopySign;(System.Runtime.InteropServices.NFloat,System.Runtime.InteropServices.NFloat);Argument[0];ReturnValue;value;dfc-generated | | System.Runtime.InteropServices;NFloat;CreateChecked;(TOther);Argument[0];ReturnValue;value;dfc-generated | | System.Runtime.InteropServices;NFloat;CreateSaturating;(TOther);Argument[0];ReturnValue;value;dfc-generated | | System.Runtime.InteropServices;NFloat;CreateTruncating;(TOther);Argument[0];ReturnValue;value;dfc-generated | -| System.Runtime.InteropServices;NFloat;Max;(System.Runtime.InteropServices.NFloat,System.Runtime.InteropServices.NFloat);Argument[0];ReturnValue;value;dfc-generated | -| System.Runtime.InteropServices;NFloat;Max;(System.Runtime.InteropServices.NFloat,System.Runtime.InteropServices.NFloat);Argument[1];ReturnValue;value;dfc-generated | -| System.Runtime.InteropServices;NFloat;MaxNative;(System.Runtime.InteropServices.NFloat,System.Runtime.InteropServices.NFloat);Argument[0];ReturnValue;value;dfc-generated | -| System.Runtime.InteropServices;NFloat;MaxNative;(System.Runtime.InteropServices.NFloat,System.Runtime.InteropServices.NFloat);Argument[1];ReturnValue;value;dfc-generated | -| System.Runtime.InteropServices;NFloat;MaxNumber;(System.Runtime.InteropServices.NFloat,System.Runtime.InteropServices.NFloat);Argument[0];ReturnValue;value;dfc-generated | -| System.Runtime.InteropServices;NFloat;MaxNumber;(System.Runtime.InteropServices.NFloat,System.Runtime.InteropServices.NFloat);Argument[1];ReturnValue;value;dfc-generated | -| System.Runtime.InteropServices;NFloat;Min;(System.Runtime.InteropServices.NFloat,System.Runtime.InteropServices.NFloat);Argument[0];ReturnValue;value;dfc-generated | -| System.Runtime.InteropServices;NFloat;Min;(System.Runtime.InteropServices.NFloat,System.Runtime.InteropServices.NFloat);Argument[1];ReturnValue;value;dfc-generated | -| System.Runtime.InteropServices;NFloat;MinNative;(System.Runtime.InteropServices.NFloat,System.Runtime.InteropServices.NFloat);Argument[0];ReturnValue;value;dfc-generated | -| System.Runtime.InteropServices;NFloat;MinNative;(System.Runtime.InteropServices.NFloat,System.Runtime.InteropServices.NFloat);Argument[1];ReturnValue;value;dfc-generated | -| System.Runtime.InteropServices;NFloat;MinNumber;(System.Runtime.InteropServices.NFloat,System.Runtime.InteropServices.NFloat);Argument[0];ReturnValue;value;dfc-generated | -| System.Runtime.InteropServices;NFloat;MinNumber;(System.Runtime.InteropServices.NFloat,System.Runtime.InteropServices.NFloat);Argument[1];ReturnValue;value;dfc-generated | -| System.Runtime.InteropServices;NFloat;MultiplyAddEstimate;(System.Runtime.InteropServices.NFloat,System.Runtime.InteropServices.NFloat,System.Runtime.InteropServices.NFloat);Argument[2];ReturnValue;taint;dfc-generated | -| System.Runtime.InteropServices;NFloat;System.Numerics.IAdditionOperators.op_CheckedAddition;(System.Runtime.InteropServices.NFloat,System.Runtime.InteropServices.NFloat);Argument[0];ReturnValue;taint;dfc-generated | -| System.Runtime.InteropServices;NFloat;System.Numerics.IAdditionOperators.op_CheckedAddition;(System.Runtime.InteropServices.NFloat,System.Runtime.InteropServices.NFloat);Argument[1];ReturnValue;taint;dfc-generated | | System.Runtime.InteropServices;NFloat;ToString;(System.IFormatProvider);Argument[0];ReturnValue;taint;df-generated | | System.Runtime.InteropServices;NFloat;ToString;(System.String,System.IFormatProvider);Argument[this];ReturnValue;taint;dfc-generated | | System.Runtime.InteropServices;NativeLibrary;SetDllImportResolver;(System.Reflection.Assembly,System.Runtime.InteropServices.DllImportResolver);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | @@ -18447,7 +16311,6 @@ summary | System.Runtime.Serialization;SurrogateSelector;ChainSelector;(System.Runtime.Serialization.ISurrogateSelector);Argument[0];Argument[this].SyntheticField[System.Runtime.Serialization.SurrogateSelector._nextSelector];value;dfc-generated | | System.Runtime.Serialization;SurrogateSelector;GetNextSelector;();Argument[this].SyntheticField[System.Runtime.Serialization.SurrogateSelector._nextSelector];ReturnValue;value;dfc-generated | | System.Runtime.Serialization;SurrogateSelector;GetSurrogate;(System.Type,System.Runtime.Serialization.StreamingContext,System.Runtime.Serialization.ISurrogateSelector);Argument[this].SyntheticField[System.Runtime.Serialization.SurrogateSelector._nextSelector];Argument[2];value;dfc-generated | -| System.Runtime.Serialization;SurrogateSelector;GetSurrogate;(System.Type,System.Runtime.Serialization.StreamingContext,System.Runtime.Serialization.ISurrogateSelector);Argument[this];Argument[2];value;dfc-generated | | System.Runtime.Serialization;XPathQueryGenerator;CreateFromDataContractSerializer;(System.Type,System.Reflection.MemberInfo[],System.Text.StringBuilder,System.Xml.XmlNamespaceManager);Argument[2];ReturnValue;taint;dfc-generated | | System.Runtime.Serialization;XmlSerializableServices;WriteNodes;(System.Xml.XmlWriter,System.Xml.XmlNode[]);Argument[1].Element;Argument[0];taint;df-generated | | System.Runtime.Serialization;XsdDataContractExporter;XsdDataContractExporter;(System.Xml.Schema.XmlSchemaSet);Argument[0];Argument[this].SyntheticField[System.Runtime.Serialization.XsdDataContractExporter._schemas];value;dfc-generated | @@ -18468,7 +16331,6 @@ summary | System.Runtime;DependentHandle;DependentHandle;(System.Object,System.Object);Argument[0];Argument[this];taint;df-generated | | System.Runtime;DependentHandle;DependentHandle;(System.Object,System.Object);Argument[1];Argument[this];taint;df-generated | | System.Runtime;DependentHandle;get_TargetAndDependent;();Argument[this];ReturnValue;taint;df-generated | -| System.Security.AccessControl;AceEnumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | | System.Security.AccessControl;GenericAcl;CopyTo;(System.Array,System.Int32);Argument[this].Element;Argument[0].Element;value;manual | | System.Security.AccessControl;GenericAcl;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Security.AccessControl;GenericAcl;get_SyncRoot;();Argument[this];ReturnValue;value;dfc-generated | @@ -18485,12 +16347,9 @@ summary | System.Security.Authentication.ExtendedProtection;ExtendedProtectionPolicy;ToString;();Argument[this].SyntheticField[System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy._customServiceNames].Element;ReturnValue;taint;dfc-generated | | System.Security.Authentication.ExtendedProtection;ExtendedProtectionPolicy;get_CustomChannelBinding;();Argument[this].SyntheticField[System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy._customChannelBinding];ReturnValue;value;dfc-generated | | System.Security.Authentication.ExtendedProtection;ExtendedProtectionPolicy;get_CustomServiceNames;();Argument[this].SyntheticField[System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy._customServiceNames];ReturnValue;value;dfc-generated | -| System.Security.Authentication.ExtendedProtection;ExtendedProtectionPolicyTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Security.Authentication.ExtendedProtection;ExtendedProtectionPolicyTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.Security.Authentication.ExtendedProtection;ExtendedProtectionPolicyTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Security.Authentication.ExtendedProtection;ExtendedProtectionPolicyTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.Security.Authentication.ExtendedProtection;ExtendedProtectionPolicyTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.Security.Authentication.ExtendedProtection;ExtendedProtectionPolicyTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Security.Authentication.ExtendedProtection;ServiceNameCollection;Merge;(System.Collections.IEnumerable);Argument[0].Element;ReturnValue.Property[System.Collections.ReadOnlyCollectionBase.InnerList].Element;value;dfc-generated | | System.Security.Authentication.ExtendedProtection;ServiceNameCollection;Merge;(System.Collections.IEnumerable);Argument[0].Property[System.Collections.ReadOnlyCollectionBase.InnerList].Element;ReturnValue.Property[System.Collections.ReadOnlyCollectionBase.InnerList].Element;value;dfc-generated | | System.Security.Authentication.ExtendedProtection;ServiceNameCollection;Merge;(System.String);Argument[0];ReturnValue.Property[System.Collections.ReadOnlyCollectionBase.InnerList].Element;value;dfc-generated | @@ -18518,12 +16377,9 @@ summary | System.Security.Claims;ClaimsIdentity;FindFirst;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Security.Claims;ClaimsIdentity;FindFirst;(System.String);Argument[this].Property[System.Security.Claims.ClaimsIdentity.Claims].Element;ReturnValue;value;dfc-generated | | System.Security.Claims;ClaimsIdentity;FindFirst;(System.String);Argument[this].SyntheticField[System.Security.Claims.ClaimsIdentity._instanceClaims].Element;ReturnValue;value;dfc-generated | -| System.Security.Claims;ClaimsIdentity;HasClaim;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Security.Claims;ClaimsIdentity;HasClaim;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Security.Claims;ClaimsIdentity;HasClaim;(System.Predicate);Argument[this].Property[System.Security.Claims.ClaimsIdentity.Claims].Element;Argument[0].Parameter[0];value;dfc-generated | -| System.Security.Claims;ClaimsIdentity;HasClaim;(System.Predicate);Argument[this].Property[System.Security.Claims.ClaimsIdentity.Claims].Element;Argument[0].Parameter[0];value;hq-generated | | System.Security.Claims;ClaimsIdentity;HasClaim;(System.Predicate);Argument[this].SyntheticField[System.Security.Claims.ClaimsIdentity._instanceClaims].Element;Argument[0].Parameter[0];value;dfc-generated | -| System.Security.Claims;ClaimsIdentity;HasClaim;(System.Predicate);Argument[this].SyntheticField[System.Security.Claims.ClaimsIdentity._instanceClaims].Element;Argument[0].Parameter[0];value;hq-generated | | System.Security.Claims;ClaimsIdentity;get_AuthenticationType;();Argument[this].SyntheticField[System.Security.Claims.ClaimsIdentity._authenticationType];ReturnValue;value;dfc-generated | | System.Security.Claims;ClaimsIdentity;get_Claims;();Argument[this].SyntheticField[System.Security.Claims.ClaimsIdentity._instanceClaims].Element;ReturnValue.Element;value;dfc-generated | | System.Security.Claims;ClaimsIdentity;get_Claims;();Argument[this].SyntheticField[System.Security.Claims.ClaimsIdentity._instanceClaims];ReturnValue;value;dfc-generated | @@ -18601,7 +16457,6 @@ summary | System.Security.Cryptography.X509Certificates;X509Certificate2Collection;FindByThumbprint;(System.Security.Cryptography.HashAlgorithmName,System.ReadOnlySpan);Argument[this].Element;ReturnValue.Property[System.Collections.CollectionBase.List].Element;value;dfc-generated | | System.Security.Cryptography.X509Certificates;X509Certificate2Collection;FindByThumbprint;(System.Security.Cryptography.HashAlgorithmName,System.String);Argument[this].Element;ReturnValue.Element;value;dfc-generated | | System.Security.Cryptography.X509Certificates;X509Certificate2Collection;FindByThumbprint;(System.Security.Cryptography.HashAlgorithmName,System.String);Argument[this].Element;ReturnValue.Property[System.Collections.CollectionBase.List].Element;value;dfc-generated | -| System.Security.Cryptography.X509Certificates;X509Certificate2Collection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | | System.Security.Cryptography.X509Certificates;X509Certificate2Collection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Security.Cryptography.X509Certificates.X509Certificate2Enumerator.Current];value;manual | | System.Security.Cryptography.X509Certificates;X509Certificate2Collection;Insert;(System.Int32,System.Security.Cryptography.X509Certificates.X509Certificate2);Argument[1];Argument[this].Element;value;manual | | System.Security.Cryptography.X509Certificates;X509Certificate2Collection;RemoveRange;(System.Security.Cryptography.X509Certificates.X509Certificate2Collection);Argument[0].Element;Argument[this];taint;df-generated | @@ -18641,15 +16496,11 @@ summary | System.Security.Cryptography.X509Certificates;X509Chain;get_SafeHandle;();Argument[this];ReturnValue;taint;df-generated | | System.Security.Cryptography.X509Certificates;X509ChainElementCollection;CopyTo;(System.Array,System.Int32);Argument[this].Element;Argument[0].Element;value;manual | | System.Security.Cryptography.X509Certificates;X509ChainElementCollection;CopyTo;(System.Security.Cryptography.X509Certificates.X509ChainElement[],System.Int32);Argument[this].Element;Argument[0].Element;value;manual | -| System.Security.Cryptography.X509Certificates;X509ChainElementCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | -| System.Security.Cryptography.X509Certificates;X509ChainElementCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Security.Cryptography.X509Certificates;X509ChainElementCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Security.Cryptography.X509Certificates.X509ChainElementEnumerator.Current];value;manual | | System.Security.Cryptography.X509Certificates;X509ChainElementCollection;get_Item;(System.Int32);Argument[this];ReturnValue;taint;df-generated | | System.Security.Cryptography.X509Certificates;X509ChainElementCollection;get_SyncRoot;();Argument[this];ReturnValue;value;dfc-generated | -| System.Security.Cryptography.X509Certificates;X509ChainElementEnumerator;get_Current;();Argument[this].Property[System.Security.Cryptography.X509Certificates.X509ChainElementEnumerator.Current];ReturnValue;value;df-generated | | System.Security.Cryptography.X509Certificates;X509ChainElementEnumerator;get_Current;();Argument[this].Property[System.Security.Cryptography.X509Certificates.X509ChainElementEnumerator.Current];ReturnValue;value;dfc-generated | | System.Security.Cryptography.X509Certificates;X509ChainElementEnumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Security.Cryptography.X509Certificates;X509ChainElementEnumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Security.Cryptography.X509Certificates;X509ChainPolicy;Clone;();Argument[this];ReturnValue;taint;df-generated | | System.Security.Cryptography.X509Certificates;X509EnhancedKeyUsageExtension;CopyFrom;(System.Security.Cryptography.AsnEncodedData);Argument[0].SyntheticField[System.Security.Cryptography.AsnEncodedData._rawData].Element;Argument[this].SyntheticField[System.Security.Cryptography.AsnEncodedData._rawData].Element;value;dfc-generated | | System.Security.Cryptography.X509Certificates;X509EnhancedKeyUsageExtension;CopyFrom;(System.Security.Cryptography.AsnEncodedData);Argument[0].SyntheticField[System.Security.Cryptography.AsnEncodedData._rawData];Argument[this].SyntheticField[System.Security.Cryptography.AsnEncodedData._rawData];value;dfc-generated | @@ -18659,16 +16510,12 @@ summary | System.Security.Cryptography.X509Certificates;X509ExtensionCollection;Add;(System.Security.Cryptography.X509Certificates.X509Extension);Argument[0];Argument[this].Element;value;manual | | System.Security.Cryptography.X509Certificates;X509ExtensionCollection;CopyTo;(System.Array,System.Int32);Argument[this].Element;Argument[0].Element;value;manual | | System.Security.Cryptography.X509Certificates;X509ExtensionCollection;CopyTo;(System.Security.Cryptography.X509Certificates.X509Extension[],System.Int32);Argument[this].Element;Argument[0].Element;value;manual | -| System.Security.Cryptography.X509Certificates;X509ExtensionCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | -| System.Security.Cryptography.X509Certificates;X509ExtensionCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Security.Cryptography.X509Certificates;X509ExtensionCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Security.Cryptography.X509Certificates.X509ExtensionEnumerator.Current];value;manual | | System.Security.Cryptography.X509Certificates;X509ExtensionCollection;get_Item;(System.Int32);Argument[this];ReturnValue;taint;df-generated | | System.Security.Cryptography.X509Certificates;X509ExtensionCollection;get_Item;(System.String);Argument[this];ReturnValue;taint;df-generated | | System.Security.Cryptography.X509Certificates;X509ExtensionCollection;get_SyncRoot;();Argument[this];ReturnValue;value;dfc-generated | -| System.Security.Cryptography.X509Certificates;X509ExtensionEnumerator;get_Current;();Argument[this].Property[System.Security.Cryptography.X509Certificates.X509ExtensionEnumerator.Current];ReturnValue;value;df-generated | | System.Security.Cryptography.X509Certificates;X509ExtensionEnumerator;get_Current;();Argument[this].Property[System.Security.Cryptography.X509Certificates.X509ExtensionEnumerator.Current];ReturnValue;value;dfc-generated | | System.Security.Cryptography.X509Certificates;X509ExtensionEnumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Security.Cryptography.X509Certificates;X509ExtensionEnumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Security.Cryptography.X509Certificates;X509KeyUsageExtension;CopyFrom;(System.Security.Cryptography.AsnEncodedData);Argument[0].SyntheticField[System.Security.Cryptography.AsnEncodedData._rawData].Element;Argument[this].SyntheticField[System.Security.Cryptography.AsnEncodedData._rawData].Element;value;dfc-generated | | System.Security.Cryptography.X509Certificates;X509KeyUsageExtension;CopyFrom;(System.Security.Cryptography.AsnEncodedData);Argument[0].SyntheticField[System.Security.Cryptography.AsnEncodedData._rawData];Argument[this].SyntheticField[System.Security.Cryptography.AsnEncodedData._rawData];value;dfc-generated | | System.Security.Cryptography.X509Certificates;X509SignatureGenerator;CreateForECDsa;(System.Security.Cryptography.ECDsa);Argument[0];ReturnValue;taint;df-generated | @@ -18738,7 +16585,6 @@ summary | System.Security.Cryptography.Xml;EncryptionPropertyCollection;get_ItemOf;(System.Int32);Argument[this].Element;ReturnValue;value;dfc-generated | | System.Security.Cryptography.Xml;EncryptionPropertyCollection;get_ItemOf;(System.Int32);Argument[this].SyntheticField[System.Security.Cryptography.Xml.EncryptionPropertyCollection._props].Element;ReturnValue;value;dfc-generated | | System.Security.Cryptography.Xml;EncryptionPropertyCollection;get_SyncRoot;();Argument[this].SyntheticField[System.Security.Cryptography.Xml.EncryptionPropertyCollection._props].Property[System.Collections.ArrayList.SyncRoot];ReturnValue;value;dfc-generated | -| System.Security.Cryptography.Xml;EncryptionPropertyCollection;get_SyncRoot;();Argument[this];ReturnValue;value;dfc-generated | | System.Security.Cryptography.Xml;EncryptionPropertyCollection;set_Item;(System.Int32,System.Object);Argument[1];Argument[this].Element;value;manual | | System.Security.Cryptography.Xml;EncryptionPropertyCollection;set_ItemOf;(System.Int32,System.Security.Cryptography.Xml.EncryptionProperty);Argument[1];Argument[this].Element;value;dfc-generated | | System.Security.Cryptography.Xml;EncryptionPropertyCollection;set_ItemOf;(System.Int32,System.Security.Cryptography.Xml.EncryptionProperty);Argument[1];Argument[this].SyntheticField[System.Security.Cryptography.Xml.EncryptionPropertyCollection._props].Element;value;dfc-generated | @@ -18749,9 +16595,6 @@ summary | System.Security.Cryptography.Xml;KeyInfoClause;LoadXml;(System.Xml.XmlElement);Argument[0].Element;Argument[this];taint;df-generated | | System.Security.Cryptography.Xml;KeyInfoEncryptedKey;GetXml;();Argument[this].SyntheticField[System.Security.Cryptography.Xml.KeyInfoEncryptedKey._encryptedKey].SyntheticField[System.Security.Cryptography.Xml.EncryptedType._cachedXml];ReturnValue;value;dfc-generated | | System.Security.Cryptography.Xml;KeyInfoEncryptedKey;KeyInfoEncryptedKey;(System.Security.Cryptography.Xml.EncryptedKey);Argument[0];Argument[this];taint;df-generated | -| System.Security.Cryptography.Xml;KeyInfoEncryptedKey;LoadXml;(System.Xml.XmlElement);Argument[0].Element;Argument[this];taint;df-generated | -| System.Security.Cryptography.Xml;KeyInfoEncryptedKey;LoadXml;(System.Xml.XmlElement);Argument[0].Element;Argument[this];taint;dfc-generated | -| System.Security.Cryptography.Xml;KeyInfoEncryptedKey;LoadXml;(System.Xml.XmlElement);Argument[0];Argument[this].SyntheticField[System.Security.Cryptography.Xml.KeyInfoEncryptedKey._encryptedKey].SyntheticField[System.Security.Cryptography.Xml.EncryptedType._cachedXml];value;df-generated | | System.Security.Cryptography.Xml;KeyInfoEncryptedKey;LoadXml;(System.Xml.XmlElement);Argument[0];Argument[this].SyntheticField[System.Security.Cryptography.Xml.KeyInfoEncryptedKey._encryptedKey].SyntheticField[System.Security.Cryptography.Xml.EncryptedType._cachedXml];value;dfc-generated | | System.Security.Cryptography.Xml;KeyInfoName;KeyInfoName;(System.String);Argument[0];Argument[this];taint;df-generated | | System.Security.Cryptography.Xml;KeyInfoName;LoadXml;(System.Xml.XmlElement);Argument[0].Element;Argument[this];taint;df-generated | @@ -18787,7 +16630,6 @@ summary | System.Security.Cryptography.Xml;ReferenceList;get_Item;(System.Int32);Argument[this].Element;ReturnValue;value;manual | | System.Security.Cryptography.Xml;ReferenceList;get_ItemOf;(System.Int32);Argument[this].SyntheticField[System.Security.Cryptography.Xml.ReferenceList._references].Element;ReturnValue;value;dfc-generated | | System.Security.Cryptography.Xml;ReferenceList;get_SyncRoot;();Argument[this].SyntheticField[System.Security.Cryptography.Xml.ReferenceList._references].Property[System.Collections.ArrayList.SyncRoot];ReturnValue;value;dfc-generated | -| System.Security.Cryptography.Xml;ReferenceList;get_SyncRoot;();Argument[this];ReturnValue;value;dfc-generated | | System.Security.Cryptography.Xml;ReferenceList;set_Item;(System.Int32,System.Object);Argument[1];Argument[this].Element;value;manual | | System.Security.Cryptography.Xml;ReferenceList;set_ItemOf;(System.Int32,System.Security.Cryptography.Xml.EncryptedReference);Argument[1];Argument[this].Element;value;dfc-generated | | System.Security.Cryptography.Xml;ReferenceList;set_ItemOf;(System.Int32,System.Security.Cryptography.Xml.EncryptedReference);Argument[1];Argument[this].SyntheticField[System.Security.Cryptography.Xml.ReferenceList._references].Element;value;dfc-generated | @@ -18826,19 +16668,10 @@ summary | System.Security.Cryptography.Xml;TransformChain;GetEnumerator;();Argument[this].SyntheticField[System.Security.Cryptography.Xml.TransformChain._transforms].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;dfc-generated | | System.Security.Cryptography.Xml;TransformChain;get_Item;(System.Int32);Argument[this].SyntheticField[System.Security.Cryptography.Xml.TransformChain._transforms].Element;ReturnValue;value;dfc-generated | | System.Security.Cryptography.Xml;XmlDecryptionTransform;AddExceptUri;(System.String);Argument[0];Argument[this];taint;df-generated | -| System.Security.Cryptography.Xml;XmlDecryptionTransform;GetOutput;();Argument[this].SyntheticField[System.Security.Cryptography.Xml.XmlDecryptionTransform._containingDocument];ReturnValue;value;df-generated | | System.Security.Cryptography.Xml;XmlDecryptionTransform;GetOutput;();Argument[this].SyntheticField[System.Security.Cryptography.Xml.XmlDecryptionTransform._containingDocument];ReturnValue;value;dfc-generated | -| System.Security.Cryptography.Xml;XmlDecryptionTransform;GetOutput;();Argument[this];ReturnValue;taint;df-generated | -| System.Security.Cryptography.Xml;XmlDecryptionTransform;GetOutput;();Argument[this];ReturnValue;taint;dfc-generated | -| System.Security.Cryptography.Xml;XmlDecryptionTransform;GetOutput;(System.Type);Argument[this].SyntheticField[System.Security.Cryptography.Xml.XmlDecryptionTransform._containingDocument];ReturnValue;value;df-generated | | System.Security.Cryptography.Xml;XmlDecryptionTransform;GetOutput;(System.Type);Argument[this].SyntheticField[System.Security.Cryptography.Xml.XmlDecryptionTransform._containingDocument];ReturnValue;value;dfc-generated | -| System.Security.Cryptography.Xml;XmlDecryptionTransform;GetOutput;(System.Type);Argument[this];ReturnValue;taint;df-generated | -| System.Security.Cryptography.Xml;XmlDecryptionTransform;GetOutput;(System.Type);Argument[this];ReturnValue;taint;dfc-generated | | System.Security.Cryptography.Xml;XmlDecryptionTransform;LoadInnerXml;(System.Xml.XmlNodeList);Argument[0].Element;Argument[this];taint;df-generated | -| System.Security.Cryptography.Xml;XmlDecryptionTransform;LoadInput;(System.Object);Argument[0];Argument[this].SyntheticField[System.Security.Cryptography.Xml.XmlDecryptionTransform._containingDocument];value;df-generated | | System.Security.Cryptography.Xml;XmlDecryptionTransform;LoadInput;(System.Object);Argument[0];Argument[this].SyntheticField[System.Security.Cryptography.Xml.XmlDecryptionTransform._containingDocument];value;dfc-generated | -| System.Security.Cryptography.Xml;XmlDecryptionTransform;LoadInput;(System.Object);Argument[0];Argument[this];taint;df-generated | -| System.Security.Cryptography.Xml;XmlDecryptionTransform;LoadInput;(System.Object);Argument[0];Argument[this];taint;dfc-generated | | System.Security.Cryptography.Xml;XmlDecryptionTransform;get_InputTypes;();Argument[this];ReturnValue;taint;df-generated | | System.Security.Cryptography.Xml;XmlDecryptionTransform;get_OutputTypes;();Argument[this];ReturnValue;taint;df-generated | | System.Security.Cryptography.Xml;XmlDsigBase64Transform;GetOutput;();Argument[this];ReturnValue;taint;df-generated | @@ -18877,9 +16710,6 @@ summary | System.Security.Cryptography.Xml;XmlDsigXsltTransform;GetInnerXml;();Argument[this].SyntheticField[System.Security.Cryptography.Xml.XmlDsigXsltTransform._xslNodes];ReturnValue;value;dfc-generated | | System.Security.Cryptography.Xml;XmlDsigXsltTransform;GetOutput;();Argument[this];ReturnValue;taint;df-generated | | System.Security.Cryptography.Xml;XmlDsigXsltTransform;GetOutput;(System.Type);Argument[this];ReturnValue;taint;df-generated | -| System.Security.Cryptography.Xml;XmlDsigXsltTransform;LoadInnerXml;(System.Xml.XmlNodeList);Argument[0].Element;Argument[this];taint;df-generated | -| System.Security.Cryptography.Xml;XmlDsigXsltTransform;LoadInnerXml;(System.Xml.XmlNodeList);Argument[0].Element;Argument[this];taint;dfc-generated | -| System.Security.Cryptography.Xml;XmlDsigXsltTransform;LoadInnerXml;(System.Xml.XmlNodeList);Argument[0];Argument[this].SyntheticField[System.Security.Cryptography.Xml.XmlDsigXsltTransform._xslNodes];value;df-generated | | System.Security.Cryptography.Xml;XmlDsigXsltTransform;LoadInnerXml;(System.Xml.XmlNodeList);Argument[0];Argument[this].SyntheticField[System.Security.Cryptography.Xml.XmlDsigXsltTransform._xslNodes];value;dfc-generated | | System.Security.Cryptography.Xml;XmlDsigXsltTransform;LoadInput;(System.Object);Argument[0];Argument[this];taint;df-generated | | System.Security.Cryptography.Xml;XmlDsigXsltTransform;get_InputTypes;();Argument[this];ReturnValue;taint;df-generated | @@ -18915,7 +16745,6 @@ summary | System.Security.Cryptography;AsnEncodedDataCollection;Add;(System.Security.Cryptography.AsnEncodedData);Argument[0];Argument[this].Element;value;manual | | System.Security.Cryptography;AsnEncodedDataCollection;CopyTo;(System.Array,System.Int32);Argument[this].Element;Argument[0].Element;value;manual | | System.Security.Cryptography;AsnEncodedDataCollection;CopyTo;(System.Security.Cryptography.AsnEncodedData[],System.Int32);Argument[this].Element;Argument[0].Element;value;manual | -| System.Security.Cryptography;AsnEncodedDataCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Security.Cryptography;AsnEncodedDataCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Security.Cryptography.AsnEncodedDataEnumerator.Current];value;manual | | System.Security.Cryptography;AsnEncodedDataCollection;get_Item;(System.Int32);Argument[this];ReturnValue;taint;df-generated | | System.Security.Cryptography;AsnEncodedDataCollection;get_SyncRoot;();Argument[this];ReturnValue;value;dfc-generated | @@ -18948,10 +16777,8 @@ summary | System.Security.Cryptography;CngUIPolicy;CngUIPolicy;(System.Security.Cryptography.CngUIProtectionLevels,System.String,System.String,System.String,System.String);Argument[4];Argument[this].Property[System.Security.Cryptography.CngUIPolicy.CreationTitle];value;dfc-generated | | System.Security.Cryptography;CompositeMLDsa;CompositeMLDsa;(System.Security.Cryptography.CompositeMLDsaAlgorithm);Argument[0];Argument[this].Property[System.Security.Cryptography.CompositeMLDsa.Algorithm];value;dfc-generated | | System.Security.Cryptography;CompositeMLDsaAlgorithm;ToString;();Argument[this].Property[System.Security.Cryptography.CompositeMLDsaAlgorithm.Name];ReturnValue;value;dfc-generated | -| System.Security.Cryptography;CryptoStream;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Security.Cryptography;CryptoStream;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[this];Argument[0];taint;manual | | System.Security.Cryptography;CryptoStream;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[0].Element;Argument[this];taint;manual | -| System.Security.Cryptography;CryptoStream;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Security.Cryptography;CryptoStream;CopyTo;(System.IO.Stream,System.Int32);Argument[this];Argument[0];taint;manual | | System.Security.Cryptography;CryptoStream;CopyToAsync;(System.IO.Stream,System.Int32,System.Threading.CancellationToken);Argument[this];Argument[0];taint;manual | | System.Security.Cryptography;CryptoStream;CryptoStream;(System.IO.Stream,System.Security.Cryptography.ICryptoTransform,System.Security.Cryptography.CryptoStreamMode,System.Boolean);Argument[0];Argument[this];taint;df-generated | @@ -19052,15 +16879,12 @@ summary | System.Security.Cryptography;OidCollection;Add;(System.Security.Cryptography.Oid);Argument[0];Argument[this].Element;value;manual | | System.Security.Cryptography;OidCollection;CopyTo;(System.Array,System.Int32);Argument[this].Element;Argument[0].Element;value;manual | | System.Security.Cryptography;OidCollection;CopyTo;(System.Security.Cryptography.Oid[],System.Int32);Argument[this].Element;Argument[0].Element;value;manual | -| System.Security.Cryptography;OidCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Security.Cryptography;OidCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Security.Cryptography.OidEnumerator.Current];value;manual | | System.Security.Cryptography;OidCollection;get_Item;(System.Int32);Argument[this];ReturnValue;taint;df-generated | | System.Security.Cryptography;OidCollection;get_Item;(System.String);Argument[this];ReturnValue;taint;df-generated | | System.Security.Cryptography;OidCollection;get_SyncRoot;();Argument[this];ReturnValue;value;dfc-generated | -| System.Security.Cryptography;OidEnumerator;get_Current;();Argument[this].Property[System.Security.Cryptography.OidEnumerator.Current];ReturnValue;value;df-generated | | System.Security.Cryptography;OidEnumerator;get_Current;();Argument[this].Property[System.Security.Cryptography.OidEnumerator.Current];ReturnValue;value;dfc-generated | | System.Security.Cryptography;OidEnumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Security.Cryptography;OidEnumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Security.Cryptography;PasswordDeriveBytes;PasswordDeriveBytes;(System.Byte[],System.Byte[],System.String,System.Int32,System.Security.Cryptography.CspParameters);Argument[0].Element;Argument[this];taint;df-generated | | System.Security.Cryptography;PasswordDeriveBytes;PasswordDeriveBytes;(System.Byte[],System.Byte[],System.String,System.Int32,System.Security.Cryptography.CspParameters);Argument[1].Element;Argument[this];taint;df-generated | | System.Security.Cryptography;PasswordDeriveBytes;PasswordDeriveBytes;(System.Byte[],System.Byte[],System.String,System.Int32,System.Security.Cryptography.CspParameters);Argument[2];Argument[this];taint;df-generated | @@ -19150,7 +16974,6 @@ summary | System.Security.Permissions;KeyContainerPermissionAccessEntryCollection;CopyTo;(System.Array,System.Int32);Argument[this].Element;Argument[0].Element;value;manual | | System.Security.Permissions;KeyContainerPermissionAccessEntryCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Security.Permissions;KeyContainerPermissionAccessEntryCollection;get_SyncRoot;();Argument[this];ReturnValue;value;dfc-generated | -| System.Security.Permissions;KeyContainerPermissionAccessEntryEnumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | | System.Security.Permissions;MediaPermission;Copy;();Argument[this];ReturnValue;value;dfc-generated | | System.Security.Permissions;MediaPermission;Intersect;(System.Security.IPermission);Argument[0];ReturnValue;value;dfc-generated | | System.Security.Permissions;MediaPermission;Union;(System.Security.IPermission);Argument[this];ReturnValue;taint;df-generated | @@ -19206,7 +17029,6 @@ summary | System.Security.Policy;ApplicationTrustCollection;CopyTo;(System.Array,System.Int32);Argument[this].Element;Argument[0].Element;value;manual | | System.Security.Policy;ApplicationTrustCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Security.Policy;ApplicationTrustCollection;get_SyncRoot;();Argument[this];ReturnValue;value;dfc-generated | -| System.Security.Policy;ApplicationTrustEnumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | | System.Security.Policy;Evidence;Clear;();Argument[this].WithoutElement;Argument[this];value;manual | | System.Security.Policy;Evidence;CopyTo;(System.Array,System.Int32);Argument[this].Element;Argument[0].Element;value;manual | | System.Security.Policy;Evidence;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | @@ -19227,17 +17049,10 @@ summary | System.Security.Principal;GenericIdentity;GenericIdentity;(System.String);Argument[0];Argument[this].SyntheticField[System.Security.Principal.GenericIdentity.m_name];value;dfc-generated | | System.Security.Principal;GenericIdentity;GenericIdentity;(System.String,System.String);Argument[0];Argument[this].SyntheticField[System.Security.Principal.GenericIdentity.m_name];value;dfc-generated | | System.Security.Principal;GenericIdentity;GenericIdentity;(System.String,System.String);Argument[1];Argument[this].SyntheticField[System.Security.Principal.GenericIdentity.m_type];value;dfc-generated | -| System.Security.Principal;GenericIdentity;get_AuthenticationType;();Argument[this].SyntheticField[System.Security.Claims.ClaimsIdentity._authenticationType];ReturnValue;value;dfc-generated | | System.Security.Principal;GenericIdentity;get_AuthenticationType;();Argument[this].SyntheticField[System.Security.Principal.GenericIdentity.m_type];ReturnValue;value;dfc-generated | | System.Security.Principal;GenericIdentity;get_Claims;();Argument[this].Property[System.Security.Claims.ClaimsIdentity.Claims];ReturnValue;value;dfc-generated | -| System.Security.Principal;GenericIdentity;get_Claims;();Argument[this].SyntheticField[System.Security.Claims.ClaimsIdentity._instanceClaims].Element;ReturnValue.Element;value;dfc-generated | -| System.Security.Principal;GenericIdentity;get_Claims;();Argument[this].SyntheticField[System.Security.Claims.ClaimsIdentity._instanceClaims];ReturnValue;value;dfc-generated | -| System.Security.Principal;GenericIdentity;get_Name;();Argument[this].SyntheticField[System.Security.Principal.GenericIdentity.m_name];ReturnValue;value;df-generated | | System.Security.Principal;GenericIdentity;get_Name;();Argument[this].SyntheticField[System.Security.Principal.GenericIdentity.m_name];ReturnValue;value;dfc-generated | -| System.Security.Principal;GenericIdentity;get_Name;();Argument[this];ReturnValue;taint;df-generated | -| System.Security.Principal;GenericIdentity;get_Name;();Argument[this];ReturnValue;taint;dfc-generated | | System.Security.Principal;GenericPrincipal;GenericPrincipal;(System.Security.Principal.IIdentity,System.String[]);Argument[0];Argument[this].SyntheticField[System.Security.Principal.GenericPrincipal.m_identity];value;dfc-generated | -| System.Security.Principal;GenericPrincipal;get_Identity;();Argument[this].SyntheticField[System.Security.Claims.ClaimsPrincipal._identities].Element;ReturnValue;value;dfc-generated | | System.Security.Principal;GenericPrincipal;get_Identity;();Argument[this].SyntheticField[System.Security.Principal.GenericPrincipal.m_identity];ReturnValue;value;dfc-generated | | System.Security.Principal;IIdentity;get_Name;();Argument[this];ReturnValue;taint;df-generated | | System.Security.Principal;IdentityNotMappedException;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | @@ -19251,11 +17066,9 @@ summary | System.Security.Principal;WindowsIdentity;RunImpersonated;(Microsoft.Win32.SafeHandles.SafeAccessTokenHandle,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Security.Principal;WindowsIdentity;RunImpersonatedAsync;(Microsoft.Win32.SafeHandles.SafeAccessTokenHandle,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Security.Principal;WindowsIdentity;RunImpersonatedAsync;(Microsoft.Win32.SafeHandles.SafeAccessTokenHandle,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | -| System.Security.Principal;WindowsIdentity;get_AuthenticationType;();Argument[this].SyntheticField[System.Security.Claims.ClaimsIdentity._authenticationType];ReturnValue;value;dfc-generated | | System.Security.Principal;WindowsIdentity;get_Claims;();Argument[this].SyntheticField[System.Security.Claims.ClaimsIdentity._instanceClaims].Element;ReturnValue.Element;value;dfc-generated | | System.Security.Principal;WindowsIdentity;get_Claims;();Argument[this].SyntheticField[System.Security.Claims.ClaimsIdentity._instanceClaims];ReturnValue;value;dfc-generated | | System.Security.Principal;WindowsIdentity;get_Name;();Argument[this];ReturnValue;taint;df-generated | -| System.Security.Principal;WindowsPrincipal;get_Identity;();Argument[this].SyntheticField[System.Security.Claims.ClaimsPrincipal._identities].Element;ReturnValue;value;dfc-generated | | System.Security;CodeAccessPermission;Copy;();Argument[this];ReturnValue;value;dfc-generated | | System.Security;CodeAccessPermission;Intersect;(System.Security.IPermission);Argument[0];ReturnValue;value;dfc-generated | | System.Security;CodeAccessPermission;Union;(System.Security.IPermission);Argument[this];ReturnValue;taint;df-generated | @@ -19417,17 +17230,13 @@ summary | System.Text.Json;JsonElement+ArrayEnumerator;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | | System.Text.Json;JsonElement+ArrayEnumerator;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Text.Json;JsonElement+ArrayEnumerator;GetEnumerator;();Argument[this];ReturnValue;value;dfc-generated | -| System.Text.Json;JsonElement+ArrayEnumerator;get_Current;();Argument[this].Property[System.Text.Json.JsonElement+ArrayEnumerator.Current];ReturnValue;value;df-generated | | System.Text.Json;JsonElement+ArrayEnumerator;get_Current;();Argument[this].Property[System.Text.Json.JsonElement+ArrayEnumerator.Current];ReturnValue;value;dfc-generated | | System.Text.Json;JsonElement+ArrayEnumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Text.Json;JsonElement+ArrayEnumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Text.Json;JsonElement+ObjectEnumerator;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | | System.Text.Json;JsonElement+ObjectEnumerator;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Text.Json;JsonElement+ObjectEnumerator;GetEnumerator;();Argument[this];ReturnValue;value;dfc-generated | -| System.Text.Json;JsonElement+ObjectEnumerator;get_Current;();Argument[this].Property[System.Text.Json.JsonElement+ObjectEnumerator.Current];ReturnValue;value;df-generated | | System.Text.Json;JsonElement+ObjectEnumerator;get_Current;();Argument[this].Property[System.Text.Json.JsonElement+ObjectEnumerator.Current];ReturnValue;value;dfc-generated | | System.Text.Json;JsonElement+ObjectEnumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Text.Json;JsonElement+ObjectEnumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Text.Json;JsonElement;Clone;();Argument[this];ReturnValue;value;dfc-generated | | System.Text.Json;JsonElement;EnumerateArray;();Argument[this];ReturnValue;taint;df-generated | | System.Text.Json;JsonElement;EnumerateObject;();Argument[this];ReturnValue;taint;df-generated | @@ -19454,7 +17263,6 @@ summary | System.Text.Json;JsonException;JsonException;(System.String,System.String,System.Nullable,System.Nullable,System.Exception);Argument[2];Argument[this].Property[System.Text.Json.JsonException.LineNumber];value;dfc-generated | | System.Text.Json;JsonException;JsonException;(System.String,System.String,System.Nullable,System.Nullable,System.Exception);Argument[3];Argument[this].Property[System.Text.Json.JsonException.BytePositionInLine];value;dfc-generated | | System.Text.Json;JsonException;get_Message;();Argument[this].Property[System.Exception.Message];ReturnValue;value;dfc-generated | -| System.Text.Json;JsonException;get_Message;();Argument[this].SyntheticField[System.Exception._message];ReturnValue;value;dfc-generated | | System.Text.Json;JsonException;get_Message;();Argument[this].SyntheticField[System.Text.Json.JsonException._message];ReturnValue;value;dfc-generated | | System.Text.Json;JsonNamingPolicy;ConvertName;(System.String);Argument[0];ReturnValue;value;dfc-generated | | System.Text.Json;JsonReaderState;JsonReaderState;(System.Text.Json.JsonReaderOptions);Argument[0];Argument[this].SyntheticField[System.Text.Json.JsonReaderState._readerOptions];value;dfc-generated | @@ -19555,10 +17363,8 @@ summary | System.Text.RegularExpressions;Regex+ValueMatchEnumerator;GetEnumerator;();Argument[this];ReturnValue;value;dfc-generated | | System.Text.RegularExpressions;Regex+ValueMatchEnumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | | System.Text.RegularExpressions;Regex+ValueSplitEnumerator;GetEnumerator;();Argument[this];ReturnValue;value;dfc-generated | -| System.Text.RegularExpressions;Regex+ValueSplitEnumerator;get_Current;();Argument[this].Property[System.Text.RegularExpressions.Regex+ValueSplitEnumerator.Current];ReturnValue;value;df-generated | | System.Text.RegularExpressions;Regex+ValueSplitEnumerator;get_Current;();Argument[this].Property[System.Text.RegularExpressions.Regex+ValueSplitEnumerator.Current];ReturnValue;value;dfc-generated | | System.Text.RegularExpressions;Regex+ValueSplitEnumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Text.RegularExpressions;Regex+ValueSplitEnumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Text.RegularExpressions;Regex;Count;(System.String);Argument[0];Argument[this];taint;df-generated | | System.Text.RegularExpressions;Regex;EnumerateMatches;(System.ReadOnlySpan);Argument[0];ReturnValue;taint;df-generated | | System.Text.RegularExpressions;Regex;EnumerateMatches;(System.ReadOnlySpan);Argument[this];ReturnValue;taint;df-generated | @@ -19623,28 +17429,16 @@ summary | System.Text.RegularExpressions;Regex;Replace;(System.String,System.String,System.String,System.Text.RegularExpressions.RegexOptions);Argument[0];ReturnValue;value;dfc-generated | | System.Text.RegularExpressions;Regex;Replace;(System.String,System.String,System.String,System.Text.RegularExpressions.RegexOptions,System.TimeSpan);Argument[0];ReturnValue;value;dfc-generated | | System.Text.RegularExpressions;Regex;Replace;(System.String,System.String,System.Text.RegularExpressions.MatchEvaluator);Argument[0];ReturnValue;value;dfc-generated | -| System.Text.RegularExpressions;Regex;Replace;(System.String,System.String,System.Text.RegularExpressions.MatchEvaluator);Argument[0];ReturnValue;value;hq-generated | -| System.Text.RegularExpressions;Regex;Replace;(System.String,System.String,System.Text.RegularExpressions.MatchEvaluator);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Text.RegularExpressions;Regex;Replace;(System.String,System.String,System.Text.RegularExpressions.MatchEvaluator);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Text.RegularExpressions;Regex;Replace;(System.String,System.String,System.Text.RegularExpressions.MatchEvaluator,System.Text.RegularExpressions.RegexOptions);Argument[0];ReturnValue;value;dfc-generated | -| System.Text.RegularExpressions;Regex;Replace;(System.String,System.String,System.Text.RegularExpressions.MatchEvaluator,System.Text.RegularExpressions.RegexOptions);Argument[0];ReturnValue;value;hq-generated | -| System.Text.RegularExpressions;Regex;Replace;(System.String,System.String,System.Text.RegularExpressions.MatchEvaluator,System.Text.RegularExpressions.RegexOptions);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Text.RegularExpressions;Regex;Replace;(System.String,System.String,System.Text.RegularExpressions.MatchEvaluator,System.Text.RegularExpressions.RegexOptions);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Text.RegularExpressions;Regex;Replace;(System.String,System.String,System.Text.RegularExpressions.MatchEvaluator,System.Text.RegularExpressions.RegexOptions,System.TimeSpan);Argument[0];ReturnValue;value;dfc-generated | -| System.Text.RegularExpressions;Regex;Replace;(System.String,System.String,System.Text.RegularExpressions.MatchEvaluator,System.Text.RegularExpressions.RegexOptions,System.TimeSpan);Argument[0];ReturnValue;value;hq-generated | -| System.Text.RegularExpressions;Regex;Replace;(System.String,System.String,System.Text.RegularExpressions.MatchEvaluator,System.Text.RegularExpressions.RegexOptions,System.TimeSpan);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Text.RegularExpressions;Regex;Replace;(System.String,System.String,System.Text.RegularExpressions.MatchEvaluator,System.Text.RegularExpressions.RegexOptions,System.TimeSpan);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Text.RegularExpressions;Regex;Replace;(System.String,System.Text.RegularExpressions.MatchEvaluator);Argument[0];ReturnValue;value;dfc-generated | -| System.Text.RegularExpressions;Regex;Replace;(System.String,System.Text.RegularExpressions.MatchEvaluator);Argument[0];ReturnValue;value;hq-generated | -| System.Text.RegularExpressions;Regex;Replace;(System.String,System.Text.RegularExpressions.MatchEvaluator);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Text.RegularExpressions;Regex;Replace;(System.String,System.Text.RegularExpressions.MatchEvaluator);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Text.RegularExpressions;Regex;Replace;(System.String,System.Text.RegularExpressions.MatchEvaluator,System.Int32);Argument[0];ReturnValue;value;dfc-generated | -| System.Text.RegularExpressions;Regex;Replace;(System.String,System.Text.RegularExpressions.MatchEvaluator,System.Int32);Argument[0];ReturnValue;value;hq-generated | -| System.Text.RegularExpressions;Regex;Replace;(System.String,System.Text.RegularExpressions.MatchEvaluator,System.Int32);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Text.RegularExpressions;Regex;Replace;(System.String,System.Text.RegularExpressions.MatchEvaluator,System.Int32);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Text.RegularExpressions;Regex;Replace;(System.String,System.Text.RegularExpressions.MatchEvaluator,System.Int32,System.Int32);Argument[0];ReturnValue;value;dfc-generated | -| System.Text.RegularExpressions;Regex;Replace;(System.String,System.Text.RegularExpressions.MatchEvaluator,System.Int32,System.Int32);Argument[0];ReturnValue;value;hq-generated | -| System.Text.RegularExpressions;Regex;Replace;(System.String,System.Text.RegularExpressions.MatchEvaluator,System.Int32,System.Int32);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Text.RegularExpressions;Regex;Replace;(System.String,System.Text.RegularExpressions.MatchEvaluator,System.Int32,System.Int32);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Text.RegularExpressions;Regex;Split;(System.String);Argument[0];ReturnValue.Element;value;dfc-generated | | System.Text.RegularExpressions;Regex;Split;(System.String,System.Int32);Argument[0];ReturnValue.Element;value;dfc-generated | @@ -19661,7 +17455,6 @@ summary | System.Text.RegularExpressions;RegexCompilationInfo;RegexCompilationInfo;(System.String,System.Text.RegularExpressions.RegexOptions,System.String,System.String,System.Boolean,System.TimeSpan);Argument[5];Argument[this];taint;df-generated | | System.Text.RegularExpressions;RegexMatchTimeoutException;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this].Property[System.Text.RegularExpressions.RegexMatchTimeoutException.Input];Argument[0];taint;dfc-generated | | System.Text.RegularExpressions;RegexMatchTimeoutException;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this].Property[System.Text.RegularExpressions.RegexMatchTimeoutException.Pattern];Argument[0];taint;dfc-generated | -| System.Text.RegularExpressions;RegexMatchTimeoutException;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | | System.Text.RegularExpressions;RegexMatchTimeoutException;RegexMatchTimeoutException;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[0];Argument[this].Property[System.Text.RegularExpressions.RegexMatchTimeoutException.Input];taint;dfc-generated | | System.Text.RegularExpressions;RegexMatchTimeoutException;RegexMatchTimeoutException;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[0];Argument[this].Property[System.Text.RegularExpressions.RegexMatchTimeoutException.Pattern];taint;dfc-generated | | System.Text.RegularExpressions;RegexMatchTimeoutException;RegexMatchTimeoutException;(System.String,System.String,System.TimeSpan);Argument[0];Argument[this].Property[System.Text.RegularExpressions.RegexMatchTimeoutException.Input];value;dfc-generated | @@ -19754,15 +17547,10 @@ summary | System.Text;SpanLineEnumerator;GetEnumerator;();Argument[this];ReturnValue;value;dfc-generated | | System.Text;SpanLineEnumerator;MoveNext;();Argument[this].SyntheticField[System.Text.SpanLineEnumerator._remaining].Element;Argument[this].SyntheticField[System.Text.SpanLineEnumerator._current].Element;value;dfc-generated | | System.Text;SpanLineEnumerator;MoveNext;();Argument[this].SyntheticField[System.Text.SpanLineEnumerator._remaining];Argument[this].SyntheticField[System.Text.SpanLineEnumerator._current];value;dfc-generated | -| System.Text;SpanLineEnumerator;get_Current;();Argument[this].SyntheticField[System.Text.SpanLineEnumerator._current];ReturnValue;value;df-generated | | System.Text;SpanLineEnumerator;get_Current;();Argument[this].SyntheticField[System.Text.SpanLineEnumerator._current];ReturnValue;value;dfc-generated | -| System.Text;SpanLineEnumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Text;SpanLineEnumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Text;SpanRuneEnumerator;GetEnumerator;();Argument[this];ReturnValue;value;dfc-generated | -| System.Text;SpanRuneEnumerator;get_Current;();Argument[this].Property[System.Text.SpanRuneEnumerator.Current];ReturnValue;value;df-generated | | System.Text;SpanRuneEnumerator;get_Current;();Argument[this].Property[System.Text.SpanRuneEnumerator.Current];ReturnValue;value;dfc-generated | | System.Text;SpanRuneEnumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Text;SpanRuneEnumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Text;StringBuilder+AppendInterpolatedStringHandler;AppendFormatted;(System.String);Argument[0];Argument[this];taint;df-generated | | System.Text;StringBuilder+AppendInterpolatedStringHandler;AppendFormatted;(T);Argument[0];Argument[this];taint;df-generated | | System.Text;StringBuilder+AppendInterpolatedStringHandler;AppendFormatted;(T,System.String);Argument[0];Argument[this];taint;df-generated | @@ -19887,7 +17675,6 @@ summary | System.Text;StringBuilder;Clear;();Argument[this];ReturnValue;value;dfc-generated | | System.Text;StringBuilder;GetChunks;();Argument[this];ReturnValue;taint;df-generated | | System.Text;StringBuilder;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0].SyntheticField[System.Runtime.Serialization.SerializationInfo._values].Element;taint;dfc-generated | -| System.Text;StringBuilder;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | | System.Text;StringBuilder;Insert;(System.Int32,System.Boolean);Argument[this];ReturnValue;value;dfc-generated | | System.Text;StringBuilder;Insert;(System.Int32,System.Byte);Argument[this];ReturnValue;value;dfc-generated | | System.Text;StringBuilder;Insert;(System.Int32,System.Char);Argument[this];ReturnValue;value;dfc-generated | @@ -19963,10 +17750,7 @@ summary | System.Threading.RateLimiting;FixedWindowRateLimiter;AttemptAcquireCore;(System.Int32);Argument[this];ReturnValue;taint;df-generated | | System.Threading.RateLimiting;FixedWindowRateLimiter;FixedWindowRateLimiter;(System.Threading.RateLimiting.FixedWindowRateLimiterOptions);Argument[0].Property[System.Threading.RateLimiting.FixedWindowRateLimiterOptions.Window];Argument[this].SyntheticField[System.Threading.RateLimiting.FixedWindowRateLimiter._options].Property[System.Threading.RateLimiting.FixedWindowRateLimiterOptions.Window];value;dfc-generated | | System.Threading.RateLimiting;FixedWindowRateLimiter;get_IdleDuration;();Argument[this];ReturnValue;taint;df-generated | -| System.Threading.RateLimiting;FixedWindowRateLimiter;get_ReplenishmentPeriod;();Argument[this].SyntheticField[System.Threading.RateLimiting.FixedWindowRateLimiter._options].Property[System.Threading.RateLimiting.FixedWindowRateLimiterOptions.Window];ReturnValue;value;df-generated | | System.Threading.RateLimiting;FixedWindowRateLimiter;get_ReplenishmentPeriod;();Argument[this].SyntheticField[System.Threading.RateLimiting.FixedWindowRateLimiter._options].Property[System.Threading.RateLimiting.FixedWindowRateLimiterOptions.Window];ReturnValue;value;dfc-generated | -| System.Threading.RateLimiting;FixedWindowRateLimiter;get_ReplenishmentPeriod;();Argument[this];ReturnValue;taint;df-generated | -| System.Threading.RateLimiting;FixedWindowRateLimiter;get_ReplenishmentPeriod;();Argument[this];ReturnValue;taint;dfc-generated | | System.Threading.RateLimiting;MetadataName;MetadataName;(System.String);Argument[0];Argument[this].SyntheticField[System.Threading.RateLimiting.MetadataName`1._name];value;dfc-generated | | System.Threading.RateLimiting;MetadataName;ToString;();Argument[this].SyntheticField[System.Threading.RateLimiting.MetadataName`1._name];ReturnValue;value;dfc-generated | | System.Threading.RateLimiting;MetadataName;get_Name;();Argument[this].SyntheticField[System.Threading.RateLimiting.MetadataName`1._name];ReturnValue;value;dfc-generated | @@ -19984,11 +17768,8 @@ summary | System.Threading.RateLimiting;RateLimitPartition;GetSlidingWindowLimiter;(TKey,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.RateLimiting;RateLimitPartition;GetTokenBucketLimiter;(TKey,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.RateLimiting;RateLimitPartition;RateLimitPartition;(TKey,System.Func);Argument[0];Argument[this].Property[System.Threading.RateLimiting.RateLimitPartition`1.PartitionKey];value;dfc-generated | -| System.Threading.RateLimiting;RateLimitPartition;RateLimitPartition;(TKey,System.Func);Argument[0];Argument[this].Property[System.Threading.RateLimiting.RateLimitPartition`1.PartitionKey];value;hq-generated | -| System.Threading.RateLimiting;RateLimitPartition;RateLimitPartition;(TKey,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading.RateLimiting;RateLimitPartition;RateLimitPartition;(TKey,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.RateLimiting;RateLimitPartition;RateLimitPartition;(TKey,System.Func);Argument[1];Argument[this].Property[System.Threading.RateLimiting.RateLimitPartition`1.Factory];value;dfc-generated | -| System.Threading.RateLimiting;RateLimitPartition;RateLimitPartition;(TKey,System.Func);Argument[1];Argument[this].Property[System.Threading.RateLimiting.RateLimitPartition`1.Factory];value;hq-generated | | System.Threading.RateLimiting;RateLimiter;AttemptAcquire;(System.Int32);Argument[this];ReturnValue;taint;df-generated | | System.Threading.RateLimiting;RateLimiter;AttemptAcquireCore;(System.Int32);Argument[this];ReturnValue;taint;df-generated | | System.Threading.RateLimiting;RateLimiter;CreateChained;(System.Threading.RateLimiting.RateLimiter[]);Argument[0].Element;ReturnValue;taint;df-generated | @@ -20002,10 +17783,7 @@ summary | System.Threading.RateLimiting;TokenBucketRateLimiter;AttemptAcquireCore;(System.Int32);Argument[this];ReturnValue;taint;df-generated | | System.Threading.RateLimiting;TokenBucketRateLimiter;TokenBucketRateLimiter;(System.Threading.RateLimiting.TokenBucketRateLimiterOptions);Argument[0].Property[System.Threading.RateLimiting.TokenBucketRateLimiterOptions.ReplenishmentPeriod];Argument[this].SyntheticField[System.Threading.RateLimiting.TokenBucketRateLimiter._options].Property[System.Threading.RateLimiting.TokenBucketRateLimiterOptions.ReplenishmentPeriod];value;dfc-generated | | System.Threading.RateLimiting;TokenBucketRateLimiter;get_IdleDuration;();Argument[this];ReturnValue;taint;df-generated | -| System.Threading.RateLimiting;TokenBucketRateLimiter;get_ReplenishmentPeriod;();Argument[this].SyntheticField[System.Threading.RateLimiting.TokenBucketRateLimiter._options].Property[System.Threading.RateLimiting.TokenBucketRateLimiterOptions.ReplenishmentPeriod];ReturnValue;value;df-generated | | System.Threading.RateLimiting;TokenBucketRateLimiter;get_ReplenishmentPeriod;();Argument[this].SyntheticField[System.Threading.RateLimiting.TokenBucketRateLimiter._options].Property[System.Threading.RateLimiting.TokenBucketRateLimiterOptions.ReplenishmentPeriod];ReturnValue;value;dfc-generated | -| System.Threading.RateLimiting;TokenBucketRateLimiter;get_ReplenishmentPeriod;();Argument[this];ReturnValue;taint;df-generated | -| System.Threading.RateLimiting;TokenBucketRateLimiter;get_ReplenishmentPeriod;();Argument[this];ReturnValue;taint;dfc-generated | | System.Threading.Tasks.Dataflow;ActionBlock;ActionBlock;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks.Dataflow;ActionBlock;ActionBlock;(System.Action,System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks.Dataflow;ActionBlock;ActionBlock;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | @@ -20138,12 +17916,9 @@ summary | System.Threading.Tasks.Dataflow;WriteOnceBlock;OfferMessage;(System.Threading.Tasks.Dataflow.DataflowMessageHeader,T,System.Threading.Tasks.Dataflow.ISourceBlock,System.Boolean);Argument[1];Argument[this].SyntheticField[System.Threading.Tasks.Dataflow.WriteOnceBlock`1._value];value;dfc-generated | | System.Threading.Tasks.Dataflow;WriteOnceBlock;ReleaseReservation;(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock);Argument[this];Argument[1];taint;df-generated | | System.Threading.Tasks.Dataflow;WriteOnceBlock;ToString;();Argument[this];ReturnValue;taint;df-generated | -| System.Threading.Tasks.Dataflow;WriteOnceBlock;TryReceive;(System.Predicate,T);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks.Dataflow;WriteOnceBlock;TryReceive;(System.Predicate,T);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks.Dataflow;WriteOnceBlock;TryReceive;(System.Predicate,T);Argument[this].SyntheticField[System.Threading.Tasks.Dataflow.WriteOnceBlock`1._value];Argument[0].Parameter[0];value;dfc-generated | -| System.Threading.Tasks.Dataflow;WriteOnceBlock;TryReceive;(System.Predicate,T);Argument[this].SyntheticField[System.Threading.Tasks.Dataflow.WriteOnceBlock`1._value];Argument[0].Parameter[0];value;hq-generated | | System.Threading.Tasks.Dataflow;WriteOnceBlock;TryReceive;(System.Predicate,T);Argument[this].SyntheticField[System.Threading.Tasks.Dataflow.WriteOnceBlock`1._value];Argument[1];value;dfc-generated | -| System.Threading.Tasks.Dataflow;WriteOnceBlock;TryReceive;(System.Predicate,T);Argument[this].SyntheticField[System.Threading.Tasks.Dataflow.WriteOnceBlock`1._value];Argument[1];value;hq-generated | | System.Threading.Tasks.Dataflow;WriteOnceBlock;TryReceiveAll;(System.Collections.Generic.IList);Argument[this].SyntheticField[System.Threading.Tasks.Dataflow.WriteOnceBlock`1._value];Argument[0].Element;value;dfc-generated | | System.Threading.Tasks.Dataflow;WriteOnceBlock;WriteOnceBlock;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks.Dataflow;WriteOnceBlock;WriteOnceBlock;(System.Func,System.Threading.Tasks.Dataflow.DataflowBlockOptions);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | @@ -20226,15 +18001,10 @@ summary | System.Threading.Tasks;ParallelLoopState;get_LowestBreakIteration;();Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks;Task;ConfigureAwait;(System.Boolean);Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks;Task;ConfigureAwait;(System.Threading.Tasks.ConfigureAwaitOptions);Argument[this];ReturnValue;taint;df-generated | -| System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Object);Argument[1];Argument[0].Parameter[1];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Object,System.Threading.CancellationToken);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Object,System.Threading.CancellationToken);Argument[1];Argument[0].Parameter[1];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[1];Argument[0].Parameter[1];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Object,System.Threading.Tasks.TaskContinuationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Object,System.Threading.Tasks.TaskContinuationOptions);Argument[1];Argument[0].Parameter[1];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Object,System.Threading.Tasks.TaskScheduler);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Object,System.Threading.Tasks.TaskScheduler);Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Threading.CancellationToken);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | @@ -20242,30 +18012,20 @@ summary | System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Threading.Tasks.TaskContinuationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Threading.Tasks.TaskScheduler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object);Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,System.Threading.CancellationToken);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,System.Threading.CancellationToken);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,System.Threading.CancellationToken);Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,System.Threading.Tasks.TaskContinuationOptions);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,System.Threading.Tasks.TaskContinuationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,System.Threading.Tasks.TaskContinuationOptions);Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,System.Threading.Tasks.TaskScheduler);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,System.Threading.Tasks.TaskScheduler);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,System.Threading.Tasks.TaskScheduler);Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Threading.CancellationToken);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Threading.CancellationToken);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Threading.Tasks.TaskContinuationOptions);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Threading.Tasks.TaskContinuationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Threading.Tasks.TaskScheduler);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Threading.Tasks.TaskScheduler);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;Delay;(System.Int32,System.Threading.CancellationToken);Argument[1];ReturnValue;taint;df-generated | | System.Threading.Tasks;Task;Delay;(System.TimeSpan,System.Threading.CancellationToken);Argument[1];ReturnValue;taint;df-generated | | System.Threading.Tasks;Task;Delay;(System.TimeSpan,System.TimeProvider,System.Threading.CancellationToken);Argument[2];ReturnValue;taint;df-generated | @@ -20277,24 +18037,16 @@ summary | System.Threading.Tasks;Task;Run;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;Task;Run;(System.Func,System.Threading.CancellationToken);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;Task;Run;(System.Func>);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;Run;(System.Func>);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;Run;(System.Func>,System.Threading.CancellationToken);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;Run;(System.Func>,System.Threading.CancellationToken);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;Run;(System.Func);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;Run;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;Run;(System.Func,System.Threading.CancellationToken);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;Run;(System.Func,System.Threading.CancellationToken);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;Task;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;Task;Task;(System.Action,System.Threading.CancellationToken);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;Task;Task;(System.Action,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;Task;Task;(System.Action,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading.Tasks;Task;Task;(System.Action,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;Task;(System.Action,System.Object);Argument[1];Argument[0].Parameter[0];value;manual | -| System.Threading.Tasks;Task;Task;(System.Action,System.Object,System.Threading.CancellationToken);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;Task;(System.Action,System.Object,System.Threading.CancellationToken);Argument[1];Argument[0].Parameter[0];value;manual | -| System.Threading.Tasks;Task;Task;(System.Action,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;Task;(System.Action,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[0].Parameter[0];value;manual | -| System.Threading.Tasks;Task;Task;(System.Action,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;Task;(System.Action,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task;WaitAsync;(System.Threading.CancellationToken);Argument[0];ReturnValue;taint;df-generated | | System.Threading.Tasks;Task;WaitAsync;(System.Threading.CancellationToken);Argument[this];ReturnValue;value;df-generated | @@ -20318,94 +18070,63 @@ summary | System.Threading.Tasks;Task;WhenAny;(System.Threading.Tasks.Task,System.Threading.Tasks.Task);Argument[1].Element.Property[System.Threading.Tasks.Task`1.Result];ReturnValue.Property[System.Threading.Tasks.Task`1.Result].Element;value;manual | | System.Threading.Tasks;Task;WhenAny;(System.Threading.Tasks.Task[]);Argument[0].Element.Property[System.Threading.Tasks.Task`1.Result];ReturnValue.Property[System.Threading.Tasks.Task`1.Result].Element;value;manual | | System.Threading.Tasks;Task;WhenEach;(System.ReadOnlySpan);Argument[0].Element;ReturnValue.Element;value;dfc-generated | -| System.Threading.Tasks;Task;get_AsyncState;();Argument[this].SyntheticField[System.Threading.Tasks.Task.m_stateObject];ReturnValue;value;df-generated | | System.Threading.Tasks;Task;get_AsyncState;();Argument[this].SyntheticField[System.Threading.Tasks.Task.m_stateObject];ReturnValue;value;dfc-generated | -| System.Threading.Tasks;Task;get_AsyncState;();Argument[this];ReturnValue;taint;df-generated | -| System.Threading.Tasks;Task;get_AsyncState;();Argument[this];ReturnValue;taint;dfc-generated | | System.Threading.Tasks;Task;get_AsyncWaitHandle;();Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks;Task;ConfigureAwait;(System.Boolean);Argument[this];ReturnValue.SyntheticField[m_configuredTaskAwaiter].SyntheticField[m_task_configured_task_awaitable];value;manual | | System.Threading.Tasks;Task;ConfigureAwait;(System.Threading.Tasks.ConfigureAwaitOptions);Argument[this];ReturnValue;taint;df-generated | -| System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Object>,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Object>,System.Object);Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Object>,System.Object);Argument[this];Argument[0].Parameter[0];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Object>,System.Object,System.Threading.CancellationToken);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Object>,System.Object,System.Threading.CancellationToken);Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Object>,System.Object,System.Threading.CancellationToken);Argument[this];Argument[0].Parameter[0];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Object>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Object>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Object>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[this];Argument[0].Parameter[0];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Object>,System.Object,System.Threading.Tasks.TaskContinuationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Object>,System.Object,System.Threading.Tasks.TaskContinuationOptions);Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Object>,System.Object,System.Threading.Tasks.TaskContinuationOptions);Argument[this];Argument[0].Parameter[0];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Object>,System.Object,System.Threading.Tasks.TaskScheduler);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Object>,System.Object,System.Threading.Tasks.TaskScheduler);Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Object>,System.Object,System.Threading.Tasks.TaskScheduler);Argument[this];Argument[0].Parameter[0];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Action>);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Action>);Argument[this];Argument[0].Parameter[0];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Action>,System.Threading.CancellationToken);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Action>,System.Threading.CancellationToken);Argument[this];Argument[0].Parameter[0];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Action>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Action>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[this];Argument[0].Parameter[0];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Action>,System.Threading.Tasks.TaskContinuationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Action>,System.Threading.Tasks.TaskContinuationOptions);Argument[this];Argument[0].Parameter[0];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Action>,System.Threading.Tasks.TaskScheduler);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Action>,System.Threading.Tasks.TaskScheduler);Argument[this];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,TNewResult>,System.Object);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,TNewResult>,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,TNewResult>,System.Object);Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,TNewResult>,System.Object);Argument[this];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.CancellationToken);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.CancellationToken);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.CancellationToken);Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.CancellationToken);Argument[this];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[this];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.Tasks.TaskContinuationOptions);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.Tasks.TaskContinuationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.Tasks.TaskContinuationOptions);Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.Tasks.TaskContinuationOptions);Argument[this];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.Tasks.TaskScheduler);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.Tasks.TaskScheduler);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.Tasks.TaskScheduler);Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.Tasks.TaskScheduler);Argument[this];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,TNewResult>);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Func,TNewResult>);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,TNewResult>);Argument[this];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,TNewResult>,System.Threading.CancellationToken);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Func,TNewResult>,System.Threading.CancellationToken);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,TNewResult>,System.Threading.CancellationToken);Argument[this];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,TNewResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Func,TNewResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,TNewResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[this];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,TNewResult>,System.Threading.Tasks.TaskContinuationOptions);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Func,TNewResult>,System.Threading.Tasks.TaskContinuationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,TNewResult>,System.Threading.Tasks.TaskContinuationOptions);Argument[this];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,TNewResult>,System.Threading.Tasks.TaskScheduler);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Func,TNewResult>,System.Threading.Tasks.TaskScheduler);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,TNewResult>,System.Threading.Tasks.TaskScheduler);Argument[this];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task;GetAwaiter;();Argument[this];ReturnValue.SyntheticField[m_task_task_awaiter];value;manual | | System.Threading.Tasks;Task;Task;(System.Func,System.Object);Argument[0].ReturnValue;Argument[this].Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;Task;(System.Func,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;Task;(System.Func,System.Object);Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task;Task;(System.Func,System.Object,System.Threading.CancellationToken);Argument[0].ReturnValue;Argument[this].Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;Task;(System.Func,System.Object,System.Threading.CancellationToken);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;Task;(System.Func,System.Object,System.Threading.CancellationToken);Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task;Task;(System.Func,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[this].Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;Task;(System.Func,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;Task;(System.Func,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task;Task;(System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[this].Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;Task;(System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;Task;(System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task;Task;(System.Func);Argument[0].ReturnValue;Argument[this].Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;Task;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;Task;(System.Func,System.Threading.CancellationToken);Argument[0].ReturnValue;Argument[this].Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;Task;(System.Func,System.Threading.CancellationToken);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;Task;(System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[this].Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;Task;(System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;Task;(System.Func,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[this].Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;Task;(System.Func,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;WaitAsync;(System.Threading.CancellationToken);Argument[this];ReturnValue;value;df-generated | | System.Threading.Tasks;Task;WaitAsync;(System.TimeSpan);Argument[this];ReturnValue;value;df-generated | | System.Threading.Tasks;Task;WaitAsync;(System.TimeSpan,System.Threading.CancellationToken);Argument[this];ReturnValue;value;df-generated | @@ -20434,243 +18155,131 @@ summary | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Action,System.Threading.Tasks.TaskContinuationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func[],TResult>);Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func[],TResult>);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func[],TResult>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.CancellationToken);Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.CancellationToken);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.Tasks.TaskContinuationOptions);Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.Tasks.TaskContinuationOptions);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.Tasks.TaskContinuationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Action[]>);Argument[0];Argument[1].Parameter[0];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Action[]>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Action[]>,System.Threading.CancellationToken);Argument[0];Argument[1].Parameter[0];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Action[]>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Action[]>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[0];Argument[1].Parameter[0];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Action[]>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Action[]>,System.Threading.Tasks.TaskContinuationOptions);Argument[0];Argument[1].Parameter[0];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Action[]>,System.Threading.Tasks.TaskContinuationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func,System.Threading.Tasks.TaskContinuationOptions);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func,System.Threading.Tasks.TaskContinuationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Action,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Action,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Action,System.Threading.Tasks.TaskContinuationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,TResult>);Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,TResult>);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,TResult>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.CancellationToken);Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.CancellationToken);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.Tasks.TaskContinuationOptions);Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.Tasks.TaskContinuationOptions);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.Tasks.TaskContinuationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Action>);Argument[0];Argument[1].Parameter[0];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Action>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Action>,System.Threading.CancellationToken);Argument[0];Argument[1].Parameter[0];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Action>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Action>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[0];Argument[1].Parameter[0];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Action>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Action>,System.Threading.Tasks.TaskContinuationOptions);Argument[0];Argument[1].Parameter[0];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Action>,System.Threading.Tasks.TaskContinuationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,System.Threading.Tasks.TaskContinuationOptions);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,System.Threading.Tasks.TaskContinuationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,System.Object);Argument[0].ReturnValue;Argument[1].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,System.Object);Argument[0].ReturnValue;Argument[1].Parameter[0];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,System.Object);Argument[2];Argument[0].Parameter[1];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,System.Object);Argument[2];Argument[0].Parameter[1];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[1].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[1].Parameter[0];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[2];Argument[0].Parameter[1];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[2];Argument[0].Parameter[1];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.IAsyncResult,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.IAsyncResult,System.Action,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.IAsyncResult,System.Action,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[0].ReturnValue;Argument[1].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[0].ReturnValue;Argument[1].Parameter[0];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[2];Argument[0].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[2];Argument[0].Parameter[0];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[3];Argument[0].Parameter[1];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[3];Argument[0].Parameter[1];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[4];Argument[0].Parameter[2];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[4];Argument[0].Parameter[2];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[5];Argument[0].Parameter[4];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[5];Argument[0].Parameter[4];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[1].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[1].Parameter[0];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[2];Argument[0].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[2];Argument[0].Parameter[0];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[3];Argument[0].Parameter[1];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[3];Argument[0].Parameter[1];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[4];Argument[0].Parameter[2];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[4];Argument[0].Parameter[2];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[5];Argument[0].Parameter[4];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[5];Argument[0].Parameter[4];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object);Argument[0].ReturnValue;Argument[1].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object);Argument[0].ReturnValue;Argument[1].Parameter[0];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object);Argument[2];Argument[0].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object);Argument[2];Argument[0].Parameter[0];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object);Argument[3];Argument[0].Parameter[1];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object);Argument[3];Argument[0].Parameter[1];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object);Argument[4];Argument[0].Parameter[2];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object);Argument[4];Argument[0].Parameter[2];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object);Argument[5];Argument[0].Parameter[4];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object);Argument[5];Argument[0].Parameter[4];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[1].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[1].Parameter[0];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[2];Argument[0].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[2];Argument[0].Parameter[0];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[3];Argument[0].Parameter[1];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[3];Argument[0].Parameter[1];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[4];Argument[0].Parameter[2];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[4];Argument[0].Parameter[2];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[5];Argument[0].Parameter[4];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[5];Argument[0].Parameter[4];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object);Argument[0].ReturnValue;Argument[1].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object);Argument[0].ReturnValue;Argument[1].Parameter[0];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object);Argument[2];Argument[0].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object);Argument[2];Argument[0].Parameter[0];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object);Argument[3];Argument[0].Parameter[1];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object);Argument[3];Argument[0].Parameter[1];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object);Argument[4];Argument[0].Parameter[3];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object);Argument[4];Argument[0].Parameter[3];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[1].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[1].Parameter[0];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[2];Argument[0].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[2];Argument[0].Parameter[0];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[3];Argument[0].Parameter[1];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[3];Argument[0].Parameter[1];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[4];Argument[0].Parameter[3];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[4];Argument[0].Parameter[3];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,System.Object);Argument[0].ReturnValue;Argument[1].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,System.Object);Argument[0].ReturnValue;Argument[1].Parameter[0];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,System.Object);Argument[2];Argument[0].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,System.Object);Argument[2];Argument[0].Parameter[0];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,System.Object);Argument[3];Argument[0].Parameter[1];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,System.Object);Argument[3];Argument[0].Parameter[1];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,System.Object);Argument[4];Argument[0].Parameter[3];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,System.Object);Argument[4];Argument[0].Parameter[3];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[1].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[1].Parameter[0];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[2];Argument[0].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[2];Argument[0].Parameter[0];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[3];Argument[0].Parameter[1];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[3];Argument[0].Parameter[1];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[4];Argument[0].Parameter[3];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[4];Argument[0].Parameter[3];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object);Argument[0].ReturnValue;Argument[1].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object);Argument[0].ReturnValue;Argument[1].Parameter[0];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object);Argument[2];Argument[0].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object);Argument[2];Argument[0].Parameter[0];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object);Argument[3];Argument[0].Parameter[2];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object);Argument[3];Argument[0].Parameter[2];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[1].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[1].Parameter[0];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[2];Argument[0].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[2];Argument[0].Parameter[0];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[3];Argument[0].Parameter[2];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[3];Argument[0].Parameter[2];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,System.Object);Argument[0].ReturnValue;Argument[1].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,System.Object);Argument[0].ReturnValue;Argument[1].Parameter[0];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,System.Object);Argument[2];Argument[0].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,System.Object);Argument[2];Argument[0].Parameter[0];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,System.Object);Argument[3];Argument[0].Parameter[2];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,System.Object);Argument[3];Argument[0].Parameter[2];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[1].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[1].Parameter[0];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[2];Argument[0].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[2];Argument[0].Parameter[0];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[3];Argument[0].Parameter[2];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[3];Argument[0].Parameter[2];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object);Argument[0].ReturnValue;Argument[1].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object);Argument[0].ReturnValue;Argument[1].Parameter[0];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object);Argument[2];Argument[0].Parameter[1];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object);Argument[2];Argument[0].Parameter[1];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[1].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[1].Parameter[0];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[2];Argument[0].Parameter[1];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[2];Argument[0].Parameter[1];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.IAsyncResult,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.IAsyncResult,System.Func,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.IAsyncResult,System.Func,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | @@ -20678,189 +18287,109 @@ summary | System.Threading.Tasks;TaskFactory;StartNew;(System.Action,System.Threading.CancellationToken);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;StartNew;(System.Action,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;StartNew;(System.Action,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading.Tasks;TaskFactory;StartNew;(System.Action,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;StartNew;(System.Action,System.Object);Argument[1];Argument[0].Parameter[0];value;manual | -| System.Threading.Tasks;TaskFactory;StartNew;(System.Action,System.Object,System.Threading.CancellationToken);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;StartNew;(System.Action,System.Object,System.Threading.CancellationToken);Argument[1];Argument[0].Parameter[0];value;manual | -| System.Threading.Tasks;TaskFactory;StartNew;(System.Action,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;StartNew;(System.Action,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);Argument[1];Argument[0].Parameter[0];value;manual | -| System.Threading.Tasks;TaskFactory;StartNew;(System.Action,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;StartNew;(System.Action,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Object);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Object);Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Object,System.Threading.CancellationToken);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Object,System.Threading.CancellationToken);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Object,System.Threading.CancellationToken);Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;StartNew;(System.Func);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;StartNew;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Threading.CancellationToken);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Threading.CancellationToken);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;TaskFactory;(System.Threading.CancellationToken);Argument[0];Argument[this].SyntheticField[System.Threading.Tasks.TaskFactory.m_defaultCancellationToken];value;dfc-generated | | System.Threading.Tasks;TaskFactory;TaskFactory;(System.Threading.Tasks.TaskScheduler);Argument[0];Argument[this].SyntheticField[System.Threading.Tasks.TaskFactory.m_defaultScheduler];value;dfc-generated | | System.Threading.Tasks;TaskFactory;get_CancellationToken;();Argument[this].SyntheticField[System.Threading.Tasks.TaskFactory.m_defaultCancellationToken];ReturnValue;value;dfc-generated | | System.Threading.Tasks;TaskFactory;get_Scheduler;();Argument[this].SyntheticField[System.Threading.Tasks.TaskFactory.m_defaultScheduler];ReturnValue;value;dfc-generated | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func,System.Threading.Tasks.TaskContinuationOptions);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func,System.Threading.Tasks.TaskContinuationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func[],TResult>);Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func[],TResult>);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func[],TResult>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.CancellationToken);Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.CancellationToken);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.Tasks.TaskContinuationOptions);Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.Tasks.TaskContinuationOptions);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.Tasks.TaskContinuationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,System.Threading.Tasks.TaskContinuationOptions);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,System.Threading.Tasks.TaskContinuationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,TResult>);Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,TResult>);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,TResult>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.CancellationToken);Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.CancellationToken);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.Tasks.TaskContinuationOptions);Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.Tasks.TaskContinuationOptions);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.Tasks.TaskContinuationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object);Argument[0].ReturnValue;Argument[1].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object);Argument[0].ReturnValue;Argument[1].Parameter[0];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object);Argument[2];Argument[0].Parameter[1];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object);Argument[2];Argument[0].Parameter[1];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[1].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[1].Parameter[0];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[2];Argument[0].Parameter[1];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[2];Argument[0].Parameter[1];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.IAsyncResult,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.IAsyncResult,System.Func,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.IAsyncResult,System.Func,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[0].ReturnValue;Argument[1].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[0].ReturnValue;Argument[1].Parameter[0];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[2];Argument[0].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[2];Argument[0].Parameter[0];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[3];Argument[0].Parameter[1];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[3];Argument[0].Parameter[1];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[4];Argument[0].Parameter[2];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[4];Argument[0].Parameter[2];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[5];Argument[0].Parameter[4];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[5];Argument[0].Parameter[4];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[1].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[1].Parameter[0];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[2];Argument[0].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[2];Argument[0].Parameter[0];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[3];Argument[0].Parameter[1];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[3];Argument[0].Parameter[1];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[4];Argument[0].Parameter[2];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[4];Argument[0].Parameter[2];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[5];Argument[0].Parameter[4];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[5];Argument[0].Parameter[4];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object);Argument[0].ReturnValue;Argument[1].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object);Argument[0].ReturnValue;Argument[1].Parameter[0];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object);Argument[2];Argument[0].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object);Argument[2];Argument[0].Parameter[0];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object);Argument[3];Argument[0].Parameter[1];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object);Argument[3];Argument[0].Parameter[1];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object);Argument[4];Argument[0].Parameter[3];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object);Argument[4];Argument[0].Parameter[3];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[1].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[1].Parameter[0];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[2];Argument[0].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[2];Argument[0].Parameter[0];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[3];Argument[0].Parameter[1];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[3];Argument[0].Parameter[1];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[4];Argument[0].Parameter[3];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[4];Argument[0].Parameter[3];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object);Argument[0].ReturnValue;Argument[1].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object);Argument[0].ReturnValue;Argument[1].Parameter[0];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object);Argument[2];Argument[0].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object);Argument[2];Argument[0].Parameter[0];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object);Argument[3];Argument[0].Parameter[2];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object);Argument[3];Argument[0].Parameter[2];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[1].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[1].Parameter[0];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[2];Argument[0].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[2];Argument[0].Parameter[0];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[3];Argument[0].Parameter[2];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[3];Argument[0].Parameter[2];value;hq-generated | | System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Object);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Object);Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Object,System.Threading.CancellationToken);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Object,System.Threading.CancellationToken);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Object,System.Threading.CancellationToken);Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;StartNew;(System.Func);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;StartNew;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Threading.CancellationToken);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Threading.CancellationToken);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;TaskFactory;(System.Threading.CancellationToken);Argument[0];Argument[this].SyntheticField[System.Threading.Tasks.TaskFactory`1.m_defaultCancellationToken];value;dfc-generated | | System.Threading.Tasks;TaskFactory;TaskFactory;(System.Threading.Tasks.TaskScheduler);Argument[0];Argument[this].SyntheticField[System.Threading.Tasks.TaskFactory`1.m_defaultScheduler];value;dfc-generated | | System.Threading.Tasks;TaskFactory;get_CancellationToken;();Argument[this].SyntheticField[System.Threading.Tasks.TaskFactory`1.m_defaultCancellationToken];ReturnValue;value;dfc-generated | @@ -20869,8 +18398,6 @@ summary | System.Threading.Tasks;TaskScheduler;add_UnobservedTaskException;(System.EventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskScheduler;remove_UnobservedTaskException;(System.EventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskToAsyncResult;Begin;(System.Threading.Tasks.Task,System.AsyncCallback,System.Object);Argument[0];ReturnValue.SyntheticField[System.Threading.Tasks.TaskToAsyncResult+TaskAsyncResult._task];value;dfc-generated | -| System.Threading.Tasks;TaskToAsyncResult;Begin;(System.Threading.Tasks.Task,System.AsyncCallback,System.Object);Argument[0];ReturnValue.SyntheticField[System.Threading.Tasks.TaskToAsyncResult+TaskAsyncResult._task];value;hq-generated | -| System.Threading.Tasks;TaskToAsyncResult;Begin;(System.Threading.Tasks.Task,System.AsyncCallback,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskToAsyncResult;Begin;(System.Threading.Tasks.Task,System.AsyncCallback,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;UnobservedTaskExceptionEventArgs;UnobservedTaskExceptionEventArgs;(System.AggregateException);Argument[0];Argument[this].SyntheticField[System.Threading.Tasks.UnobservedTaskExceptionEventArgs.m_exception];value;dfc-generated | | System.Threading.Tasks;UnobservedTaskExceptionEventArgs;get_Exception;();Argument[this].SyntheticField[System.Threading.Tasks.UnobservedTaskExceptionEventArgs.m_exception];ReturnValue;value;dfc-generated | @@ -20900,63 +18427,41 @@ summary | System.Threading;Barrier;Barrier;(System.Int32,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading;CancellationToken;Register;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading;CancellationToken;Register;(System.Action,System.Boolean);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading;CancellationToken;Register;(System.Action,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading;CancellationToken;Register;(System.Action,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading;CancellationToken;Register;(System.Action,System.Object);Argument[1];Argument[0].Parameter[0];value;dfc-generated | -| System.Threading;CancellationToken;Register;(System.Action,System.Object);Argument[1];Argument[0].Parameter[0];value;hq-generated | -| System.Threading;CancellationToken;Register;(System.Action,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading;CancellationToken;Register;(System.Action,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading;CancellationToken;Register;(System.Action,System.Object);Argument[1];Argument[0].Parameter[0];value;dfc-generated | -| System.Threading;CancellationToken;Register;(System.Action,System.Object);Argument[1];Argument[0].Parameter[0];value;hq-generated | -| System.Threading;CancellationToken;Register;(System.Action,System.Object,System.Boolean);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading;CancellationToken;Register;(System.Action,System.Object,System.Boolean);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading;CancellationToken;Register;(System.Action,System.Object,System.Boolean);Argument[1];Argument[0].Parameter[0];value;dfc-generated | -| System.Threading;CancellationToken;Register;(System.Action,System.Object,System.Boolean);Argument[1];Argument[0].Parameter[0];value;hq-generated | -| System.Threading;CancellationToken;UnsafeRegister;(System.Action,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading;CancellationToken;UnsafeRegister;(System.Action,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading;CancellationToken;UnsafeRegister;(System.Action,System.Object);Argument[1];Argument[0].Parameter[0];value;dfc-generated | -| System.Threading;CancellationToken;UnsafeRegister;(System.Action,System.Object);Argument[1];Argument[0].Parameter[0];value;hq-generated | -| System.Threading;CancellationToken;UnsafeRegister;(System.Action,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading;CancellationToken;UnsafeRegister;(System.Action,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading;CancellationToken;UnsafeRegister;(System.Action,System.Object);Argument[1];Argument[0].Parameter[0];value;dfc-generated | -| System.Threading;CancellationToken;UnsafeRegister;(System.Action,System.Object);Argument[1];Argument[0].Parameter[0];value;hq-generated | | System.Threading;CancellationToken;get_WaitHandle;();Argument[this];ReturnValue;taint;df-generated | | System.Threading;CancellationTokenRegistration;DisposeAsync;();Argument[this];ReturnValue;taint;df-generated | | System.Threading;CancellationTokenSource;CancelAsync;();Argument[this];ReturnValue.SyntheticField[System.Threading.Tasks.Task.m_stateObject];value;dfc-generated | | System.Threading;CancellationTokenSource;get_Token;();Argument[this];ReturnValue;taint;df-generated | | System.Threading;CompressedStack;CreateCopy;();Argument[this];ReturnValue;value;dfc-generated | | System.Threading;CompressedStack;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | -| System.Threading;CompressedStack;Run;(System.Threading.CompressedStack,System.Threading.ContextCallback,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading;CompressedStack;Run;(System.Threading.CompressedStack,System.Threading.ContextCallback,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading;CompressedStack;Run;(System.Threading.CompressedStack,System.Threading.ContextCallback,System.Object);Argument[2];Argument[1].Parameter[0];value;dfc-generated | -| System.Threading;CompressedStack;Run;(System.Threading.CompressedStack,System.Threading.ContextCallback,System.Object);Argument[2];Argument[1].Parameter[0];value;hq-generated | | System.Threading;ContextCallback;BeginInvoke;(System.Object,System.AsyncCallback,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading;CountdownEvent;get_WaitHandle;();Argument[this];ReturnValue;taint;df-generated | | System.Threading;ExecutionContext;CreateCopy;();Argument[this];ReturnValue;value;dfc-generated | | System.Threading;ExecutionContext;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | -| System.Threading;ExecutionContext;Run;(System.Threading.ExecutionContext,System.Threading.ContextCallback,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading;ExecutionContext;Run;(System.Threading.ExecutionContext,System.Threading.ContextCallback,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading;ExecutionContext;Run;(System.Threading.ExecutionContext,System.Threading.ContextCallback,System.Object);Argument[2];Argument[1].Parameter[0];value;dfc-generated | -| System.Threading;ExecutionContext;Run;(System.Threading.ExecutionContext,System.Threading.ContextCallback,System.Object);Argument[2];Argument[1].Parameter[0];value;hq-generated | | System.Threading;HostExecutionContextManager;SetHostExecutionContext;(System.Threading.HostExecutionContext);Argument[0];ReturnValue;taint;df-generated | | System.Threading;IOCompletionCallback;BeginInvoke;(System.UInt32,System.UInt32,System.Threading.NativeOverlapped*,System.AsyncCallback,System.Object);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Threading;LazyInitializer;EnsureInitialized;(T);Argument[0];ReturnValue;value;dfc-generated | | System.Threading;LazyInitializer;EnsureInitialized;(T,System.Boolean,System.Object);Argument[0];ReturnValue;value;dfc-generated | | System.Threading;LazyInitializer;EnsureInitialized;(T,System.Boolean,System.Object,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| System.Threading;LazyInitializer;EnsureInitialized;(T,System.Boolean,System.Object,System.Func);Argument[0];ReturnValue;value;hq-generated | | System.Threading;LazyInitializer;EnsureInitialized;(T,System.Boolean,System.Object,System.Func);Argument[3].ReturnValue;Argument[0];value;dfc-generated | -| System.Threading;LazyInitializer;EnsureInitialized;(T,System.Boolean,System.Object,System.Func);Argument[3].ReturnValue;Argument[0];value;hq-generated | | System.Threading;LazyInitializer;EnsureInitialized;(T,System.Boolean,System.Object,System.Func);Argument[3].ReturnValue;ReturnValue;value;dfc-generated | -| System.Threading;LazyInitializer;EnsureInitialized;(T,System.Boolean,System.Object,System.Func);Argument[3].ReturnValue;ReturnValue;value;hq-generated | -| System.Threading;LazyInitializer;EnsureInitialized;(T,System.Boolean,System.Object,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Threading;LazyInitializer;EnsureInitialized;(T,System.Boolean,System.Object,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Threading;LazyInitializer;EnsureInitialized;(T,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| System.Threading;LazyInitializer;EnsureInitialized;(T,System.Func);Argument[0];ReturnValue;value;hq-generated | -| System.Threading;LazyInitializer;EnsureInitialized;(T,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading;LazyInitializer;EnsureInitialized;(T,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading;LazyInitializer;EnsureInitialized;(T,System.Object,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| System.Threading;LazyInitializer;EnsureInitialized;(T,System.Object,System.Func);Argument[0];ReturnValue;value;hq-generated | -| System.Threading;LazyInitializer;EnsureInitialized;(T,System.Object,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Threading;LazyInitializer;EnsureInitialized;(T,System.Object,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Threading;Lock;EnterScope;();Argument[this];ReturnValue;taint;df-generated | | System.Threading;ManualResetEventSlim;get_WaitHandle;();Argument[this];ReturnValue;taint;df-generated | @@ -20985,10 +18490,8 @@ summary | System.Threading;SpinWait;SpinUntil;(System.Func,System.Int32);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading;SpinWait;SpinUntil;(System.Func,System.TimeSpan);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading;SynchronizationContext;Post;(System.Threading.SendOrPostCallback,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading;SynchronizationContext;Send;(System.Threading.SendOrPostCallback,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading;SynchronizationContext;Send;(System.Threading.SendOrPostCallback,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading;SynchronizationContext;Send;(System.Threading.SendOrPostCallback,System.Object);Argument[1];Argument[0].Parameter[0];value;dfc-generated | -| System.Threading;SynchronizationContext;Send;(System.Threading.SendOrPostCallback,System.Object);Argument[1];Argument[0].Parameter[0];value;hq-generated | | System.Threading;Thread;GetData;(System.LocalDataStoreSlot);Argument[0].SyntheticField[System.LocalDataStoreSlot.Data].Property[System.Threading.ThreadLocal`1.Value];ReturnValue;value;dfc-generated | | System.Threading;Thread;SetData;(System.LocalDataStoreSlot,System.Object);Argument[1];Argument[0].SyntheticField[System.LocalDataStoreSlot.Data].Property[System.Threading.ThreadLocal`1.Value];value;dfc-generated | | System.Threading;Thread;Thread;(System.Threading.ParameterizedThreadStart);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | @@ -21033,19 +18536,12 @@ summary | System.Timers;ElapsedEventHandler;BeginInvoke;(System.Object,System.Timers.ElapsedEventArgs,System.AsyncCallback,System.Object);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Timers;Timer;add_Elapsed;(System.Timers.ElapsedEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Timers;Timer;remove_Elapsed;(System.Timers.ElapsedEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Timers;TimersDescriptionAttribute;get_Description;();Argument[this].Property[System.ComponentModel.DescriptionAttribute.DescriptionValue];ReturnValue;value;dfc-generated | | System.Timers;TimersDescriptionAttribute;get_Description;();Argument[this].Property[System.ComponentModel.DescriptionAttribute.Description];Argument[this].Property[System.ComponentModel.DescriptionAttribute.DescriptionValue];taint;dfc-generated | | System.Timers;TimersDescriptionAttribute;get_Description;();Argument[this].Property[System.ComponentModel.DescriptionAttribute.Description];ReturnValue;value;dfc-generated | -| System.Transactions;CommittableTransaction;BeginCommit;(System.AsyncCallback,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Transactions;CommittableTransaction;BeginCommit;(System.AsyncCallback,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Transactions;CommittableTransaction;BeginCommit;(System.AsyncCallback,System.Object);Argument[1];ReturnValue.SyntheticField[System.Transactions.Transaction._internalTransaction].SyntheticField[System.Transactions.InternalTransaction._asyncState];value;dfc-generated | -| System.Transactions;CommittableTransaction;BeginCommit;(System.AsyncCallback,System.Object);Argument[1];ReturnValue.SyntheticField[System.Transactions.Transaction._internalTransaction].SyntheticField[System.Transactions.InternalTransaction._asyncState];value;hq-generated | | System.Transactions;CommittableTransaction;BeginCommit;(System.AsyncCallback,System.Object);Argument[this];ReturnValue;value;dfc-generated | -| System.Transactions;CommittableTransaction;BeginCommit;(System.AsyncCallback,System.Object);Argument[this];ReturnValue;value;hq-generated | -| System.Transactions;CommittableTransaction;get_AsyncState;();Argument[this].SyntheticField[System.Transactions.Transaction._internalTransaction].SyntheticField[System.Transactions.InternalTransaction._asyncState];ReturnValue;value;df-generated | | System.Transactions;CommittableTransaction;get_AsyncState;();Argument[this].SyntheticField[System.Transactions.Transaction._internalTransaction].SyntheticField[System.Transactions.InternalTransaction._asyncState];ReturnValue;value;dfc-generated | -| System.Transactions;CommittableTransaction;get_AsyncState;();Argument[this];ReturnValue;taint;df-generated | -| System.Transactions;CommittableTransaction;get_AsyncState;();Argument[this];ReturnValue;taint;dfc-generated | | System.Transactions;CommittableTransaction;get_AsyncWaitHandle;();Argument[this];ReturnValue;taint;df-generated | | System.Transactions;DistributedTransactionPermission;Copy;();Argument[this];ReturnValue;value;dfc-generated | | System.Transactions;DistributedTransactionPermission;Intersect;(System.Security.IPermission);Argument[0];ReturnValue;value;dfc-generated | @@ -21095,6 +18591,10 @@ summary | System.Web;HttpUtility;JavaScriptStringEncode;(System.String,System.Boolean);Argument[0];ReturnValue;taint;manual | | System.Web;HttpUtility;ParseQueryString;(System.String);Argument[0];ReturnValue;taint;manual | | System.Web;HttpUtility;ParseQueryString;(System.String,System.Text.Encoding);Argument[0];ReturnValue;taint;manual | +| System.Web;HttpUtility;UrlDecode;(System.Byte[],System.Int32,System.Int32,System.Text.Encoding);Argument[0];ReturnValue;taint;manual | +| System.Web;HttpUtility;UrlDecode;(System.Byte[],System.Text.Encoding);Argument[0];ReturnValue;taint;manual | +| System.Web;HttpUtility;UrlDecode;(System.String);Argument[0];ReturnValue;taint;manual | +| System.Web;HttpUtility;UrlDecode;(System.String,System.Text.Encoding);Argument[0];ReturnValue;taint;manual | | System.Web;HttpUtility;UrlEncode;(System.Byte[]);Argument[0];ReturnValue;taint;manual | | System.Web;HttpUtility;UrlEncode;(System.Byte[],System.Int32,System.Int32);Argument[0];ReturnValue;taint;manual | | System.Web;HttpUtility;UrlEncode;(System.String);Argument[0];ReturnValue;taint;manual | @@ -21290,13 +18790,8 @@ summary | System.Xml.Resolvers;XmlPreloadedResolver;Add;(System.Uri,System.IO.Stream);Argument[0];Argument[this];taint;df-generated | | System.Xml.Resolvers;XmlPreloadedResolver;Add;(System.Uri,System.String);Argument[0];Argument[this];taint;df-generated | | System.Xml.Resolvers;XmlPreloadedResolver;GetEntity;(System.Uri,System.String,System.Type);Argument[0].Property[System.Uri.LocalPath];ReturnValue;taint;dfc-generated | -| System.Xml.Resolvers;XmlPreloadedResolver;GetEntity;(System.Uri,System.String,System.Type);Argument[0];ReturnValue;taint;dfc-generated | -| System.Xml.Resolvers;XmlPreloadedResolver;GetEntityAsync;(System.Uri,System.String,System.Type);Argument[0].Property[System.Uri.LocalPath];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];taint;df-generated | | System.Xml.Resolvers;XmlPreloadedResolver;GetEntityAsync;(System.Uri,System.String,System.Type);Argument[0].Property[System.Uri.LocalPath];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];taint;dfc-generated | -| System.Xml.Resolvers;XmlPreloadedResolver;GetEntityAsync;(System.Uri,System.String,System.Type);Argument[0];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];taint;df-generated | | System.Xml.Resolvers;XmlPreloadedResolver;GetEntityAsync;(System.Uri,System.String,System.Type);Argument[0];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];taint;dfc-generated | -| System.Xml.Resolvers;XmlPreloadedResolver;GetEntityAsync;(System.Uri,System.String,System.Type);Argument[0];ReturnValue;taint;df-generated | -| System.Xml.Resolvers;XmlPreloadedResolver;GetEntityAsync;(System.Uri,System.String,System.Type);Argument[0];ReturnValue;taint;dfc-generated | | System.Xml.Resolvers;XmlPreloadedResolver;ResolveUri;(System.Uri,System.String);Argument[0];ReturnValue;value;dfc-generated | | System.Xml.Resolvers;XmlPreloadedResolver;ResolveUri;(System.Uri,System.String);Argument[1];ReturnValue;taint;dfc-generated | | System.Xml.Resolvers;XmlPreloadedResolver;XmlPreloadedResolver;(System.Xml.XmlResolver,System.Xml.Resolvers.XmlKnownDtds,System.Collections.Generic.IEqualityComparer);Argument[0];Argument[this];taint;df-generated | @@ -21352,7 +18847,6 @@ summary | System.Xml.Schema;XmlSchemaCollection;Add;(System.Xml.Schema.XmlSchemaCollection);Argument[0];Argument[this].Element;value;manual | | System.Xml.Schema;XmlSchemaCollection;CopyTo;(System.Array,System.Int32);Argument[this].Element;Argument[0].Element;value;manual | | System.Xml.Schema;XmlSchemaCollection;CopyTo;(System.Xml.Schema.XmlSchema[],System.Int32);Argument[this].Element;Argument[0].Element;value;manual | -| System.Xml.Schema;XmlSchemaCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Xml.Schema;XmlSchemaCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Xml.Schema.XmlSchemaCollectionEnumerator.Current];value;manual | | System.Xml.Schema;XmlSchemaCollection;XmlSchemaCollection;(System.Xml.XmlNameTable);Argument[0];Argument[this].SyntheticField[System.Xml.Schema.XmlSchemaCollection._nameTable];value;dfc-generated | | System.Xml.Schema;XmlSchemaCollection;add_ValidationEventHandler;(System.Xml.Schema.ValidationEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | @@ -21360,10 +18854,7 @@ summary | System.Xml.Schema;XmlSchemaCollection;get_NameTable;();Argument[this].SyntheticField[System.Xml.Schema.XmlSchemaCollection._nameTable];ReturnValue;value;dfc-generated | | System.Xml.Schema;XmlSchemaCollection;get_SyncRoot;();Argument[this];ReturnValue;value;dfc-generated | | System.Xml.Schema;XmlSchemaCollection;remove_ValidationEventHandler;(System.Xml.Schema.ValidationEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Xml.Schema;XmlSchemaCollectionEnumerator;get_Current;();Argument[this].Property[System.Xml.Schema.XmlSchemaCollectionEnumerator.Current];ReturnValue;value;df-generated | | System.Xml.Schema;XmlSchemaCollectionEnumerator;get_Current;();Argument[this].Property[System.Xml.Schema.XmlSchemaCollectionEnumerator.Current];ReturnValue;value;dfc-generated | -| System.Xml.Schema;XmlSchemaCollectionEnumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Xml.Schema;XmlSchemaCollectionEnumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Xml.Schema;XmlSchemaComplexContentExtension;get_Attributes;();Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaComplexContentRestriction;get_Attributes;();Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaComplexType;get_AttributeWildcard;();Argument[this];ReturnValue;taint;df-generated | @@ -21386,7 +18877,6 @@ summary | System.Xml.Schema;XmlSchemaException;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | | System.Xml.Schema;XmlSchemaException;XmlSchemaException;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[0];Argument[this];taint;df-generated | | System.Xml.Schema;XmlSchemaException;get_Message;();Argument[this].Property[System.Exception.Message];ReturnValue;value;dfc-generated | -| System.Xml.Schema;XmlSchemaException;get_Message;();Argument[this].SyntheticField[System.Exception._message];ReturnValue;value;dfc-generated | | System.Xml.Schema;XmlSchemaException;get_SourceSchemaObject;();Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaException;get_SourceUri;();Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaGroup;get_QualifiedName;();Argument[this];ReturnValue;taint;df-generated | @@ -21594,10 +19084,7 @@ summary | System.Xml.Serialization;XmlReflectionImporter;XmlReflectionImporter;(System.Xml.Serialization.XmlAttributeOverrides,System.String);Argument[1];Argument[this];taint;df-generated | | System.Xml.Serialization;XmlRootAttribute;XmlRootAttribute;(System.String);Argument[0];Argument[this];taint;df-generated | | System.Xml.Serialization;XmlSchemaEnumerator;XmlSchemaEnumerator;(System.Xml.Serialization.XmlSchemas);Argument[0];Argument[this].SyntheticField[System.Xml.Serialization.XmlSchemaEnumerator._list];value;dfc-generated | -| System.Xml.Serialization;XmlSchemaEnumerator;get_Current;();Argument[this].SyntheticField[System.Xml.Serialization.XmlSchemaEnumerator._list].Element;ReturnValue;value;df-generated | | System.Xml.Serialization;XmlSchemaEnumerator;get_Current;();Argument[this].SyntheticField[System.Xml.Serialization.XmlSchemaEnumerator._list].Element;ReturnValue;value;dfc-generated | -| System.Xml.Serialization;XmlSchemaEnumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Xml.Serialization;XmlSchemaEnumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Xml.Serialization;XmlSchemaExporter;ExportAnyType;(System.String);Argument[0];Argument[this];taint;df-generated | | System.Xml.Serialization;XmlSchemaExporter;ExportAnyType;(System.Xml.Serialization.XmlMembersMapping);Argument[0];Argument[this];taint;df-generated | | System.Xml.Serialization;XmlSchemaExporter;ExportMembersMapping;(System.Xml.Serialization.XmlMembersMapping);Argument[0];Argument[this];taint;df-generated | @@ -21628,23 +19115,16 @@ summary | System.Xml.Serialization;XmlSerializationFixupCallback;BeginInvoke;(System.Object,System.AsyncCallback,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Xml.Serialization;XmlSerializationReadCallback;BeginInvoke;(System.AsyncCallback,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Xml.Serialization;XmlSerializationReader+CollectionFixup;CollectionFixup;(System.Object,System.Xml.Serialization.XmlSerializationCollectionFixupCallback,System.Object);Argument[0];Argument[this].SyntheticField[System.Xml.Serialization.XmlSerializationReader+CollectionFixup._collection];value;dfc-generated | -| System.Xml.Serialization;XmlSerializationReader+CollectionFixup;CollectionFixup;(System.Object,System.Xml.Serialization.XmlSerializationCollectionFixupCallback,System.Object);Argument[0];Argument[this].SyntheticField[System.Xml.Serialization.XmlSerializationReader+CollectionFixup._collection];value;hq-generated | -| System.Xml.Serialization;XmlSerializationReader+CollectionFixup;CollectionFixup;(System.Object,System.Xml.Serialization.XmlSerializationCollectionFixupCallback,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Xml.Serialization;XmlSerializationReader+CollectionFixup;CollectionFixup;(System.Object,System.Xml.Serialization.XmlSerializationCollectionFixupCallback,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Xml.Serialization;XmlSerializationReader+CollectionFixup;CollectionFixup;(System.Object,System.Xml.Serialization.XmlSerializationCollectionFixupCallback,System.Object);Argument[1];Argument[this].SyntheticField[System.Xml.Serialization.XmlSerializationReader+CollectionFixup._callback];value;dfc-generated | -| System.Xml.Serialization;XmlSerializationReader+CollectionFixup;CollectionFixup;(System.Object,System.Xml.Serialization.XmlSerializationCollectionFixupCallback,System.Object);Argument[1];Argument[this].SyntheticField[System.Xml.Serialization.XmlSerializationReader+CollectionFixup._callback];value;hq-generated | | System.Xml.Serialization;XmlSerializationReader+CollectionFixup;CollectionFixup;(System.Object,System.Xml.Serialization.XmlSerializationCollectionFixupCallback,System.Object);Argument[2];Argument[this].SyntheticField[System.Xml.Serialization.XmlSerializationReader+CollectionFixup._collectionItems];value;dfc-generated | -| System.Xml.Serialization;XmlSerializationReader+CollectionFixup;CollectionFixup;(System.Object,System.Xml.Serialization.XmlSerializationCollectionFixupCallback,System.Object);Argument[2];Argument[this].SyntheticField[System.Xml.Serialization.XmlSerializationReader+CollectionFixup._collectionItems];value;hq-generated | | System.Xml.Serialization;XmlSerializationReader+CollectionFixup;get_Callback;();Argument[this].SyntheticField[System.Xml.Serialization.XmlSerializationReader+CollectionFixup._callback];ReturnValue;value;dfc-generated | | System.Xml.Serialization;XmlSerializationReader+CollectionFixup;get_Collection;();Argument[this].SyntheticField[System.Xml.Serialization.XmlSerializationReader+CollectionFixup._collection];ReturnValue;value;dfc-generated | | System.Xml.Serialization;XmlSerializationReader+CollectionFixup;get_CollectionItems;();Argument[this].SyntheticField[System.Xml.Serialization.XmlSerializationReader+CollectionFixup._collectionItems];ReturnValue;value;dfc-generated | | System.Xml.Serialization;XmlSerializationReader+Fixup;Fixup;(System.Object,System.Xml.Serialization.XmlSerializationFixupCallback,System.Int32);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | -| System.Xml.Serialization;XmlSerializationReader+Fixup;Fixup;(System.Object,System.Xml.Serialization.XmlSerializationFixupCallback,System.String[]);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Xml.Serialization;XmlSerializationReader+Fixup;Fixup;(System.Object,System.Xml.Serialization.XmlSerializationFixupCallback,System.String[]);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Xml.Serialization;XmlSerializationReader+Fixup;Fixup;(System.Object,System.Xml.Serialization.XmlSerializationFixupCallback,System.String[]);Argument[1];Argument[this].SyntheticField[System.Xml.Serialization.XmlSerializationReader+Fixup._callback];value;dfc-generated | -| System.Xml.Serialization;XmlSerializationReader+Fixup;Fixup;(System.Object,System.Xml.Serialization.XmlSerializationFixupCallback,System.String[]);Argument[1];Argument[this].SyntheticField[System.Xml.Serialization.XmlSerializationReader+Fixup._callback];value;hq-generated | | System.Xml.Serialization;XmlSerializationReader+Fixup;Fixup;(System.Object,System.Xml.Serialization.XmlSerializationFixupCallback,System.String[]);Argument[2];Argument[this].SyntheticField[System.Xml.Serialization.XmlSerializationReader+Fixup._ids];value;dfc-generated | -| System.Xml.Serialization;XmlSerializationReader+Fixup;Fixup;(System.Object,System.Xml.Serialization.XmlSerializationFixupCallback,System.String[]);Argument[2];Argument[this].SyntheticField[System.Xml.Serialization.XmlSerializationReader+Fixup._ids];value;hq-generated | | System.Xml.Serialization;XmlSerializationReader+Fixup;get_Callback;();Argument[this].SyntheticField[System.Xml.Serialization.XmlSerializationReader+Fixup._callback];ReturnValue;value;dfc-generated | | System.Xml.Serialization;XmlSerializationReader+Fixup;get_Ids;();Argument[this].SyntheticField[System.Xml.Serialization.XmlSerializationReader+Fixup._ids];ReturnValue;value;dfc-generated | | System.Xml.Serialization;XmlSerializationReader;AddFixup;(System.Xml.Serialization.XmlSerializationReader+CollectionFixup);Argument[0];Argument[this];taint;df-generated | @@ -21876,13 +19356,11 @@ summary | System.Xml.XPath;XPathDocument;XPathDocument;(System.Xml.XmlReader,System.Xml.XmlSpace);Argument[0];Argument[this];taint;df-generated | | System.Xml.XPath;XPathException;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this].SyntheticField[System.Xml.XPath.XPathException._args];Argument[0];taint;dfc-generated | | System.Xml.XPath;XPathException;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this].SyntheticField[System.Xml.XPath.XPathException._res];Argument[0];taint;dfc-generated | -| System.Xml.XPath;XPathException;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | | System.Xml.XPath;XPathException;XPathException;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[0];Argument[this].SyntheticField[System.Xml.XPath.XPathException._args];taint;dfc-generated | | System.Xml.XPath;XPathException;XPathException;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[0];Argument[this].SyntheticField[System.Xml.XPath.XPathException._message];taint;dfc-generated | | System.Xml.XPath;XPathException;XPathException;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[0];Argument[this].SyntheticField[System.Xml.XPath.XPathException._res];taint;dfc-generated | | System.Xml.XPath;XPathException;XPathException;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this].SyntheticField[System.Xml.XPath.XPathException._res];Argument[this].SyntheticField[System.Xml.XPath.XPathException._message];value;dfc-generated | | System.Xml.XPath;XPathException;get_Message;();Argument[this].Property[System.Exception.Message];ReturnValue;value;dfc-generated | -| System.Xml.XPath;XPathException;get_Message;();Argument[this].SyntheticField[System.Exception._message];ReturnValue;value;dfc-generated | | System.Xml.XPath;XPathException;get_Message;();Argument[this].SyntheticField[System.Xml.XPath.XPathException._message];ReturnValue;value;dfc-generated | | System.Xml.XPath;XPathExpression;Clone;();Argument[this];ReturnValue;value;dfc-generated | | System.Xml.XPath;XPathExpression;Compile;(System.String);Argument[0];ReturnValue;taint;df-generated | @@ -21914,10 +19392,7 @@ summary | System.Xml.XPath;XPathNavigator;InsertAfter;();Argument[this];ReturnValue;taint;df-generated | | System.Xml.XPath;XPathNavigator;InsertBefore;();Argument[this];ReturnValue;taint;df-generated | | System.Xml.XPath;XPathNavigator;LookupNamespace;(System.String);Argument[0];ReturnValue;value;dfc-generated | -| System.Xml.XPath;XPathNavigator;LookupPrefix;(System.String);Argument[this].Property[System.Xml.XPath.XPathNavigator.LocalName];ReturnValue;value;df-generated | | System.Xml.XPath;XPathNavigator;LookupPrefix;(System.String);Argument[this].Property[System.Xml.XPath.XPathNavigator.LocalName];ReturnValue;value;dfc-generated | -| System.Xml.XPath;XPathNavigator;LookupPrefix;(System.String);Argument[this];ReturnValue;taint;df-generated | -| System.Xml.XPath;XPathNavigator;LookupPrefix;(System.String);Argument[this];ReturnValue;taint;dfc-generated | | System.Xml.XPath;XPathNavigator;MoveTo;(System.Xml.XPath.XPathNavigator);Argument[0];Argument[this];taint;df-generated | | System.Xml.XPath;XPathNavigator;PrependChild;();Argument[this];ReturnValue;taint;df-generated | | System.Xml.XPath;XPathNavigator;ReadSubtree;();Argument[this];ReturnValue;taint;df-generated | @@ -21980,7 +19455,6 @@ summary | System.Xml.Xsl;XsltException;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | | System.Xml.Xsl;XsltException;XsltException;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[0];Argument[this];taint;df-generated | | System.Xml.Xsl;XsltException;get_Message;();Argument[this].Property[System.Exception.Message];ReturnValue;value;dfc-generated | -| System.Xml.Xsl;XsltException;get_Message;();Argument[this].SyntheticField[System.Exception._message];ReturnValue;value;dfc-generated | | System.Xml.Xsl;XsltException;get_SourceUri;();Argument[this];ReturnValue;taint;df-generated | | System.Xml.Xsl;XsltMessageEncounteredEventArgs;get_Message;();Argument[this];ReturnValue;taint;df-generated | | System.Xml.Xsl;XsltMessageEncounteredEventHandler;BeginInvoke;(System.Object,System.Xml.Xsl.XsltMessageEncounteredEventArgs,System.AsyncCallback,System.Object);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | @@ -22112,7 +19586,6 @@ summary | System.Xml;XmlDataDocument;CreateElement;(System.String,System.String,System.String);Argument[this];ReturnValue;taint;df-generated | | System.Xml;XmlDataDocument;CreateEntityReference;(System.String);Argument[0];ReturnValue;taint;df-generated | | System.Xml;XmlDataDocument;CreateNavigator;(System.Xml.XmlNode);Argument[this];ReturnValue.SyntheticField[System.Xml.DataDocumentXPathNavigator._doc];value;dfc-generated | -| System.Xml;XmlDataDocument;CreateNavigator;(System.Xml.XmlNode);Argument[this];ReturnValue.SyntheticField[System.Xml.DocumentXPathNavigator._document];value;dfc-generated | | System.Xml;XmlDataDocument;GetElementFromRow;(System.Data.DataRow);Argument[0];ReturnValue;taint;df-generated | | System.Xml;XmlDataDocument;GetElementsByTagName;(System.String);Argument[0];ReturnValue;taint;df-generated | | System.Xml;XmlDataDocument;GetRowFromElement;(System.Xml.XmlElement);Argument[0].Element;ReturnValue;taint;df-generated | @@ -22142,7 +19615,6 @@ summary | System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose);Argument[0].Element;ReturnValue;taint;manual | | System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose);Argument[3];ReturnValue;taint;manual | | System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose);Argument[5];ReturnValue;taint;manual | -| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose);Argument[6];Argument[6].Parameter[delegate-self];value;manual | | System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.Byte[],System.Int32,System.Int32,System.Xml.XmlDictionaryReaderQuotas);Argument[0].Element;ReturnValue;taint;df-manual | | System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.Byte[],System.Xml.XmlDictionaryReaderQuotas);Argument[0].Element;ReturnValue;taint;df-manual | | System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas);Argument[0];ReturnValue;taint;df-manual | @@ -22153,17 +19625,14 @@ summary | System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose);Argument[0];ReturnValue;taint;manual | | System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose);Argument[1];ReturnValue;taint;manual | | System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose);Argument[3];ReturnValue;taint;manual | -| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose);Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.IO.Stream,System.Xml.XmlDictionaryReaderQuotas);Argument[0];ReturnValue;taint;df-manual | | 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[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 | @@ -22437,7 +19906,6 @@ summary | System.Xml;XmlException;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | | System.Xml;XmlException;XmlException;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[0];Argument[this];taint;df-generated | | System.Xml;XmlException;get_Message;();Argument[this].Property[System.Exception.Message];ReturnValue;value;dfc-generated | -| System.Xml;XmlException;get_Message;();Argument[this].SyntheticField[System.Exception._message];ReturnValue;value;dfc-generated | | System.Xml;XmlException;get_SourceUri;();Argument[this];ReturnValue;taint;df-generated | | System.Xml;XmlImplementation;CreateDocument;();Argument[this];ReturnValue;taint;df-generated | | System.Xml;XmlImplementation;XmlImplementation;(System.Xml.XmlNameTable);Argument[0];Argument[this];taint;df-generated | @@ -22469,9 +19937,6 @@ summary | System.Xml;XmlNode;AppendChild;(System.Xml.XmlNode);Argument[this];Argument[0].Element;taint;df-generated | | System.Xml;XmlNode;AppendChild;(System.Xml.XmlNode);Argument[this];ReturnValue;taint;df-generated | | System.Xml;XmlNode;Clone;();Argument[this];ReturnValue;taint;df-generated | -| System.Xml;XmlNode;Clone;();Argument[this];ReturnValue;taint;dfc-generated | -| System.Xml;XmlNode;Clone;();Argument[this];ReturnValue;value;df-generated | -| System.Xml;XmlNode;Clone;();Argument[this];ReturnValue;value;dfc-generated | | System.Xml;XmlNode;CloneNode;(System.Boolean);Argument[this];ReturnValue;taint;df-generated | | System.Xml;XmlNode;CreateNavigator;();Argument[this];ReturnValue;taint;df-generated | | System.Xml;XmlNode;CreateNavigator;();Argument[this];ReturnValue;value;df-generated | @@ -22594,10 +20059,7 @@ summary | System.Xml;XmlParserContext;XmlParserContext;(System.Xml.XmlNameTable,System.Xml.XmlNamespaceManager,System.String,System.String,System.String,System.String,System.String,System.String,System.Xml.XmlSpace,System.Text.Encoding);Argument[6];Argument[this];taint;df-generated | | System.Xml;XmlParserContext;XmlParserContext;(System.Xml.XmlNameTable,System.Xml.XmlNamespaceManager,System.String,System.String,System.String,System.String,System.String,System.String,System.Xml.XmlSpace,System.Text.Encoding);Argument[7];Argument[this];taint;df-generated | | System.Xml;XmlParserContext;XmlParserContext;(System.Xml.XmlNameTable,System.Xml.XmlNamespaceManager,System.String,System.String,System.String,System.String,System.String,System.String,System.Xml.XmlSpace,System.Text.Encoding);Argument[9];Argument[this];taint;df-generated | -| System.Xml;XmlProcessingInstruction;CloneNode;(System.Boolean);Argument[this].SyntheticField[System.Xml.XmlProcessingInstruction._target];ReturnValue.SyntheticField[System.Xml.XmlProcessingInstruction._target];value;df-generated | | System.Xml;XmlProcessingInstruction;CloneNode;(System.Boolean);Argument[this].SyntheticField[System.Xml.XmlProcessingInstruction._target];ReturnValue.SyntheticField[System.Xml.XmlProcessingInstruction._target];value;dfc-generated | -| System.Xml;XmlProcessingInstruction;CloneNode;(System.Boolean);Argument[this];ReturnValue;taint;df-generated | -| System.Xml;XmlProcessingInstruction;CloneNode;(System.Boolean);Argument[this];ReturnValue;taint;dfc-generated | | System.Xml;XmlProcessingInstruction;WriteContentTo;(System.Xml.XmlWriter);Argument[this];Argument[0];taint;df-generated | | System.Xml;XmlProcessingInstruction;WriteTo;(System.Xml.XmlWriter);Argument[this];Argument[0];taint;df-generated | | System.Xml;XmlProcessingInstruction;XmlProcessingInstruction;(System.String,System.String,System.Xml.XmlDocument);Argument[0];Argument[this].SyntheticField[System.Xml.XmlProcessingInstruction._target];value;dfc-generated | @@ -22687,13 +20149,8 @@ summary | System.Xml;XmlResolver;ResolveUri;(System.Uri,System.String);Argument[1];ReturnValue;taint;dfc-generated | | System.Xml;XmlResolver;set_Credentials;(System.Net.ICredentials);Argument[0];Argument[this];taint;df-generated | | System.Xml;XmlSecureResolver;GetEntity;(System.Uri,System.String,System.Type);Argument[0].Property[System.Uri.LocalPath];ReturnValue;taint;dfc-generated | -| System.Xml;XmlSecureResolver;GetEntity;(System.Uri,System.String,System.Type);Argument[0];ReturnValue;taint;dfc-generated | -| System.Xml;XmlSecureResolver;GetEntityAsync;(System.Uri,System.String,System.Type);Argument[0].Property[System.Uri.LocalPath];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];taint;df-generated | | System.Xml;XmlSecureResolver;GetEntityAsync;(System.Uri,System.String,System.Type);Argument[0].Property[System.Uri.LocalPath];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];taint;dfc-generated | -| 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;XmlSecureResolver;GetEntityAsync;(System.Uri,System.String,System.Type);Argument[0];ReturnValue;taint;df-generated | -| System.Xml;XmlSecureResolver;GetEntityAsync;(System.Uri,System.String,System.Type);Argument[0];ReturnValue;taint;dfc-generated | | System.Xml;XmlSecureResolver;ResolveUri;(System.Uri,System.String);Argument[0];ReturnValue;value;dfc-generated | | System.Xml;XmlSecureResolver;ResolveUri;(System.Uri,System.String);Argument[1];ReturnValue;taint;dfc-generated | | System.Xml;XmlSecureResolver;set_Credentials;(System.Net.ICredentials);Argument[0];Argument[this];taint;df-generated | @@ -22762,69 +20219,26 @@ summary | System.Xml;XmlTextWriter;WriteCData;(System.String);Argument[0];Argument[this];taint;df-generated | | System.Xml;XmlTextWriter;WriteChars;(System.Char[],System.Int32,System.Int32);Argument[0].Element;Argument[this];taint;df-generated | | System.Xml;XmlTextWriter;WriteComment;(System.String);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 | -| System.Xml;XmlTextWriter;WriteDocType;(System.String,System.String,System.String,System.String);Argument[0];Argument[this];taint;df-generated | -| System.Xml;XmlTextWriter;WriteDocType;(System.String,System.String,System.String,System.String);Argument[0];Argument[this];taint;dfc-generated | -| System.Xml;XmlTextWriter;WriteDocType;(System.String,System.String,System.String,System.String);Argument[1];Argument[this].SyntheticField[System.Xml.XmlTextWriter._textWriter];taint;df-generated | | System.Xml;XmlTextWriter;WriteDocType;(System.String,System.String,System.String,System.String);Argument[1];Argument[this].SyntheticField[System.Xml.XmlTextWriter._textWriter];taint;dfc-generated | -| System.Xml;XmlTextWriter;WriteDocType;(System.String,System.String,System.String,System.String);Argument[1];Argument[this];taint;df-generated | -| System.Xml;XmlTextWriter;WriteDocType;(System.String,System.String,System.String,System.String);Argument[1];Argument[this];taint;dfc-generated | -| System.Xml;XmlTextWriter;WriteDocType;(System.String,System.String,System.String,System.String);Argument[2];Argument[this].SyntheticField[System.Xml.XmlTextWriter._textWriter];taint;df-generated | | System.Xml;XmlTextWriter;WriteDocType;(System.String,System.String,System.String,System.String);Argument[2];Argument[this].SyntheticField[System.Xml.XmlTextWriter._textWriter];taint;dfc-generated | -| System.Xml;XmlTextWriter;WriteDocType;(System.String,System.String,System.String,System.String);Argument[2];Argument[this];taint;df-generated | -| System.Xml;XmlTextWriter;WriteDocType;(System.String,System.String,System.String,System.String);Argument[2];Argument[this];taint;dfc-generated | -| System.Xml;XmlTextWriter;WriteDocType;(System.String,System.String,System.String,System.String);Argument[3];Argument[this].SyntheticField[System.Xml.XmlTextWriter._textWriter];taint;df-generated | | System.Xml;XmlTextWriter;WriteDocType;(System.String,System.String,System.String,System.String);Argument[3];Argument[this].SyntheticField[System.Xml.XmlTextWriter._textWriter];taint;dfc-generated | -| System.Xml;XmlTextWriter;WriteDocType;(System.String,System.String,System.String,System.String);Argument[3];Argument[this];taint;df-generated | -| System.Xml;XmlTextWriter;WriteDocType;(System.String,System.String,System.String,System.String);Argument[3];Argument[this];taint;dfc-generated | | System.Xml;XmlTextWriter;WriteEntityRef;(System.String);Argument[0];Argument[this];taint;df-generated | -| System.Xml;XmlTextWriter;WriteName;(System.String);Argument[0];Argument[this].SyntheticField[System.Xml.XmlTextWriter._textWriter];taint;df-generated | | System.Xml;XmlTextWriter;WriteName;(System.String);Argument[0];Argument[this].SyntheticField[System.Xml.XmlTextWriter._textWriter];taint;dfc-generated | -| System.Xml;XmlTextWriter;WriteName;(System.String);Argument[0];Argument[this];taint;df-generated | -| System.Xml;XmlTextWriter;WriteName;(System.String);Argument[0];Argument[this];taint;dfc-generated | -| System.Xml;XmlTextWriter;WriteNmToken;(System.String);Argument[0];Argument[this].SyntheticField[System.Xml.XmlTextWriter._textWriter];taint;df-generated | | System.Xml;XmlTextWriter;WriteNmToken;(System.String);Argument[0];Argument[this].SyntheticField[System.Xml.XmlTextWriter._textWriter];taint;dfc-generated | -| System.Xml;XmlTextWriter;WriteNmToken;(System.String);Argument[0];Argument[this];taint;df-generated | -| System.Xml;XmlTextWriter;WriteNmToken;(System.String);Argument[0];Argument[this];taint;dfc-generated | -| System.Xml;XmlTextWriter;WriteProcessingInstruction;(System.String,System.String);Argument[0];Argument[this].SyntheticField[System.Xml.XmlTextWriter._textWriter];taint;df-generated | | System.Xml;XmlTextWriter;WriteProcessingInstruction;(System.String,System.String);Argument[0];Argument[this].SyntheticField[System.Xml.XmlTextWriter._textWriter];taint;dfc-generated | -| System.Xml;XmlTextWriter;WriteProcessingInstruction;(System.String,System.String);Argument[0];Argument[this];taint;df-generated | -| System.Xml;XmlTextWriter;WriteProcessingInstruction;(System.String,System.String);Argument[0];Argument[this];taint;dfc-generated | -| System.Xml;XmlTextWriter;WriteProcessingInstruction;(System.String,System.String);Argument[1];Argument[this];taint;df-generated | -| System.Xml;XmlTextWriter;WriteProcessingInstruction;(System.String,System.String);Argument[1];Argument[this];taint;dfc-generated | -| System.Xml;XmlTextWriter;WriteQualifiedName;(System.String,System.String);Argument[0];Argument[this].SyntheticField[System.Xml.XmlTextWriter._textWriter];taint;df-generated | | System.Xml;XmlTextWriter;WriteQualifiedName;(System.String,System.String);Argument[0];Argument[this].SyntheticField[System.Xml.XmlTextWriter._textWriter];taint;dfc-generated | -| System.Xml;XmlTextWriter;WriteQualifiedName;(System.String,System.String);Argument[0];Argument[this];taint;df-generated | -| System.Xml;XmlTextWriter;WriteQualifiedName;(System.String,System.String);Argument[0];Argument[this];taint;dfc-generated | | System.Xml;XmlTextWriter;WriteRaw;(System.Char[],System.Int32,System.Int32);Argument[0].Element;Argument[this];taint;df-generated | | System.Xml;XmlTextWriter;WriteRaw;(System.String);Argument[0];Argument[this];taint;df-generated | -| System.Xml;XmlTextWriter;WriteStartAttribute;(System.String,System.String,System.String);Argument[0];Argument[this].SyntheticField[System.Xml.XmlTextWriter._textWriter];taint;df-generated | | System.Xml;XmlTextWriter;WriteStartAttribute;(System.String,System.String,System.String);Argument[0];Argument[this].SyntheticField[System.Xml.XmlTextWriter._textWriter];taint;dfc-generated | -| System.Xml;XmlTextWriter;WriteStartAttribute;(System.String,System.String,System.String);Argument[0];Argument[this];taint;df-generated | -| System.Xml;XmlTextWriter;WriteStartAttribute;(System.String,System.String,System.String);Argument[0];Argument[this];taint;dfc-generated | -| System.Xml;XmlTextWriter;WriteStartAttribute;(System.String,System.String,System.String);Argument[1];Argument[this].SyntheticField[System.Xml.XmlTextWriter._textWriter];taint;df-generated | | System.Xml;XmlTextWriter;WriteStartAttribute;(System.String,System.String,System.String);Argument[1];Argument[this].SyntheticField[System.Xml.XmlTextWriter._textWriter];taint;dfc-generated | -| System.Xml;XmlTextWriter;WriteStartAttribute;(System.String,System.String,System.String);Argument[1];Argument[this];taint;df-generated | -| System.Xml;XmlTextWriter;WriteStartAttribute;(System.String,System.String,System.String);Argument[1];Argument[this];taint;dfc-generated | -| System.Xml;XmlTextWriter;WriteStartAttribute;(System.String,System.String,System.String);Argument[2];Argument[this];taint;df-generated | -| System.Xml;XmlTextWriter;WriteStartAttribute;(System.String,System.String,System.String);Argument[2];Argument[this];taint;dfc-generated | -| System.Xml;XmlTextWriter;WriteStartElement;(System.String,System.String,System.String);Argument[0];Argument[this].SyntheticField[System.Xml.XmlTextWriter._textWriter];taint;df-generated | | System.Xml;XmlTextWriter;WriteStartElement;(System.String,System.String,System.String);Argument[0];Argument[this].SyntheticField[System.Xml.XmlTextWriter._textWriter];taint;dfc-generated | -| System.Xml;XmlTextWriter;WriteStartElement;(System.String,System.String,System.String);Argument[0];Argument[this];taint;df-generated | -| System.Xml;XmlTextWriter;WriteStartElement;(System.String,System.String,System.String);Argument[0];Argument[this];taint;dfc-generated | -| System.Xml;XmlTextWriter;WriteStartElement;(System.String,System.String,System.String);Argument[1];Argument[this].SyntheticField[System.Xml.XmlTextWriter._textWriter];taint;df-generated | | System.Xml;XmlTextWriter;WriteStartElement;(System.String,System.String,System.String);Argument[1];Argument[this].SyntheticField[System.Xml.XmlTextWriter._textWriter];taint;dfc-generated | -| System.Xml;XmlTextWriter;WriteStartElement;(System.String,System.String,System.String);Argument[1];Argument[this];taint;df-generated | -| System.Xml;XmlTextWriter;WriteStartElement;(System.String,System.String,System.String);Argument[1];Argument[this];taint;dfc-generated | -| System.Xml;XmlTextWriter;WriteStartElement;(System.String,System.String,System.String);Argument[2];Argument[this];taint;df-generated | -| System.Xml;XmlTextWriter;WriteStartElement;(System.String,System.String,System.String);Argument[2];Argument[this];taint;dfc-generated | | System.Xml;XmlTextWriter;WriteString;(System.String);Argument[0];Argument[this];taint;df-generated | | System.Xml;XmlTextWriter;WriteWhitespace;(System.String);Argument[0];Argument[this];taint;df-generated | | System.Xml;XmlTextWriter;get_BaseStream;();Argument[this].SyntheticField[System.Xml.XmlTextWriter._textWriter].Property[System.IO.StreamWriter.BaseStream];ReturnValue;value;dfc-generated | | System.Xml;XmlTextWriter;get_XmlLang;();Argument[this];ReturnValue;taint;df-generated | | System.Xml;XmlUrlResolver;GetEntity;(System.Uri,System.String,System.Type);Argument[0].Property[System.Uri.LocalPath];ReturnValue;taint;dfc-generated | -| System.Xml;XmlUrlResolver;GetEntity;(System.Uri,System.String,System.Type);Argument[0];ReturnValue;taint;dfc-generated | | System.Xml;XmlUrlResolver;GetEntityAsync;(System.Uri,System.String,System.Type);Argument[0];ReturnValue;taint;df-generated | | System.Xml;XmlUrlResolver;ResolveUri;(System.Uri,System.String);Argument[0];ReturnValue;value;dfc-generated | | System.Xml;XmlUrlResolver;ResolveUri;(System.Uri,System.String);Argument[1];ReturnValue;taint;dfc-generated | @@ -22978,12 +20392,9 @@ summary | System;AggregateException;AggregateException;(System.String,System.Exception);Argument[1];Argument[this].SyntheticField[System.AggregateException._innerExceptions].Element;value;dfc-generated | | System;AggregateException;GetBaseException;();Argument[this];ReturnValue;value;df-generated | | System;AggregateException;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | -| System;AggregateException;Handle;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System;AggregateException;Handle;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System;AggregateException;Handle;(System.Func);Argument[this].SyntheticField[System.AggregateException._innerExceptions].Element;Argument[0].Parameter[0];value;dfc-generated | -| System;AggregateException;Handle;(System.Func);Argument[this].SyntheticField[System.AggregateException._innerExceptions].Element;Argument[0].Parameter[0];value;hq-generated | | System;AggregateException;get_Message;();Argument[this].Property[System.Exception.Message];ReturnValue;value;dfc-generated | -| System;AggregateException;get_Message;();Argument[this].SyntheticField[System.Exception._message];ReturnValue;value;dfc-generated | | System;AppDomain;ApplyPolicy;(System.String);Argument[0];ReturnValue;value;dfc-generated | | System;AppDomain;ToString;();Argument[this].Property[System.AppDomain.FriendlyName];ReturnValue;taint;dfc-generated | | System;AppDomain;add_AssemblyLoad;(System.AssemblyLoadEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | @@ -23015,7 +20426,6 @@ summary | System;ArgumentException;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | | System;ArgumentException;get_Message;();Argument[this].Property[System.Exception.Message];ReturnValue;value;dfc-generated | | System;ArgumentException;get_Message;();Argument[this].SyntheticField[System.ArgumentException._paramName];ReturnValue;taint;dfc-generated | -| System;ArgumentException;get_Message;();Argument[this].SyntheticField[System.Exception._message];ReturnValue;value;dfc-generated | | System;ArgumentException;get_ParamName;();Argument[this].SyntheticField[System.ArgumentException._paramName];ReturnValue;value;dfc-generated | | System;ArgumentOutOfRangeException;ArgumentOutOfRangeException;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[0].SyntheticField[System.Runtime.Serialization.SerializationInfo._values].Element;Argument[this].SyntheticField[System.ArgumentOutOfRangeException._actualValue];value;dfc-generated | | System;ArgumentOutOfRangeException;ArgumentOutOfRangeException;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[0];Argument[this].SyntheticField[System.ArgumentOutOfRangeException._actualValue];taint;dfc-generated | @@ -23033,55 +20443,33 @@ summary | System;Array;Clone;();Argument[this].Element;ReturnValue.Element;value;manual | | System;Array;Contains;(System.Object);Argument[0];Argument[this];taint;df-generated | | System;Array;ConvertAll;(TInput[],System.Converter);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | -| System;Array;ConvertAll;(TInput[],System.Converter);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | | System;Array;ConvertAll;(TInput[],System.Converter);Argument[1].ReturnValue;ReturnValue.Element;value;dfc-generated | -| System;Array;ConvertAll;(TInput[],System.Converter);Argument[1].ReturnValue;ReturnValue.Element;value;hq-generated | -| System;Array;ConvertAll;(TInput[],System.Converter);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System;Array;ConvertAll;(TInput[],System.Converter);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System;Array;CopyTo;(System.Array,System.Int32);Argument[this].Element;Argument[0].Element;value;manual | | System;Array;CopyTo;(System.Array,System.Int64);Argument[this].Element;Argument[0].Element;value;manual | | System;Array;Exists;(T[],System.Predicate);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | -| System;Array;Exists;(T[],System.Predicate);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | -| System;Array;Exists;(T[],System.Predicate);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System;Array;Exists;(T[],System.Predicate);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System;Array;Fill;(T[],T);Argument[1];Argument[0].Element;value;dfc-generated | | System;Array;Fill;(T[],T,System.Int32,System.Int32);Argument[1];Argument[0].Element;value;dfc-generated | | System;Array;Find;(T[],System.Predicate);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System;Array;Find;(T[],System.Predicate);Argument[0].Element;ReturnValue;value;manual | -| System;Array;Find;(T[],System.Predicate);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System;Array;FindAll;(T[],System.Predicate);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System;Array;FindAll;(T[],System.Predicate);Argument[0].Element;ReturnValue;value;manual | -| System;Array;FindAll;(T[],System.Predicate);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System;Array;FindIndex;(T[],System.Int32,System.Int32,System.Predicate);Argument[0].Element;Argument[3].Parameter[0];value;dfc-generated | -| System;Array;FindIndex;(T[],System.Int32,System.Int32,System.Predicate);Argument[0].Element;Argument[3].Parameter[0];value;hq-generated | -| System;Array;FindIndex;(T[],System.Int32,System.Int32,System.Predicate);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System;Array;FindIndex;(T[],System.Int32,System.Int32,System.Predicate);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System;Array;FindIndex;(T[],System.Int32,System.Predicate);Argument[0].Element;Argument[2].Parameter[0];value;dfc-generated | -| System;Array;FindIndex;(T[],System.Int32,System.Predicate);Argument[0].Element;Argument[2].Parameter[0];value;hq-generated | -| System;Array;FindIndex;(T[],System.Int32,System.Predicate);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System;Array;FindIndex;(T[],System.Int32,System.Predicate);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System;Array;FindIndex;(T[],System.Predicate);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | -| System;Array;FindIndex;(T[],System.Predicate);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | -| System;Array;FindIndex;(T[],System.Predicate);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System;Array;FindIndex;(T[],System.Predicate);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System;Array;FindLast;(T[],System.Predicate);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System;Array;FindLast;(T[],System.Predicate);Argument[0].Element;ReturnValue;value;manual | -| System;Array;FindLast;(T[],System.Predicate);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System;Array;FindLastIndex;(T[],System.Int32,System.Int32,System.Predicate);Argument[0].Element;Argument[3].Parameter[0];value;dfc-generated | -| System;Array;FindLastIndex;(T[],System.Int32,System.Int32,System.Predicate);Argument[0].Element;Argument[3].Parameter[0];value;hq-generated | -| System;Array;FindLastIndex;(T[],System.Int32,System.Int32,System.Predicate);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System;Array;FindLastIndex;(T[],System.Int32,System.Int32,System.Predicate);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System;Array;FindLastIndex;(T[],System.Int32,System.Predicate);Argument[0].Element;Argument[2].Parameter[0];value;dfc-generated | -| System;Array;FindLastIndex;(T[],System.Int32,System.Predicate);Argument[0].Element;Argument[2].Parameter[0];value;hq-generated | -| System;Array;FindLastIndex;(T[],System.Int32,System.Predicate);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System;Array;FindLastIndex;(T[],System.Int32,System.Predicate);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System;Array;FindLastIndex;(T[],System.Predicate);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | -| System;Array;FindLastIndex;(T[],System.Predicate);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | -| System;Array;FindLastIndex;(T[],System.Predicate);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System;Array;FindLastIndex;(T[],System.Predicate);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System;Array;ForEach;(T[],System.Action);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | -| System;Array;ForEach;(T[],System.Action);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | -| System;Array;ForEach;(T[],System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System;Array;ForEach;(T[],System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System;Array;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System;Array;Insert;(System.Int32,System.Object);Argument[1];Argument[this].Element;value;manual | @@ -23092,18 +20480,12 @@ summary | System;Array;Reverse;(T[],System.Int32,System.Int32);Argument[0].Element;ReturnValue.Element;value;manual | | System;Array;Sort;(T[],System.Comparison);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System;Array;TrueForAll;(T[],System.Predicate);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | -| System;Array;TrueForAll;(T[],System.Predicate);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | -| System;Array;TrueForAll;(T[],System.Predicate);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System;Array;TrueForAll;(T[],System.Predicate);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System;Array;get_Item;(System.Int32);Argument[this].Element;ReturnValue;value;manual | | System;Array;get_SyncRoot;();Argument[this];ReturnValue;value;dfc-generated | | System;Array;set_Item;(System.Int32,System.Object);Argument[1];Argument[this].Element;value;manual | -| System;ArraySegment+Enumerator;get_Current;();Argument[this].Property[System.ArraySegment`1+Enumerator.Current];ReturnValue;value;df-generated | | System;ArraySegment+Enumerator;get_Current;();Argument[this].Property[System.ArraySegment`1+Enumerator.Current];ReturnValue;value;dfc-generated | -| System;ArraySegment+Enumerator;get_Current;();Argument[this].SyntheticField[System.ArraySegment`1+Enumerator._array].Element;ReturnValue;value;df-generated | | System;ArraySegment+Enumerator;get_Current;();Argument[this].SyntheticField[System.ArraySegment`1+Enumerator._array].Element;ReturnValue;value;dfc-generated | -| System;ArraySegment+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System;ArraySegment+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System;ArraySegment;Add;(T);Argument[0];Argument[this].Element;value;manual | | System;ArraySegment;ArraySegment;(T[]);Argument[0];Argument[this].SyntheticField[System.ArraySegment`1._array];value;dfc-generated | | System;ArraySegment;ArraySegment;(T[],System.Int32,System.Int32);Argument[0];Argument[this].SyntheticField[System.ArraySegment`1._array];value;dfc-generated | @@ -23140,39 +20522,17 @@ summary | System;Boolean;TryParse;(System.ReadOnlySpan,System.Boolean);Argument[0].Element;ReturnValue;taint;manual | | System;Boolean;TryParse;(System.String,System.Boolean);Argument[0];Argument[1];taint;manual | | System;Boolean;TryParse;(System.String,System.Boolean);Argument[0];ReturnValue;taint;manual | -| System;Byte;Clamp;(System.Byte,System.Byte,System.Byte);Argument[0];ReturnValue;value;dfc-generated | -| System;Byte;Clamp;(System.Byte,System.Byte,System.Byte);Argument[1];ReturnValue;value;dfc-generated | -| System;Byte;Clamp;(System.Byte,System.Byte,System.Byte);Argument[2];ReturnValue;value;dfc-generated | -| System;Byte;CopySign;(System.Byte,System.Byte);Argument[0];ReturnValue;value;dfc-generated | -| System;Byte;CreateChecked;(TOther);Argument[0];ReturnValue;value;dfc-generated | -| System;Byte;CreateSaturating;(TOther);Argument[0];ReturnValue;value;dfc-generated | -| System;Byte;CreateTruncating;(TOther);Argument[0];ReturnValue;value;dfc-generated | -| System;Byte;Max;(System.Byte,System.Byte);Argument[0];ReturnValue;value;dfc-generated | -| System;Byte;Max;(System.Byte,System.Byte);Argument[1];ReturnValue;value;dfc-generated | -| System;Byte;MaxNumber;(System.Byte,System.Byte);Argument[0];ReturnValue;value;dfc-generated | -| System;Byte;MaxNumber;(System.Byte,System.Byte);Argument[1];ReturnValue;value;dfc-generated | -| System;Byte;Min;(System.Byte,System.Byte);Argument[0];ReturnValue;value;dfc-generated | -| System;Byte;Min;(System.Byte,System.Byte);Argument[1];ReturnValue;value;dfc-generated | -| System;Byte;MinNumber;(System.Byte,System.Byte);Argument[0];ReturnValue;value;dfc-generated | -| System;Byte;MinNumber;(System.Byte,System.Byte);Argument[1];ReturnValue;value;dfc-generated | -| System;Byte;MultiplyAddEstimate;(System.Byte,System.Byte,System.Byte);Argument[2];ReturnValue;taint;dfc-generated | -| System;Byte;System.Numerics.IAdditionOperators.op_CheckedAddition;(System.Byte,System.Byte);Argument[0];ReturnValue;taint;dfc-generated | -| System;Byte;System.Numerics.IAdditionOperators.op_CheckedAddition;(System.Byte,System.Byte);Argument[1];ReturnValue;taint;dfc-generated | | System;Byte;ToDateTime;(System.IFormatProvider);Argument[this];ReturnValue;value;df-generated | | System;Byte;ToDecimal;(System.IFormatProvider);Argument[this];ReturnValue;value;df-generated | | System;Byte;ToString;(System.IFormatProvider);Argument[this];ReturnValue;value;dfc-generated | | System;Byte;ToString;(System.String,System.IFormatProvider);Argument[this];ReturnValue;taint;dfc-generated | | System;Byte;ToType;(System.Type,System.IFormatProvider);Argument[this];ReturnValue;value;dfc-generated | -| System;Char;MultiplyAddEstimate;(System.Char,System.Char,System.Char);Argument[2];ReturnValue;taint;dfc-generated | -| System;Char;System.Numerics.IAdditionOperators.op_CheckedAddition;(System.Char,System.Char);Argument[0];ReturnValue;taint;dfc-generated | -| System;Char;System.Numerics.IAdditionOperators.op_CheckedAddition;(System.Char,System.Char);Argument[1];ReturnValue;taint;dfc-generated | | System;Char;ToDateTime;(System.IFormatProvider);Argument[this];ReturnValue;value;df-generated | | System;Char;ToDecimal;(System.IFormatProvider);Argument[this];ReturnValue;value;df-generated | | System;Char;ToString;(System.IFormatProvider);Argument[this];ReturnValue;value;dfc-generated | | System;Char;ToString;(System.String,System.IFormatProvider);Argument[this];ReturnValue;taint;dfc-generated | | System;Char;ToType;(System.Type,System.IFormatProvider);Argument[this];ReturnValue;value;dfc-generated | | System;CharEnumerator;Clone;();Argument[this];ReturnValue;value;dfc-generated | -| System;CharEnumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | | System;Comparison;BeginInvoke;(T,T,System.AsyncCallback,System.Object);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System;Console;add_CancelKeyPress;(System.ConsoleCancelEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System;Console;remove_CancelKeyPress;(System.ConsoleCancelEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | @@ -23521,25 +20881,7 @@ summary | System;DateTimeOffset;Deconstruct;(System.DateOnly,System.TimeOnly,System.TimeSpan);Argument[this].Property[System.DateTimeOffset.Offset];Argument[2];value;dfc-generated | | System;DateTimeOffset;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | | System;DateTimeOffset;ToString;(System.String,System.IFormatProvider);Argument[this];ReturnValue;taint;dfc-generated | -| System;Decimal;Clamp;(System.Decimal,System.Decimal,System.Decimal);Argument[0];ReturnValue;value;dfc-generated | -| System;Decimal;Clamp;(System.Decimal,System.Decimal,System.Decimal);Argument[1];ReturnValue;value;dfc-generated | -| System;Decimal;Clamp;(System.Decimal,System.Decimal,System.Decimal);Argument[2];ReturnValue;value;dfc-generated | -| System;Decimal;ConvertToInteger;(System.Decimal);Argument[0];ReturnValue;value;dfc-generated | -| System;Decimal;ConvertToIntegerNative;(System.Decimal);Argument[0];ReturnValue;value;dfc-generated | -| System;Decimal;CopySign;(System.Decimal,System.Decimal);Argument[0];ReturnValue;value;dfc-generated | -| System;Decimal;CreateChecked;(TOther);Argument[0];ReturnValue;value;dfc-generated | -| System;Decimal;CreateSaturating;(TOther);Argument[0];ReturnValue;value;dfc-generated | -| System;Decimal;CreateTruncating;(TOther);Argument[0];ReturnValue;value;dfc-generated | | System;Decimal;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | -| System;Decimal;Max;(System.Decimal,System.Decimal);Argument[0];ReturnValue;value;dfc-generated | -| System;Decimal;Max;(System.Decimal,System.Decimal);Argument[1];ReturnValue;value;dfc-generated | -| System;Decimal;MaxNumber;(System.Decimal,System.Decimal);Argument[0];ReturnValue;value;dfc-generated | -| System;Decimal;MaxNumber;(System.Decimal,System.Decimal);Argument[1];ReturnValue;value;dfc-generated | -| System;Decimal;Min;(System.Decimal,System.Decimal);Argument[0];ReturnValue;value;dfc-generated | -| System;Decimal;Min;(System.Decimal,System.Decimal);Argument[1];ReturnValue;value;dfc-generated | -| System;Decimal;MinNumber;(System.Decimal,System.Decimal);Argument[0];ReturnValue;value;dfc-generated | -| System;Decimal;MinNumber;(System.Decimal,System.Decimal);Argument[1];ReturnValue;value;dfc-generated | -| System;Decimal;MultiplyAddEstimate;(System.Decimal,System.Decimal,System.Decimal);Argument[2];ReturnValue;taint;dfc-generated | | System;Decimal;ToDateTime;(System.IFormatProvider);Argument[this];ReturnValue;value;df-generated | | System;Decimal;ToDecimal;(System.IFormatProvider);Argument[this];ReturnValue;value;df-generated | | System;Decimal;ToString;(System.IFormatProvider);Argument[this];ReturnValue;value;dfc-generated | @@ -23564,31 +20906,6 @@ summary | System;Delegate;RemoveAll;(System.Delegate,System.Delegate);Argument[0];ReturnValue;value;dfc-generated | | System;Delegate;RemoveImpl;(System.Delegate);Argument[this];ReturnValue;value;dfc-generated | | System;Delegate;get_Target;();Argument[this].SyntheticField[System.Delegate._target];ReturnValue;value;dfc-generated | -| System;Double;Clamp;(System.Double,System.Double,System.Double);Argument[0];ReturnValue;value;dfc-generated | -| System;Double;Clamp;(System.Double,System.Double,System.Double);Argument[1];ReturnValue;value;dfc-generated | -| System;Double;Clamp;(System.Double,System.Double,System.Double);Argument[2];ReturnValue;value;dfc-generated | -| System;Double;ClampNative;(System.Double,System.Double,System.Double);Argument[0];ReturnValue;value;dfc-generated | -| System;Double;ClampNative;(System.Double,System.Double,System.Double);Argument[1];ReturnValue;value;dfc-generated | -| System;Double;ClampNative;(System.Double,System.Double,System.Double);Argument[2];ReturnValue;value;dfc-generated | -| System;Double;ConvertToInteger;(System.Double);Argument[0];ReturnValue;value;dfc-generated | -| System;Double;ConvertToIntegerNative;(System.Double);Argument[0];ReturnValue;value;dfc-generated | -| System;Double;CopySign;(System.Double,System.Double);Argument[0];ReturnValue;value;dfc-generated | -| System;Double;CreateChecked;(TOther);Argument[0];ReturnValue;value;dfc-generated | -| System;Double;CreateSaturating;(TOther);Argument[0];ReturnValue;value;dfc-generated | -| System;Double;CreateTruncating;(TOther);Argument[0];ReturnValue;value;dfc-generated | -| System;Double;Max;(System.Double,System.Double);Argument[0];ReturnValue;value;dfc-generated | -| System;Double;Max;(System.Double,System.Double);Argument[1];ReturnValue;value;dfc-generated | -| System;Double;MaxNative;(System.Double,System.Double);Argument[0];ReturnValue;value;dfc-generated | -| System;Double;MaxNative;(System.Double,System.Double);Argument[1];ReturnValue;value;dfc-generated | -| System;Double;MaxNumber;(System.Double,System.Double);Argument[0];ReturnValue;value;dfc-generated | -| System;Double;MaxNumber;(System.Double,System.Double);Argument[1];ReturnValue;value;dfc-generated | -| System;Double;Min;(System.Double,System.Double);Argument[0];ReturnValue;value;dfc-generated | -| System;Double;Min;(System.Double,System.Double);Argument[1];ReturnValue;value;dfc-generated | -| System;Double;MinNative;(System.Double,System.Double);Argument[0];ReturnValue;value;dfc-generated | -| System;Double;MinNative;(System.Double,System.Double);Argument[1];ReturnValue;value;dfc-generated | -| System;Double;MinNumber;(System.Double,System.Double);Argument[0];ReturnValue;value;dfc-generated | -| System;Double;MinNumber;(System.Double,System.Double);Argument[1];ReturnValue;value;dfc-generated | -| System;Double;MultiplyAddEstimate;(System.Double,System.Double,System.Double);Argument[2];ReturnValue;taint;dfc-generated | | System;Double;ToDateTime;(System.IFormatProvider);Argument[this];ReturnValue;value;df-generated | | System;Double;ToDecimal;(System.IFormatProvider);Argument[this];ReturnValue;value;df-generated | | System;Double;ToString;(System.IFormatProvider);Argument[this];ReturnValue;value;dfc-generated | @@ -23643,35 +20960,26 @@ summary | System;Guid;ToString;(System.String,System.IFormatProvider);Argument[this];ReturnValue;taint;dfc-generated | | System;Half;BitDecrement;(System.Half);Argument[0];ReturnValue;value;dfc-generated | | System;Half;BitIncrement;(System.Half);Argument[0];ReturnValue;value;dfc-generated | -| System;Half;Clamp;(System.Half,System.Half,System.Half);Argument[0];ReturnValue;value;dfc-generated | -| System;Half;Clamp;(System.Half,System.Half,System.Half);Argument[1];ReturnValue;value;dfc-generated | -| System;Half;Clamp;(System.Half,System.Half,System.Half);Argument[2];ReturnValue;value;dfc-generated | | System;Half;ClampNative;(System.Half,System.Half,System.Half);Argument[0];ReturnValue;value;dfc-generated | | System;Half;ClampNative;(System.Half,System.Half,System.Half);Argument[1];ReturnValue;value;dfc-generated | | System;Half;ClampNative;(System.Half,System.Half,System.Half);Argument[2];ReturnValue;value;dfc-generated | | System;Half;ConvertToInteger;(System.Half);Argument[0];ReturnValue;value;dfc-generated | | System;Half;ConvertToIntegerNative;(System.Half);Argument[0];ReturnValue;value;dfc-generated | -| System;Half;CopySign;(System.Half,System.Half);Argument[0];ReturnValue;value;dfc-generated | | System;Half;CreateChecked;(TOther);Argument[0];ReturnValue;value;dfc-generated | | System;Half;CreateSaturating;(TOther);Argument[0];ReturnValue;value;dfc-generated | | System;Half;CreateTruncating;(TOther);Argument[0];ReturnValue;value;dfc-generated | -| System;Half;Max;(System.Half,System.Half);Argument[0];ReturnValue;value;dfc-generated | -| System;Half;Max;(System.Half,System.Half);Argument[1];ReturnValue;value;dfc-generated | | System;Half;MaxMagnitudeNumber;(System.Half,System.Half);Argument[0];ReturnValue;value;dfc-generated | | System;Half;MaxMagnitudeNumber;(System.Half,System.Half);Argument[1];ReturnValue;value;dfc-generated | | System;Half;MaxNative;(System.Half,System.Half);Argument[0];ReturnValue;value;dfc-generated | | System;Half;MaxNative;(System.Half,System.Half);Argument[1];ReturnValue;value;dfc-generated | | System;Half;MaxNumber;(System.Half,System.Half);Argument[0];ReturnValue;value;dfc-generated | | System;Half;MaxNumber;(System.Half,System.Half);Argument[1];ReturnValue;value;dfc-generated | -| System;Half;Min;(System.Half,System.Half);Argument[0];ReturnValue;value;dfc-generated | -| System;Half;Min;(System.Half,System.Half);Argument[1];ReturnValue;value;dfc-generated | | System;Half;MinMagnitudeNumber;(System.Half,System.Half);Argument[0];ReturnValue;value;dfc-generated | | System;Half;MinMagnitudeNumber;(System.Half,System.Half);Argument[1];ReturnValue;value;dfc-generated | | System;Half;MinNative;(System.Half,System.Half);Argument[0];ReturnValue;value;dfc-generated | | System;Half;MinNative;(System.Half,System.Half);Argument[1];ReturnValue;value;dfc-generated | | System;Half;MinNumber;(System.Half,System.Half);Argument[0];ReturnValue;value;dfc-generated | | System;Half;MinNumber;(System.Half,System.Half);Argument[1];ReturnValue;value;dfc-generated | -| System;Half;MultiplyAddEstimate;(System.Half,System.Half,System.Half);Argument[2];ReturnValue;taint;dfc-generated | | System;Half;ToString;(System.IFormatProvider);Argument[0];ReturnValue;taint;df-generated | | System;Half;ToString;(System.String,System.IFormatProvider);Argument[this];ReturnValue;taint;dfc-generated | | System;HashCode;Add;(T,System.Collections.Generic.IEqualityComparer);Argument[0];Argument[1];taint;df-generated | @@ -23686,52 +20994,16 @@ summary | System;IFormatProvider;GetFormat;(System.Type);Argument[this];ReturnValue;value;dfc-generated | | System;IFormattable;ToString;(System.String,System.IFormatProvider);Argument[this];ReturnValue;taint;dfc-generated | | System;IServiceProvider;GetService;(System.Type);Argument[this];ReturnValue;value;dfc-generated | -| System;Int16;Clamp;(System.Int16,System.Int16,System.Int16);Argument[0];ReturnValue;value;dfc-generated | -| System;Int16;Clamp;(System.Int16,System.Int16,System.Int16);Argument[1];ReturnValue;value;dfc-generated | -| System;Int16;Clamp;(System.Int16,System.Int16,System.Int16);Argument[2];ReturnValue;value;dfc-generated | -| System;Int16;CopySign;(System.Int16,System.Int16);Argument[0];ReturnValue;value;dfc-generated | -| System;Int16;CreateChecked;(TOther);Argument[0];ReturnValue;value;dfc-generated | -| System;Int16;CreateSaturating;(TOther);Argument[0];ReturnValue;value;dfc-generated | -| System;Int16;CreateTruncating;(TOther);Argument[0];ReturnValue;value;dfc-generated | -| System;Int16;Max;(System.Int16,System.Int16);Argument[0];ReturnValue;value;dfc-generated | -| System;Int16;Max;(System.Int16,System.Int16);Argument[1];ReturnValue;value;dfc-generated | -| System;Int16;MaxNumber;(System.Int16,System.Int16);Argument[0];ReturnValue;value;dfc-generated | -| System;Int16;MaxNumber;(System.Int16,System.Int16);Argument[1];ReturnValue;value;dfc-generated | -| System;Int16;Min;(System.Int16,System.Int16);Argument[0];ReturnValue;value;dfc-generated | -| System;Int16;Min;(System.Int16,System.Int16);Argument[1];ReturnValue;value;dfc-generated | -| System;Int16;MinNumber;(System.Int16,System.Int16);Argument[0];ReturnValue;value;dfc-generated | -| System;Int16;MinNumber;(System.Int16,System.Int16);Argument[1];ReturnValue;value;dfc-generated | -| System;Int16;MultiplyAddEstimate;(System.Int16,System.Int16,System.Int16);Argument[2];ReturnValue;taint;dfc-generated | -| System;Int16;System.Numerics.IAdditionOperators.op_CheckedAddition;(System.Int16,System.Int16);Argument[0];ReturnValue;taint;dfc-generated | -| System;Int16;System.Numerics.IAdditionOperators.op_CheckedAddition;(System.Int16,System.Int16);Argument[1];ReturnValue;taint;dfc-generated | | System;Int16;ToDateTime;(System.IFormatProvider);Argument[this];ReturnValue;value;df-generated | | System;Int16;ToDecimal;(System.IFormatProvider);Argument[this];ReturnValue;value;df-generated | | System;Int16;ToString;(System.IFormatProvider);Argument[this];ReturnValue;value;dfc-generated | | System;Int16;ToString;(System.String,System.IFormatProvider);Argument[this];ReturnValue;taint;dfc-generated | | System;Int16;ToType;(System.Type,System.IFormatProvider);Argument[this];ReturnValue;value;dfc-generated | -| System;Int32;Clamp;(System.Int32,System.Int32,System.Int32);Argument[0];ReturnValue;value;dfc-generated | -| System;Int32;Clamp;(System.Int32,System.Int32,System.Int32);Argument[1];ReturnValue;value;dfc-generated | -| System;Int32;Clamp;(System.Int32,System.Int32,System.Int32);Argument[2];ReturnValue;value;dfc-generated | -| System;Int32;CopySign;(System.Int32,System.Int32);Argument[0];ReturnValue;value;dfc-generated | -| System;Int32;CreateChecked;(TOther);Argument[0];ReturnValue;value;dfc-generated | -| System;Int32;CreateSaturating;(TOther);Argument[0];ReturnValue;value;dfc-generated | -| System;Int32;CreateTruncating;(TOther);Argument[0];ReturnValue;value;dfc-generated | -| System;Int32;Max;(System.Int32,System.Int32);Argument[0];ReturnValue;value;dfc-generated | -| System;Int32;Max;(System.Int32,System.Int32);Argument[1];ReturnValue;value;dfc-generated | -| System;Int32;MaxNumber;(System.Int32,System.Int32);Argument[0];ReturnValue;value;dfc-generated | -| System;Int32;MaxNumber;(System.Int32,System.Int32);Argument[1];ReturnValue;value;dfc-generated | -| System;Int32;Min;(System.Int32,System.Int32);Argument[0];ReturnValue;value;dfc-generated | -| System;Int32;Min;(System.Int32,System.Int32);Argument[1];ReturnValue;value;dfc-generated | -| System;Int32;MinNumber;(System.Int32,System.Int32);Argument[0];ReturnValue;value;dfc-generated | -| System;Int32;MinNumber;(System.Int32,System.Int32);Argument[1];ReturnValue;value;dfc-generated | -| System;Int32;MultiplyAddEstimate;(System.Int32,System.Int32,System.Int32);Argument[2];ReturnValue;taint;dfc-generated | | System;Int32;Parse;(System.ReadOnlySpan,System.Globalization.NumberStyles,System.IFormatProvider);Argument[0].Element;ReturnValue;taint;manual | | System;Int32;Parse;(System.String);Argument[0];ReturnValue;taint;manual | | System;Int32;Parse;(System.String,System.Globalization.NumberStyles);Argument[0];ReturnValue;taint;manual | | System;Int32;Parse;(System.String,System.Globalization.NumberStyles,System.IFormatProvider);Argument[0];ReturnValue;taint;manual | | System;Int32;Parse;(System.String,System.IFormatProvider);Argument[0];ReturnValue;taint;manual | -| System;Int32;System.Numerics.IAdditionOperators.op_CheckedAddition;(System.Int32,System.Int32);Argument[0];ReturnValue;taint;dfc-generated | -| System;Int32;System.Numerics.IAdditionOperators.op_CheckedAddition;(System.Int32,System.Int32);Argument[1];ReturnValue;taint;dfc-generated | | System;Int32;ToDateTime;(System.IFormatProvider);Argument[this];ReturnValue;value;df-generated | | System;Int32;ToDecimal;(System.IFormatProvider);Argument[this];ReturnValue;value;df-generated | | System;Int32;ToString;(System.IFormatProvider);Argument[this];ReturnValue;value;dfc-generated | @@ -23745,24 +21017,6 @@ summary | System;Int32;TryParse;(System.String,System.Globalization.NumberStyles,System.IFormatProvider,System.Int32);Argument[0];ReturnValue;taint;manual | | System;Int32;TryParse;(System.String,System.Int32);Argument[0];Argument[1];taint;manual | | System;Int32;TryParse;(System.String,System.Int32);Argument[0];ReturnValue;taint;manual | -| System;Int64;Clamp;(System.Int64,System.Int64,System.Int64);Argument[0];ReturnValue;value;dfc-generated | -| System;Int64;Clamp;(System.Int64,System.Int64,System.Int64);Argument[1];ReturnValue;value;dfc-generated | -| System;Int64;Clamp;(System.Int64,System.Int64,System.Int64);Argument[2];ReturnValue;value;dfc-generated | -| System;Int64;CopySign;(System.Int64,System.Int64);Argument[0];ReturnValue;value;dfc-generated | -| System;Int64;CreateChecked;(TOther);Argument[0];ReturnValue;value;dfc-generated | -| System;Int64;CreateSaturating;(TOther);Argument[0];ReturnValue;value;dfc-generated | -| System;Int64;CreateTruncating;(TOther);Argument[0];ReturnValue;value;dfc-generated | -| System;Int64;Max;(System.Int64,System.Int64);Argument[0];ReturnValue;value;dfc-generated | -| System;Int64;Max;(System.Int64,System.Int64);Argument[1];ReturnValue;value;dfc-generated | -| System;Int64;MaxNumber;(System.Int64,System.Int64);Argument[0];ReturnValue;value;dfc-generated | -| System;Int64;MaxNumber;(System.Int64,System.Int64);Argument[1];ReturnValue;value;dfc-generated | -| System;Int64;Min;(System.Int64,System.Int64);Argument[0];ReturnValue;value;dfc-generated | -| System;Int64;Min;(System.Int64,System.Int64);Argument[1];ReturnValue;value;dfc-generated | -| System;Int64;MinNumber;(System.Int64,System.Int64);Argument[0];ReturnValue;value;dfc-generated | -| System;Int64;MinNumber;(System.Int64,System.Int64);Argument[1];ReturnValue;value;dfc-generated | -| System;Int64;MultiplyAddEstimate;(System.Int64,System.Int64,System.Int64);Argument[2];ReturnValue;taint;dfc-generated | -| System;Int64;System.Numerics.IAdditionOperators.op_CheckedAddition;(System.Int64,System.Int64);Argument[0];ReturnValue;taint;dfc-generated | -| System;Int64;System.Numerics.IAdditionOperators.op_CheckedAddition;(System.Int64,System.Int64);Argument[1];ReturnValue;taint;dfc-generated | | System;Int64;ToDateTime;(System.IFormatProvider);Argument[this];ReturnValue;value;df-generated | | System;Int64;ToDecimal;(System.IFormatProvider);Argument[this];ReturnValue;value;df-generated | | System;Int64;ToString;(System.IFormatProvider);Argument[this];ReturnValue;value;dfc-generated | @@ -23792,7 +21046,6 @@ summary | System;Int128;MinMagnitudeNumber;(System.Int128,System.Int128);Argument[1];ReturnValue;value;dfc-generated | | System;Int128;MinNumber;(System.Int128,System.Int128);Argument[0];ReturnValue;value;dfc-generated | | System;Int128;MinNumber;(System.Int128,System.Int128);Argument[1];ReturnValue;value;dfc-generated | -| System;Int128;MultiplyAddEstimate;(System.Int128,System.Int128,System.Int128);Argument[2];ReturnValue;taint;dfc-generated | | System;Int128;System.Numerics.IAdditionOperators.op_CheckedAddition;(System.Int128,System.Int128);Argument[0];ReturnValue;taint;dfc-generated | | System;Int128;System.Numerics.IAdditionOperators.op_CheckedAddition;(System.Int128,System.Int128);Argument[1];ReturnValue;taint;dfc-generated | | System;Int128;ToString;(System.String,System.IFormatProvider);Argument[this];ReturnValue;taint;dfc-generated | @@ -23829,28 +21082,19 @@ summary | System;IntPtr;System.Numerics.IAdditionOperators.op_CheckedAddition;(System.IntPtr,System.IntPtr);Argument[1];ReturnValue;taint;dfc-generated | | System;IntPtr;ToString;(System.String,System.IFormatProvider);Argument[this];ReturnValue;taint;dfc-generated | | System;IntPtr;op_Addition;(System.IntPtr,System.Int32);Argument[0];ReturnValue;taint;dfc-generated | -| System;Lazy;Lazy;(System.Func,TMetadata);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System;Lazy;Lazy;(System.Func,TMetadata);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System;Lazy;Lazy;(System.Func,TMetadata);Argument[1];Argument[this].SyntheticField[System.Lazy`2._metadata];value;dfc-generated | -| System;Lazy;Lazy;(System.Func,TMetadata);Argument[1];Argument[this].SyntheticField[System.Lazy`2._metadata];value;hq-generated | -| System;Lazy;Lazy;(System.Func,TMetadata,System.Boolean);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System;Lazy;Lazy;(System.Func,TMetadata,System.Boolean);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System;Lazy;Lazy;(System.Func,TMetadata,System.Boolean);Argument[1];Argument[this].SyntheticField[System.Lazy`2._metadata];value;dfc-generated | -| System;Lazy;Lazy;(System.Func,TMetadata,System.Boolean);Argument[1];Argument[this].SyntheticField[System.Lazy`2._metadata];value;hq-generated | -| System;Lazy;Lazy;(System.Func,TMetadata,System.Threading.LazyThreadSafetyMode);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System;Lazy;Lazy;(System.Func,TMetadata,System.Threading.LazyThreadSafetyMode);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System;Lazy;Lazy;(System.Func,TMetadata,System.Threading.LazyThreadSafetyMode);Argument[1];Argument[this].SyntheticField[System.Lazy`2._metadata];value;dfc-generated | -| System;Lazy;Lazy;(System.Func,TMetadata,System.Threading.LazyThreadSafetyMode);Argument[1];Argument[this].SyntheticField[System.Lazy`2._metadata];value;hq-generated | | System;Lazy;Lazy;(TMetadata);Argument[0];Argument[this].SyntheticField[System.Lazy`2._metadata];value;dfc-generated | | System;Lazy;Lazy;(TMetadata,System.Boolean);Argument[0];Argument[this].SyntheticField[System.Lazy`2._metadata];value;dfc-generated | | System;Lazy;Lazy;(TMetadata,System.Threading.LazyThreadSafetyMode);Argument[0];Argument[this].SyntheticField[System.Lazy`2._metadata];value;dfc-generated | | System;Lazy;get_Metadata;();Argument[this].SyntheticField[System.Lazy`2._metadata];ReturnValue;value;dfc-generated | | System;Lazy;Lazy;(System.Func);Argument[0].ReturnValue;Argument[this].Property[System.Lazy`1.Value];value;manual | -| System;Lazy;Lazy;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System;Lazy;Lazy;(System.Func,System.Boolean);Argument[0].ReturnValue;Argument[this].Property[System.Lazy`1.Value];value;manual | -| System;Lazy;Lazy;(System.Func,System.Boolean);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System;Lazy;Lazy;(System.Func,System.Threading.LazyThreadSafetyMode);Argument[0].ReturnValue;Argument[this].Property[System.Lazy`1.Value];value;manual | -| System;Lazy;Lazy;(System.Func,System.Threading.LazyThreadSafetyMode);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System;Lazy;Lazy;(T);Argument[0];Argument[this];taint;df-generated | | System;Lazy;ToString;();Argument[this];ReturnValue;taint;df-generated | | System;Lazy;get_Value;();Argument[this];ReturnValue;taint;manual | @@ -23878,10 +21122,7 @@ summary | System;Memory;ToString;();Argument[this].SyntheticField[System.Memory`1._object];ReturnValue;value;dfc-generated | | System;Memory;TryCopyTo;(System.Memory);Argument[this].Property[System.Memory`1.Span].Element;Argument[0].Property[System.Memory`1.Span].Element;value;dfc-generated | | System;MemoryExtensions+SpanSplitEnumerator;GetEnumerator;();Argument[this];ReturnValue;value;dfc-generated | -| System;MemoryExtensions+SpanSplitEnumerator;get_Current;();Argument[this].Property[System.MemoryExtensions+SpanSplitEnumerator`1.Current];ReturnValue;value;df-generated | | System;MemoryExtensions+SpanSplitEnumerator;get_Current;();Argument[this].Property[System.MemoryExtensions+SpanSplitEnumerator`1.Current];ReturnValue;value;dfc-generated | -| System;MemoryExtensions+SpanSplitEnumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System;MemoryExtensions+SpanSplitEnumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System;MemoryExtensions+SpanSplitEnumerator;get_Source;();Argument[this];ReturnValue;taint;df-generated | | System;MemoryExtensions+TryWriteInterpolatedStringHandler;TryWriteInterpolatedStringHandler;(System.Int32,System.Int32,System.Span,System.Boolean);Argument[2];Argument[this];taint;df-generated | | System;MemoryExtensions+TryWriteInterpolatedStringHandler;TryWriteInterpolatedStringHandler;(System.Int32,System.Int32,System.Span,System.IFormatProvider,System.Boolean);Argument[2];Argument[this];taint;df-generated | @@ -24069,10 +21310,7 @@ summary | System;MemoryExtensions;SequenceEqual;(System.Span,System.ReadOnlySpan,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[2];taint;df-generated | | System;MemoryExtensions;Sort;(System.Span,TComparer);Argument[0];Argument[1];taint;df-generated | | System;MemoryExtensions;Sort;(System.Span,System.Comparison);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | -| System;MemoryExtensions;Sort;(System.Span,System.Comparison);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | | System;MemoryExtensions;Sort;(System.Span,System.Comparison);Argument[0].Element;Argument[1].Parameter[1];value;dfc-generated | -| System;MemoryExtensions;Sort;(System.Span,System.Comparison);Argument[0].Element;Argument[1].Parameter[1];value;hq-generated | -| System;MemoryExtensions;Sort;(System.Span,System.Comparison);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System;MemoryExtensions;Sort;(System.Span,System.Comparison);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System;MemoryExtensions;Sort;(System.Span,System.Span,TComparer);Argument[0];Argument[2];taint;df-generated | | System;MemoryExtensions;Sort;(System.Span,System.Span,System.Comparison);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | @@ -24152,13 +21390,10 @@ summary | System;MissingMethodException;get_Message;();Argument[this].SyntheticField[System.Exception._message];ReturnValue;value;dfc-generated | | System;MulticastDelegate;CombineImpl;(System.Delegate);Argument[0];ReturnValue.SyntheticField[System.MulticastDelegate.delegates].Element;value;dfc-generated | | System;MulticastDelegate;CombineImpl;(System.Delegate);Argument[this];ReturnValue.SyntheticField[System.MulticastDelegate.delegates].Element;value;dfc-generated | -| System;MulticastDelegate;CombineImpl;(System.Delegate);Argument[this];ReturnValue;value;dfc-generated | | System;MulticastDelegate;GetInvocationList;();Argument[this].SyntheticField[System.MulticastDelegate.delegates].Element;ReturnValue.Element;value;dfc-generated | -| System;MulticastDelegate;GetInvocationList;();Argument[this];ReturnValue.Element;value;dfc-generated | | System;MulticastDelegate;GetMethodImpl;();Argument[this];ReturnValue;taint;df-generated | | System;MulticastDelegate;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | | System;MulticastDelegate;RemoveImpl;(System.Delegate);Argument[this].SyntheticField[System.MulticastDelegate.delegates].Element;ReturnValue;value;dfc-generated | -| System;MulticastDelegate;RemoveImpl;(System.Delegate);Argument[this];ReturnValue;value;dfc-generated | | System;NotFiniteNumberException;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | | System;Nullable;GetValueOrDefault;();Argument[this].Property[System.Nullable`1.Value];ReturnValue;value;manual | | System;Nullable;GetValueOrDefault;(T);Argument[0];ReturnValue;value;manual | @@ -24191,10 +21426,7 @@ summary | System;ReadOnlyMemory;ToArray;();Argument[this].Property[System.ReadOnlyMemory`1.Span].Element;ReturnValue.Element;value;dfc-generated | | System;ReadOnlyMemory;ToString;();Argument[this].SyntheticField[System.ReadOnlyMemory`1._object];ReturnValue;value;dfc-generated | | System;ReadOnlyMemory;TryCopyTo;(System.Memory);Argument[this].Property[System.ReadOnlyMemory`1.Span].Element;Argument[0].Property[System.Memory`1.Span].Element;value;dfc-generated | -| System;ReadOnlySpan+Enumerator;get_Current;();Argument[this].Property[System.ReadOnlySpan`1+Enumerator.Current];ReturnValue;value;df-generated | | System;ReadOnlySpan+Enumerator;get_Current;();Argument[this].Property[System.ReadOnlySpan`1+Enumerator.Current];ReturnValue;value;dfc-generated | -| System;ReadOnlySpan+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System;ReadOnlySpan+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System;ReadOnlySpan;CopyTo;(System.Span);Argument[this].Element;Argument[0].Element;value;manual | | System;ReadOnlySpan;GetEnumerator;();Argument[this];ReturnValue;taint;df-generated | | System;ReadOnlySpan;GetPinnableReference;();Argument[this].Element;ReturnValue;value;manual | @@ -24222,24 +21454,6 @@ summary | System;RuntimeTypeHandle;ToIntPtr;(System.RuntimeTypeHandle);Argument[0].Property[System.RuntimeTypeHandle.Value];ReturnValue;value;dfc-generated | | System;RuntimeTypeHandle;ToIntPtr;(System.RuntimeTypeHandle);Argument[0].SyntheticField[System.RuntimeTypeHandle.value];ReturnValue;value;dfc-generated | | System;RuntimeTypeHandle;get_Value;();Argument[this].SyntheticField[System.RuntimeTypeHandle.value];ReturnValue;value;dfc-generated | -| System;SByte;Clamp;(System.SByte,System.SByte,System.SByte);Argument[0];ReturnValue;value;dfc-generated | -| System;SByte;Clamp;(System.SByte,System.SByte,System.SByte);Argument[1];ReturnValue;value;dfc-generated | -| System;SByte;Clamp;(System.SByte,System.SByte,System.SByte);Argument[2];ReturnValue;value;dfc-generated | -| System;SByte;CopySign;(System.SByte,System.SByte);Argument[0];ReturnValue;value;dfc-generated | -| System;SByte;CreateChecked;(TOther);Argument[0];ReturnValue;value;dfc-generated | -| System;SByte;CreateSaturating;(TOther);Argument[0];ReturnValue;value;dfc-generated | -| System;SByte;CreateTruncating;(TOther);Argument[0];ReturnValue;value;dfc-generated | -| System;SByte;Max;(System.SByte,System.SByte);Argument[0];ReturnValue;value;dfc-generated | -| System;SByte;Max;(System.SByte,System.SByte);Argument[1];ReturnValue;value;dfc-generated | -| System;SByte;MaxNumber;(System.SByte,System.SByte);Argument[0];ReturnValue;value;dfc-generated | -| System;SByte;MaxNumber;(System.SByte,System.SByte);Argument[1];ReturnValue;value;dfc-generated | -| System;SByte;Min;(System.SByte,System.SByte);Argument[0];ReturnValue;value;dfc-generated | -| System;SByte;Min;(System.SByte,System.SByte);Argument[1];ReturnValue;value;dfc-generated | -| System;SByte;MinNumber;(System.SByte,System.SByte);Argument[0];ReturnValue;value;dfc-generated | -| System;SByte;MinNumber;(System.SByte,System.SByte);Argument[1];ReturnValue;value;dfc-generated | -| System;SByte;MultiplyAddEstimate;(System.SByte,System.SByte,System.SByte);Argument[2];ReturnValue;taint;dfc-generated | -| System;SByte;System.Numerics.IAdditionOperators.op_CheckedAddition;(System.SByte,System.SByte);Argument[0];ReturnValue;taint;dfc-generated | -| System;SByte;System.Numerics.IAdditionOperators.op_CheckedAddition;(System.SByte,System.SByte);Argument[1];ReturnValue;taint;dfc-generated | | System;SByte;ToDateTime;(System.IFormatProvider);Argument[this];ReturnValue;value;df-generated | | System;SByte;ToDecimal;(System.IFormatProvider);Argument[this];ReturnValue;value;df-generated | | System;SByte;ToString;(System.IFormatProvider);Argument[this];ReturnValue;value;dfc-generated | @@ -24247,40 +21461,12 @@ summary | System;SByte;ToType;(System.Type,System.IFormatProvider);Argument[this];ReturnValue;value;dfc-generated | | System;SequencePosition;GetObject;();Argument[this].SyntheticField[System.SequencePosition._object];ReturnValue;value;dfc-generated | | System;SequencePosition;SequencePosition;(System.Object,System.Int32);Argument[0];Argument[this].SyntheticField[System.SequencePosition._object];value;dfc-generated | -| System;Single;Clamp;(System.Single,System.Single,System.Single);Argument[0];ReturnValue;value;dfc-generated | -| System;Single;Clamp;(System.Single,System.Single,System.Single);Argument[1];ReturnValue;value;dfc-generated | -| System;Single;Clamp;(System.Single,System.Single,System.Single);Argument[2];ReturnValue;value;dfc-generated | -| System;Single;ClampNative;(System.Single,System.Single,System.Single);Argument[0];ReturnValue;value;dfc-generated | -| System;Single;ClampNative;(System.Single,System.Single,System.Single);Argument[1];ReturnValue;value;dfc-generated | -| System;Single;ClampNative;(System.Single,System.Single,System.Single);Argument[2];ReturnValue;value;dfc-generated | -| System;Single;ConvertToInteger;(System.Single);Argument[0];ReturnValue;value;dfc-generated | -| System;Single;ConvertToIntegerNative;(System.Single);Argument[0];ReturnValue;value;dfc-generated | -| System;Single;CopySign;(System.Single,System.Single);Argument[0];ReturnValue;value;dfc-generated | -| System;Single;CreateChecked;(TOther);Argument[0];ReturnValue;value;dfc-generated | -| System;Single;CreateSaturating;(TOther);Argument[0];ReturnValue;value;dfc-generated | -| System;Single;CreateTruncating;(TOther);Argument[0];ReturnValue;value;dfc-generated | -| System;Single;Max;(System.Single,System.Single);Argument[0];ReturnValue;value;dfc-generated | -| System;Single;Max;(System.Single,System.Single);Argument[1];ReturnValue;value;dfc-generated | -| System;Single;MaxNative;(System.Single,System.Single);Argument[0];ReturnValue;value;dfc-generated | -| System;Single;MaxNative;(System.Single,System.Single);Argument[1];ReturnValue;value;dfc-generated | -| System;Single;MaxNumber;(System.Single,System.Single);Argument[0];ReturnValue;value;dfc-generated | -| System;Single;MaxNumber;(System.Single,System.Single);Argument[1];ReturnValue;value;dfc-generated | -| System;Single;Min;(System.Single,System.Single);Argument[0];ReturnValue;value;dfc-generated | -| System;Single;Min;(System.Single,System.Single);Argument[1];ReturnValue;value;dfc-generated | -| System;Single;MinNative;(System.Single,System.Single);Argument[0];ReturnValue;value;dfc-generated | -| System;Single;MinNative;(System.Single,System.Single);Argument[1];ReturnValue;value;dfc-generated | -| System;Single;MinNumber;(System.Single,System.Single);Argument[0];ReturnValue;value;dfc-generated | -| System;Single;MinNumber;(System.Single,System.Single);Argument[1];ReturnValue;value;dfc-generated | -| System;Single;MultiplyAddEstimate;(System.Single,System.Single,System.Single);Argument[2];ReturnValue;taint;dfc-generated | | System;Single;ToDateTime;(System.IFormatProvider);Argument[this];ReturnValue;value;df-generated | | System;Single;ToDecimal;(System.IFormatProvider);Argument[this];ReturnValue;value;df-generated | | System;Single;ToString;(System.IFormatProvider);Argument[this];ReturnValue;value;dfc-generated | | System;Single;ToString;(System.String,System.IFormatProvider);Argument[this];ReturnValue;taint;dfc-generated | | System;Single;ToType;(System.Type,System.IFormatProvider);Argument[this];ReturnValue;value;dfc-generated | -| System;Span+Enumerator;get_Current;();Argument[this].Property[System.Span`1+Enumerator.Current];ReturnValue;value;df-generated | | System;Span+Enumerator;get_Current;();Argument[this].Property[System.Span`1+Enumerator.Current];ReturnValue;value;dfc-generated | -| System;Span+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System;Span+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System;Span;Clear;();Argument[this].WithoutElement;Argument[this];value;manual | | System;Span;CopyTo;(System.Span);Argument[this].Element;Argument[0].Element;value;manual | | System;Span;Fill;(T);Argument[0];Argument[this].Element;value;manual | @@ -24327,8 +21513,6 @@ summary | System;String;Concat;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue;taint;manual | | System;String;Copy;(System.String);Argument[0];ReturnValue;value;manual | | System;String;Create;(System.Int32,TState,System.Buffers.SpanAction);Argument[1];Argument[2].Parameter[1];value;dfc-generated | -| System;String;Create;(System.Int32,TState,System.Buffers.SpanAction);Argument[1];Argument[2].Parameter[1];value;hq-generated | -| System;String;Create;(System.Int32,TState,System.Buffers.SpanAction);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System;String;Create;(System.Int32,TState,System.Buffers.SpanAction);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System;String;EnumerateRunes;();Argument[this];ReturnValue;taint;df-generated | | System;String;Format;(System.IFormatProvider,System.String,System.Object);Argument[1];ReturnValue;taint;manual | @@ -24366,7 +21550,6 @@ summary | System;String;Format;(System.IFormatProvider,System.Text.CompositeFormat,TArg0);Argument[1].Property[System.Text.CompositeFormat.Format];ReturnValue;value;dfc-generated | | System;String;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.CharEnumerator.Current];value;manual | | System;String;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | -| System;String;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System;String;Insert;(System.Int32,System.String);Argument[1];ReturnValue;taint;manual | | System;String;Insert;(System.Int32,System.String);Argument[this];ReturnValue;taint;manual | | System;String;Join;(System.Char,System.Object[]);Argument[0];ReturnValue;taint;manual | @@ -24451,7 +21634,6 @@ summary | System;String;TryParse;(System.String,System.IFormatProvider,System.String);Argument[0];Argument[2];value;dfc-generated | | System;StringComparer;Compare;(System.Object,System.Object);Argument[0];Argument[this];taint;df-generated | | System;StringComparer;Compare;(System.Object,System.Object);Argument[1];Argument[this];taint;df-generated | -| System;StringComparer;GetHashCode;(System.Object);Argument[0];Argument[this];taint;df-generated | | System;StringNormalizationExtensions;Normalize;(System.String);Argument[0];ReturnValue;value;dfc-generated | | System;StringNormalizationExtensions;Normalize;(System.String,System.Text.NormalizationForm);Argument[0];ReturnValue;value;dfc-generated | | System;StringNormalizationExtensions;TryNormalize;(System.ReadOnlySpan,System.Span,System.Int32,System.Text.NormalizationForm);Argument[0].Element;Argument[1].Element;value;dfc-generated | @@ -24819,14 +22001,10 @@ summary | System;TupleExtensions;ToValueTuple;(System.Tuple);Argument[0];ReturnValue;taint;df-generated | | System;TupleExtensions;ToValueTuple;(System.Tuple);Argument[0];ReturnValue;taint;df-generated | | System;TupleExtensions;ToValueTuple;(System.Tuple);Argument[0].Property[System.Tuple`1.Item1];ReturnValue.Field[System.ValueTuple`1.Item1];value;dfc-generated | -| System;Type;FindInterfaces;(System.Reflection.TypeFilter,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System;Type;FindInterfaces;(System.Reflection.TypeFilter,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System;Type;FindInterfaces;(System.Reflection.TypeFilter,System.Object);Argument[1];Argument[0].Parameter[1];value;dfc-generated | -| System;Type;FindInterfaces;(System.Reflection.TypeFilter,System.Object);Argument[1];Argument[0].Parameter[1];value;hq-generated | -| System;Type;FindMembers;(System.Reflection.MemberTypes,System.Reflection.BindingFlags,System.Reflection.MemberFilter,System.Object);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System;Type;FindMembers;(System.Reflection.MemberTypes,System.Reflection.BindingFlags,System.Reflection.MemberFilter,System.Object);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System;Type;FindMembers;(System.Reflection.MemberTypes,System.Reflection.BindingFlags,System.Reflection.MemberFilter,System.Object);Argument[3];Argument[2].Parameter[1];value;dfc-generated | -| System;Type;FindMembers;(System.Reflection.MemberTypes,System.Reflection.BindingFlags,System.Reflection.MemberFilter,System.Object);Argument[3];Argument[2].Parameter[1];value;hq-generated | | System;Type;GetConstructorImpl;(System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[]);Argument[this];ReturnValue;taint;df-generated | | System;Type;GetConstructors;(System.Reflection.BindingFlags);Argument[this];ReturnValue;taint;df-generated | | System;Type;GetElementType;();Argument[this];ReturnValue;taint;df-generated | @@ -24884,70 +22062,16 @@ summary | System;TypeLoadException;TypeLoadException;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[0];Argument[this];taint;df-generated | | System;TypeLoadException;get_Message;();Argument[this].SyntheticField[System.Exception._message];ReturnValue;value;dfc-generated | | System;TypeLoadException;get_TypeName;();Argument[this];ReturnValue;taint;df-generated | -| System;UInt16;Clamp;(System.UInt16,System.UInt16,System.UInt16);Argument[0];ReturnValue;value;dfc-generated | -| System;UInt16;Clamp;(System.UInt16,System.UInt16,System.UInt16);Argument[1];ReturnValue;value;dfc-generated | -| System;UInt16;Clamp;(System.UInt16,System.UInt16,System.UInt16);Argument[2];ReturnValue;value;dfc-generated | -| System;UInt16;CopySign;(System.UInt16,System.UInt16);Argument[0];ReturnValue;value;dfc-generated | -| System;UInt16;CreateChecked;(TOther);Argument[0];ReturnValue;value;dfc-generated | -| System;UInt16;CreateSaturating;(TOther);Argument[0];ReturnValue;value;dfc-generated | -| System;UInt16;CreateTruncating;(TOther);Argument[0];ReturnValue;value;dfc-generated | -| System;UInt16;Max;(System.UInt16,System.UInt16);Argument[0];ReturnValue;value;dfc-generated | -| System;UInt16;Max;(System.UInt16,System.UInt16);Argument[1];ReturnValue;value;dfc-generated | -| System;UInt16;MaxNumber;(System.UInt16,System.UInt16);Argument[0];ReturnValue;value;dfc-generated | -| System;UInt16;MaxNumber;(System.UInt16,System.UInt16);Argument[1];ReturnValue;value;dfc-generated | -| System;UInt16;Min;(System.UInt16,System.UInt16);Argument[0];ReturnValue;value;dfc-generated | -| System;UInt16;Min;(System.UInt16,System.UInt16);Argument[1];ReturnValue;value;dfc-generated | -| System;UInt16;MinNumber;(System.UInt16,System.UInt16);Argument[0];ReturnValue;value;dfc-generated | -| System;UInt16;MinNumber;(System.UInt16,System.UInt16);Argument[1];ReturnValue;value;dfc-generated | -| System;UInt16;MultiplyAddEstimate;(System.UInt16,System.UInt16,System.UInt16);Argument[2];ReturnValue;taint;dfc-generated | -| System;UInt16;System.Numerics.IAdditionOperators.op_CheckedAddition;(System.UInt16,System.UInt16);Argument[0];ReturnValue;taint;dfc-generated | -| System;UInt16;System.Numerics.IAdditionOperators.op_CheckedAddition;(System.UInt16,System.UInt16);Argument[1];ReturnValue;taint;dfc-generated | | System;UInt16;ToDateTime;(System.IFormatProvider);Argument[this];ReturnValue;value;df-generated | | System;UInt16;ToDecimal;(System.IFormatProvider);Argument[this];ReturnValue;value;df-generated | | System;UInt16;ToString;(System.IFormatProvider);Argument[this];ReturnValue;value;dfc-generated | | System;UInt16;ToString;(System.String,System.IFormatProvider);Argument[this];ReturnValue;taint;dfc-generated | | System;UInt16;ToType;(System.Type,System.IFormatProvider);Argument[this];ReturnValue;value;dfc-generated | -| System;UInt32;Clamp;(System.UInt32,System.UInt32,System.UInt32);Argument[0];ReturnValue;value;dfc-generated | -| System;UInt32;Clamp;(System.UInt32,System.UInt32,System.UInt32);Argument[1];ReturnValue;value;dfc-generated | -| System;UInt32;Clamp;(System.UInt32,System.UInt32,System.UInt32);Argument[2];ReturnValue;value;dfc-generated | -| System;UInt32;CopySign;(System.UInt32,System.UInt32);Argument[0];ReturnValue;value;dfc-generated | -| System;UInt32;CreateChecked;(TOther);Argument[0];ReturnValue;value;dfc-generated | -| System;UInt32;CreateSaturating;(TOther);Argument[0];ReturnValue;value;dfc-generated | -| System;UInt32;CreateTruncating;(TOther);Argument[0];ReturnValue;value;dfc-generated | -| System;UInt32;Max;(System.UInt32,System.UInt32);Argument[0];ReturnValue;value;dfc-generated | -| System;UInt32;Max;(System.UInt32,System.UInt32);Argument[1];ReturnValue;value;dfc-generated | -| System;UInt32;MaxNumber;(System.UInt32,System.UInt32);Argument[0];ReturnValue;value;dfc-generated | -| System;UInt32;MaxNumber;(System.UInt32,System.UInt32);Argument[1];ReturnValue;value;dfc-generated | -| System;UInt32;Min;(System.UInt32,System.UInt32);Argument[0];ReturnValue;value;dfc-generated | -| System;UInt32;Min;(System.UInt32,System.UInt32);Argument[1];ReturnValue;value;dfc-generated | -| System;UInt32;MinNumber;(System.UInt32,System.UInt32);Argument[0];ReturnValue;value;dfc-generated | -| System;UInt32;MinNumber;(System.UInt32,System.UInt32);Argument[1];ReturnValue;value;dfc-generated | -| System;UInt32;MultiplyAddEstimate;(System.UInt32,System.UInt32,System.UInt32);Argument[2];ReturnValue;taint;dfc-generated | -| System;UInt32;System.Numerics.IAdditionOperators.op_CheckedAddition;(System.UInt32,System.UInt32);Argument[0];ReturnValue;taint;dfc-generated | -| System;UInt32;System.Numerics.IAdditionOperators.op_CheckedAddition;(System.UInt32,System.UInt32);Argument[1];ReturnValue;taint;dfc-generated | | System;UInt32;ToDateTime;(System.IFormatProvider);Argument[this];ReturnValue;value;df-generated | | System;UInt32;ToDecimal;(System.IFormatProvider);Argument[this];ReturnValue;value;df-generated | | System;UInt32;ToString;(System.IFormatProvider);Argument[this];ReturnValue;value;dfc-generated | | System;UInt32;ToString;(System.String,System.IFormatProvider);Argument[this];ReturnValue;taint;dfc-generated | | System;UInt32;ToType;(System.Type,System.IFormatProvider);Argument[this];ReturnValue;value;dfc-generated | -| System;UInt64;Clamp;(System.UInt64,System.UInt64,System.UInt64);Argument[0];ReturnValue;value;dfc-generated | -| System;UInt64;Clamp;(System.UInt64,System.UInt64,System.UInt64);Argument[1];ReturnValue;value;dfc-generated | -| System;UInt64;Clamp;(System.UInt64,System.UInt64,System.UInt64);Argument[2];ReturnValue;value;dfc-generated | -| System;UInt64;CopySign;(System.UInt64,System.UInt64);Argument[0];ReturnValue;value;dfc-generated | -| System;UInt64;CreateChecked;(TOther);Argument[0];ReturnValue;value;dfc-generated | -| System;UInt64;CreateSaturating;(TOther);Argument[0];ReturnValue;value;dfc-generated | -| System;UInt64;CreateTruncating;(TOther);Argument[0];ReturnValue;value;dfc-generated | -| System;UInt64;Max;(System.UInt64,System.UInt64);Argument[0];ReturnValue;value;dfc-generated | -| System;UInt64;Max;(System.UInt64,System.UInt64);Argument[1];ReturnValue;value;dfc-generated | -| System;UInt64;MaxNumber;(System.UInt64,System.UInt64);Argument[0];ReturnValue;value;dfc-generated | -| System;UInt64;MaxNumber;(System.UInt64,System.UInt64);Argument[1];ReturnValue;value;dfc-generated | -| System;UInt64;Min;(System.UInt64,System.UInt64);Argument[0];ReturnValue;value;dfc-generated | -| System;UInt64;Min;(System.UInt64,System.UInt64);Argument[1];ReturnValue;value;dfc-generated | -| System;UInt64;MinNumber;(System.UInt64,System.UInt64);Argument[0];ReturnValue;value;dfc-generated | -| System;UInt64;MinNumber;(System.UInt64,System.UInt64);Argument[1];ReturnValue;value;dfc-generated | -| System;UInt64;MultiplyAddEstimate;(System.UInt64,System.UInt64,System.UInt64);Argument[2];ReturnValue;taint;dfc-generated | -| System;UInt64;System.Numerics.IAdditionOperators.op_CheckedAddition;(System.UInt64,System.UInt64);Argument[0];ReturnValue;taint;dfc-generated | -| System;UInt64;System.Numerics.IAdditionOperators.op_CheckedAddition;(System.UInt64,System.UInt64);Argument[1];ReturnValue;taint;dfc-generated | | System;UInt64;ToDateTime;(System.IFormatProvider);Argument[this];ReturnValue;value;df-generated | | System;UInt64;ToDecimal;(System.IFormatProvider);Argument[this];ReturnValue;value;df-generated | | System;UInt64;ToString;(System.IFormatProvider);Argument[this];ReturnValue;value;dfc-generated | @@ -24977,7 +22101,6 @@ summary | System;UInt128;MinMagnitudeNumber;(System.UInt128,System.UInt128);Argument[1];ReturnValue;value;dfc-generated | | System;UInt128;MinNumber;(System.UInt128,System.UInt128);Argument[0];ReturnValue;value;dfc-generated | | System;UInt128;MinNumber;(System.UInt128,System.UInt128);Argument[1];ReturnValue;value;dfc-generated | -| System;UInt128;MultiplyAddEstimate;(System.UInt128,System.UInt128,System.UInt128);Argument[2];ReturnValue;taint;dfc-generated | | System;UInt128;System.Numerics.IAdditionOperators.op_CheckedAddition;(System.UInt128,System.UInt128);Argument[0];ReturnValue;taint;dfc-generated | | System;UInt128;System.Numerics.IAdditionOperators.op_CheckedAddition;(System.UInt128,System.UInt128);Argument[1];ReturnValue;taint;dfc-generated | | System;UInt128;ToString;(System.String,System.IFormatProvider);Argument[this];ReturnValue;taint;dfc-generated | @@ -25024,12 +22147,10 @@ summary | System;Uri;GetComponents;(System.UriComponents,System.UriFormat);Argument[this];ReturnValue;taint;df-generated | | System;Uri;GetLeftPart;(System.UriPartial);Argument[this];ReturnValue;taint;df-generated | | System;Uri;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;df-generated | -| System;Uri;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | | System;Uri;MakeRelative;(System.Uri);Argument[0];ReturnValue;taint;df-generated | | System;Uri;MakeRelativeUri;(System.Uri);Argument[0];ReturnValue;value;df-generated | | System;Uri;ToString;();Argument[this];ReturnValue;taint;manual | | System;Uri;ToString;(System.String,System.IFormatProvider);Argument[this].SyntheticField[System.Uri._string];ReturnValue;value;dfc-generated | -| System;Uri;ToString;(System.String,System.IFormatProvider);Argument[this];ReturnValue;taint;dfc-generated | | System;Uri;TryCreate;(System.String,System.UriCreationOptions,System.Uri);Argument[0];Argument[2];taint;manual | | System;Uri;TryCreate;(System.String,System.UriKind,System.Uri);Argument[0];Argument[2];taint;manual | | System;Uri;TryCreate;(System.Uri,System.String,System.Uri);Argument[0];Argument[2];taint;manual | @@ -25114,17 +22235,7 @@ summary | System;UriParser;Resolve;(System.Uri,System.Uri,System.UriFormatException);Argument[0];ReturnValue;taint;df-generated | | System;UriParser;Resolve;(System.Uri,System.Uri,System.UriFormatException);Argument[1];ReturnValue;taint;df-generated | | System;UriTypeConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2].Property[System.Uri.OriginalString];ReturnValue;taint;dfc-generated | -| System;UriTypeConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | -| System;UriTypeConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | -| System;UriTypeConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System;UriTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | -| System;UriTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System;UriTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Property[System.Uri.OriginalString];ReturnValue;value;df-generated | | System;UriTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Property[System.Uri.OriginalString];ReturnValue;value;dfc-generated | -| System;UriTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | -| System;UriTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | -| System;UriTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System;UriTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System;ValueTuple;Create;(T1,T2,T3,T4,T5,T6,T7,T8);Argument[0];ReturnValue.Field[System.ValueTuple`8.Item1];value;manual | | System;ValueTuple;Create;(T1,T2,T3,T4,T5,T6,T7,T8);Argument[1];ReturnValue.Field[System.ValueTuple`8.Item2];value;manual | | System;ValueTuple;Create;(T1,T2,T3,T4,T5,T6,T7,T8);Argument[2];ReturnValue.Field[System.ValueTuple`8.Item3];value;manual | @@ -25243,7 +22354,6 @@ summary | System;Version;ToString;(System.String,System.IFormatProvider);Argument[this];ReturnValue;taint;dfc-generated | | System;WeakReference;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this].Property[System.WeakReference.Target];Argument[0].SyntheticField[System.Runtime.Serialization.SerializationInfo._values].Element;value;dfc-generated | | System;WeakReference;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this].Property[System.WeakReference.Target];Argument[0];taint;dfc-generated | -| System;WeakReference;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | | System;WeakReference;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this];Argument[0];taint;dfc-generated | | System;WeakReference;TryGetTarget;(T);Argument[this];Argument[0];taint;df-generated | neutral diff --git a/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.expected b/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.expected index c2a8f49d6b94..8aff8d0e1788 100644 --- a/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.expected +++ b/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.expected @@ -720,12 +720,8 @@ | Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;AddExpirationToken;(Microsoft.Extensions.Caching.Memory.ICacheEntry,Microsoft.Extensions.Primitives.IChangeToken);Argument[1];Argument[0].Property[Microsoft.Extensions.Caching.Memory.ICacheEntry.ExpirationTokens].Element;value;dfc-generated | | Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;AddExpirationToken;(Microsoft.Extensions.Caching.Memory.ICacheEntry,Microsoft.Extensions.Primitives.IChangeToken);Argument[1];ReturnValue.Property[Microsoft.Extensions.Caching.Memory.ICacheEntry.ExpirationTokens].Element;value;dfc-generated | | Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;RegisterPostEvictionCallback;(Microsoft.Extensions.Caching.Memory.ICacheEntry,Microsoft.Extensions.Caching.Memory.PostEvictionDelegate);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;RegisterPostEvictionCallback;(Microsoft.Extensions.Caching.Memory.ICacheEntry,Microsoft.Extensions.Caching.Memory.PostEvictionDelegate);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;RegisterPostEvictionCallback;(Microsoft.Extensions.Caching.Memory.ICacheEntry,Microsoft.Extensions.Caching.Memory.PostEvictionDelegate);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;RegisterPostEvictionCallback;(Microsoft.Extensions.Caching.Memory.ICacheEntry,Microsoft.Extensions.Caching.Memory.PostEvictionDelegate);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;RegisterPostEvictionCallback;(Microsoft.Extensions.Caching.Memory.ICacheEntry,Microsoft.Extensions.Caching.Memory.PostEvictionDelegate,System.Object);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;RegisterPostEvictionCallback;(Microsoft.Extensions.Caching.Memory.ICacheEntry,Microsoft.Extensions.Caching.Memory.PostEvictionDelegate,System.Object);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;RegisterPostEvictionCallback;(Microsoft.Extensions.Caching.Memory.ICacheEntry,Microsoft.Extensions.Caching.Memory.PostEvictionDelegate,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;RegisterPostEvictionCallback;(Microsoft.Extensions.Caching.Memory.ICacheEntry,Microsoft.Extensions.Caching.Memory.PostEvictionDelegate,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;SetAbsoluteExpiration;(Microsoft.Extensions.Caching.Memory.ICacheEntry,System.DateTimeOffset);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;SetAbsoluteExpiration;(Microsoft.Extensions.Caching.Memory.ICacheEntry,System.TimeSpan);Argument[0];ReturnValue;value;dfc-generated | @@ -735,12 +731,8 @@ | Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;SetSlidingExpiration;(Microsoft.Extensions.Caching.Memory.ICacheEntry,System.TimeSpan);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Caching.Memory;CacheEntryExtensions;SetValue;(Microsoft.Extensions.Caching.Memory.ICacheEntry,System.Object);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Caching.Memory;CacheExtensions;GetOrCreate;(Microsoft.Extensions.Caching.Memory.IMemoryCache,System.Object,System.Func);Argument[2].ReturnValue;ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Caching.Memory;CacheExtensions;GetOrCreate;(Microsoft.Extensions.Caching.Memory.IMemoryCache,System.Object,System.Func);Argument[2].ReturnValue;ReturnValue;value;hq-generated | -| Microsoft.Extensions.Caching.Memory;CacheExtensions;GetOrCreate;(Microsoft.Extensions.Caching.Memory.IMemoryCache,System.Object,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Caching.Memory;CacheExtensions;GetOrCreate;(Microsoft.Extensions.Caching.Memory.IMemoryCache,System.Object,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Caching.Memory;CacheExtensions;GetOrCreate;(Microsoft.Extensions.Caching.Memory.IMemoryCache,System.Object,System.Func,Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions);Argument[2].ReturnValue;ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Caching.Memory;CacheExtensions;GetOrCreate;(Microsoft.Extensions.Caching.Memory.IMemoryCache,System.Object,System.Func,Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions);Argument[2].ReturnValue;ReturnValue;value;hq-generated | -| Microsoft.Extensions.Caching.Memory;CacheExtensions;GetOrCreate;(Microsoft.Extensions.Caching.Memory.IMemoryCache,System.Object,System.Func,Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Caching.Memory;CacheExtensions;GetOrCreate;(Microsoft.Extensions.Caching.Memory.IMemoryCache,System.Object,System.Func,Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Caching.Memory;CacheExtensions;GetOrCreateAsync;(Microsoft.Extensions.Caching.Memory.IMemoryCache,System.Object,System.Func>);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Caching.Memory;CacheExtensions;GetOrCreateAsync;(Microsoft.Extensions.Caching.Memory.IMemoryCache,System.Object,System.Func>,Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | @@ -758,12 +750,8 @@ | Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;AddExpirationToken;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,Microsoft.Extensions.Primitives.IChangeToken);Argument[1];Argument[0].Property[Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions.ExpirationTokens].Element;value;dfc-generated | | Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;AddExpirationToken;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,Microsoft.Extensions.Primitives.IChangeToken);Argument[1];ReturnValue.Property[Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions.ExpirationTokens].Element;value;dfc-generated | | Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;RegisterPostEvictionCallback;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,Microsoft.Extensions.Caching.Memory.PostEvictionDelegate);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;RegisterPostEvictionCallback;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,Microsoft.Extensions.Caching.Memory.PostEvictionDelegate);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;RegisterPostEvictionCallback;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,Microsoft.Extensions.Caching.Memory.PostEvictionDelegate);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;RegisterPostEvictionCallback;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,Microsoft.Extensions.Caching.Memory.PostEvictionDelegate);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;RegisterPostEvictionCallback;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,Microsoft.Extensions.Caching.Memory.PostEvictionDelegate,System.Object);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;RegisterPostEvictionCallback;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,Microsoft.Extensions.Caching.Memory.PostEvictionDelegate,System.Object);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;RegisterPostEvictionCallback;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,Microsoft.Extensions.Caching.Memory.PostEvictionDelegate,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;RegisterPostEvictionCallback;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,Microsoft.Extensions.Caching.Memory.PostEvictionDelegate,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;SetAbsoluteExpiration;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,System.DateTimeOffset);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Caching.Memory;MemoryCacheEntryExtensions;SetAbsoluteExpiration;(Microsoft.Extensions.Caching.Memory.MemoryCacheEntryOptions,System.TimeSpan);Argument[0];ReturnValue;value;dfc-generated | @@ -792,7 +780,6 @@ | Microsoft.Extensions.Configuration;ChainedConfigurationProvider;TryGet;(System.String,System.String);Argument[this].SyntheticField[Microsoft.Extensions.Configuration.ChainedConfigurationProvider._config];Argument[1];taint;dfc-generated | | Microsoft.Extensions.Configuration;ChainedConfigurationProvider;get_Configuration;();Argument[this].SyntheticField[Microsoft.Extensions.Configuration.ChainedConfigurationProvider._config];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Configuration;CommandLineConfigurationExtensions;AddCommandLine;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);Argument[1];Argument[0];taint;manual | -| Microsoft.Extensions.Configuration;CommandLineConfigurationExtensions;AddCommandLine;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | Microsoft.Extensions.Configuration;CommandLineConfigurationExtensions;AddCommandLine;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);Argument[1];ReturnValue;taint;manual | | Microsoft.Extensions.Configuration;CommandLineConfigurationExtensions;AddCommandLine;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String[]);Argument[1];Argument[0];taint;manual | | Microsoft.Extensions.Configuration;CommandLineConfigurationExtensions;AddCommandLine;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String[]);Argument[1];ReturnValue;taint;manual | @@ -804,18 +791,12 @@ | Microsoft.Extensions.Configuration;ConfigurationBinder;Get;(Microsoft.Extensions.Configuration.IConfiguration,System.Type);Argument[0].Property[Microsoft.Extensions.Configuration.IConfigurationSection.Value];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Configuration;ConfigurationBinder;Get;(Microsoft.Extensions.Configuration.IConfiguration,System.Type);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Configuration;ConfigurationBinder;Get;(Microsoft.Extensions.Configuration.IConfiguration,System.Type,System.Action);Argument[0].Property[Microsoft.Extensions.Configuration.IConfigurationSection.Value];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Configuration;ConfigurationBinder;Get;(Microsoft.Extensions.Configuration.IConfiguration,System.Type,System.Action);Argument[0].Property[Microsoft.Extensions.Configuration.IConfigurationSection.Value];ReturnValue;value;hq-generated | | Microsoft.Extensions.Configuration;ConfigurationBinder;Get;(Microsoft.Extensions.Configuration.IConfiguration,System.Type,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Configuration;ConfigurationBinder;Get;(Microsoft.Extensions.Configuration.IConfiguration,System.Type,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Configuration;ConfigurationBinder;Get;(Microsoft.Extensions.Configuration.IConfiguration,System.Type,System.Action);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Configuration;ConfigurationBinder;Get;(Microsoft.Extensions.Configuration.IConfiguration,System.Type,System.Action);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Configuration;ConfigurationBinder;Get;(Microsoft.Extensions.Configuration.IConfiguration);Argument[0].Property[Microsoft.Extensions.Configuration.IConfigurationSection.Value];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Configuration;ConfigurationBinder;Get;(Microsoft.Extensions.Configuration.IConfiguration);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Configuration;ConfigurationBinder;Get;(Microsoft.Extensions.Configuration.IConfiguration,System.Action);Argument[0].Property[Microsoft.Extensions.Configuration.IConfigurationSection.Value];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Configuration;ConfigurationBinder;Get;(Microsoft.Extensions.Configuration.IConfiguration,System.Action);Argument[0].Property[Microsoft.Extensions.Configuration.IConfigurationSection.Value];ReturnValue;value;hq-generated | | Microsoft.Extensions.Configuration;ConfigurationBinder;Get;(Microsoft.Extensions.Configuration.IConfiguration,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Configuration;ConfigurationBinder;Get;(Microsoft.Extensions.Configuration.IConfiguration,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Configuration;ConfigurationBinder;Get;(Microsoft.Extensions.Configuration.IConfiguration,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Configuration;ConfigurationBinder;Get;(Microsoft.Extensions.Configuration.IConfiguration,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Configuration;ConfigurationBinder;GetValue;(Microsoft.Extensions.Configuration.IConfiguration,System.Type,System.String,System.Object);Argument[3];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Configuration;ConfigurationBinder;GetValue;(Microsoft.Extensions.Configuration.IConfiguration,System.String,T);Argument[2];ReturnValue;value;dfc-generated | @@ -827,8 +808,6 @@ | Microsoft.Extensions.Configuration;ConfigurationDebugViewContext;ConfigurationDebugViewContext;(System.String,System.String,System.String,Microsoft.Extensions.Configuration.IConfigurationProvider);Argument[2];Argument[this].Property[Microsoft.Extensions.Configuration.ConfigurationDebugViewContext.Value];value;dfc-generated | | Microsoft.Extensions.Configuration;ConfigurationDebugViewContext;ConfigurationDebugViewContext;(System.String,System.String,System.String,Microsoft.Extensions.Configuration.IConfigurationProvider);Argument[3];Argument[this].Property[Microsoft.Extensions.Configuration.ConfigurationDebugViewContext.ConfigurationProvider];value;dfc-generated | | Microsoft.Extensions.Configuration;ConfigurationExtensions;Add;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Configuration;ConfigurationExtensions;Add;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Configuration;ConfigurationExtensions;Add;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Configuration;ConfigurationExtensions;Add;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Configuration;ConfigurationKeyNameAttribute;ConfigurationKeyNameAttribute;(System.String);Argument[0];Argument[this].Property[Microsoft.Extensions.Configuration.ConfigurationKeyNameAttribute.Name];value;dfc-generated | | Microsoft.Extensions.Configuration;ConfigurationManager;Add;(Microsoft.Extensions.Configuration.IConfigurationSource);Argument[0];Argument[this].SyntheticField[Microsoft.Extensions.Configuration.ConfigurationManager._sources].Element;value;dfc-generated | @@ -839,29 +818,21 @@ | Microsoft.Extensions.Configuration;ConfigurationPath;GetParentPath;(System.String);Argument[0];ReturnValue;taint;dfc-generated | | Microsoft.Extensions.Configuration;ConfigurationPath;GetSectionKey;(System.String);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Configuration;ConfigurationRoot;ConfigurationRoot;(System.Collections.Generic.IList);Argument[0];Argument[this].SyntheticField[Microsoft.Extensions.Configuration.ConfigurationRoot._providers];value;dfc-generated | -| Microsoft.Extensions.Configuration;ConfigurationRoot;get_Providers;();Argument[this].SyntheticField[Microsoft.Extensions.Configuration.ConfigurationRoot._providers];ReturnValue;value;df-generated | | Microsoft.Extensions.Configuration;ConfigurationRoot;get_Providers;();Argument[this].SyntheticField[Microsoft.Extensions.Configuration.ConfigurationRoot._providers];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Configuration;ConfigurationRootExtensions;GetDebugView;(Microsoft.Extensions.Configuration.IConfigurationRoot);Argument[0].Property[Microsoft.Extensions.Configuration.IConfigurationRoot.Providers].Element;ReturnValue;taint;dfc-generated | | Microsoft.Extensions.Configuration;ConfigurationRootExtensions;GetDebugView;(Microsoft.Extensions.Configuration.IConfigurationRoot,System.Func);Argument[0].Property[Microsoft.Extensions.Configuration.IConfigurationRoot.Providers].Element;ReturnValue;taint;dfc-generated | -| Microsoft.Extensions.Configuration;ConfigurationRootExtensions;GetDebugView;(Microsoft.Extensions.Configuration.IConfigurationRoot,System.Func);Argument[0].Property[Microsoft.Extensions.Configuration.IConfigurationRoot.Providers].Element;ReturnValue;taint;hq-generated | | Microsoft.Extensions.Configuration;ConfigurationRootExtensions;GetDebugView;(Microsoft.Extensions.Configuration.IConfigurationRoot,System.Func);Argument[1].ReturnValue;ReturnValue;taint;dfc-generated | -| Microsoft.Extensions.Configuration;ConfigurationRootExtensions;GetDebugView;(Microsoft.Extensions.Configuration.IConfigurationRoot,System.Func);Argument[1].ReturnValue;ReturnValue;taint;hq-generated | -| Microsoft.Extensions.Configuration;ConfigurationRootExtensions;GetDebugView;(Microsoft.Extensions.Configuration.IConfigurationRoot,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Configuration;ConfigurationRootExtensions;GetDebugView;(Microsoft.Extensions.Configuration.IConfigurationRoot,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Configuration;ConfigurationSection;ConfigurationSection;(Microsoft.Extensions.Configuration.IConfigurationRoot,System.String);Argument[1];Argument[this].SyntheticField[Microsoft.Extensions.Configuration.ConfigurationSection._path];value;dfc-generated | | Microsoft.Extensions.Configuration;ConfigurationSection;get_Path;();Argument[this].SyntheticField[Microsoft.Extensions.Configuration.ConfigurationSection._path];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Configuration;EnvironmentVariablesExtensions;AddEnvironmentVariables;(Microsoft.Extensions.Configuration.IConfigurationBuilder);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Configuration;EnvironmentVariablesExtensions;AddEnvironmentVariables;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Configuration;EnvironmentVariablesExtensions;AddEnvironmentVariables;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Configuration;EnvironmentVariablesExtensions;AddEnvironmentVariables;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Configuration;EnvironmentVariablesExtensions;AddEnvironmentVariables;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Configuration;EnvironmentVariablesExtensions;AddEnvironmentVariables;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Configuration;FileConfigurationExtensions;GetFileLoadExceptionHandler;(Microsoft.Extensions.Configuration.IConfigurationBuilder);Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;FileConfigurationExtensions;GetFileProvider;(Microsoft.Extensions.Configuration.IConfigurationBuilder);Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Configuration;FileConfigurationExtensions;SetBasePath;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Configuration;FileConfigurationExtensions;SetFileLoadExceptionHandler;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Configuration;FileConfigurationExtensions;SetFileLoadExceptionHandler;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Configuration;FileConfigurationExtensions;SetFileLoadExceptionHandler;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Configuration;FileConfigurationExtensions;SetFileLoadExceptionHandler;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Configuration;FileConfigurationExtensions;SetFileProvider;(Microsoft.Extensions.Configuration.IConfigurationBuilder,Microsoft.Extensions.FileProviders.IFileProvider);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Configuration;FileConfigurationProvider;FileConfigurationProvider;(Microsoft.Extensions.Configuration.FileConfigurationSource);Argument[0];Argument[this].Property[Microsoft.Extensions.Configuration.FileConfigurationProvider.Source];value;dfc-generated | @@ -881,8 +852,6 @@ | Microsoft.Extensions.Configuration;IConfigurationSource;Build;(Microsoft.Extensions.Configuration.IConfigurationBuilder);Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Configuration;IniConfigurationExtensions;AddIniFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,Microsoft.Extensions.FileProviders.IFileProvider,System.String,System.Boolean,System.Boolean);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Configuration;IniConfigurationExtensions;AddIniFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Configuration;IniConfigurationExtensions;AddIniFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Configuration;IniConfigurationExtensions;AddIniFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Configuration;IniConfigurationExtensions;AddIniFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Configuration;IniConfigurationExtensions;AddIniFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Configuration;IniConfigurationExtensions;AddIniFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String,System.Boolean);Argument[0];ReturnValue;value;dfc-generated | @@ -890,8 +859,6 @@ | Microsoft.Extensions.Configuration;IniConfigurationExtensions;AddIniStream;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.IO.Stream);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Configuration;JsonConfigurationExtensions;AddJsonFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,Microsoft.Extensions.FileProviders.IFileProvider,System.String,System.Boolean,System.Boolean);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Configuration;JsonConfigurationExtensions;AddJsonFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Configuration;JsonConfigurationExtensions;AddJsonFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Configuration;JsonConfigurationExtensions;AddJsonFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Configuration;JsonConfigurationExtensions;AddJsonFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Configuration;JsonConfigurationExtensions;AddJsonFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Configuration;JsonConfigurationExtensions;AddJsonFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String,System.Boolean);Argument[0];ReturnValue;value;dfc-generated | @@ -912,8 +879,6 @@ | Microsoft.Extensions.Configuration;UserSecretsConfigurationExtensions;AddUserSecrets;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Boolean,System.Boolean);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Configuration;XmlConfigurationExtensions;AddXmlFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,Microsoft.Extensions.FileProviders.IFileProvider,System.String,System.Boolean,System.Boolean);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Configuration;XmlConfigurationExtensions;AddXmlFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Configuration;XmlConfigurationExtensions;AddXmlFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Configuration;XmlConfigurationExtensions;AddXmlFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Configuration;XmlConfigurationExtensions;AddXmlFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Configuration;XmlConfigurationExtensions;AddXmlFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Configuration;XmlConfigurationExtensions;AddXmlFile;(Microsoft.Extensions.Configuration.IConfigurationBuilder,System.String,System.Boolean);Argument[0];ReturnValue;value;dfc-generated | @@ -993,73 +958,43 @@ | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;AddAsKeyed;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,Microsoft.Extensions.DependencyInjection.ServiceLifetime);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;AddDefaultLogger;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;AddHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;AddHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;AddHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;AddHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;AddHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;AddHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;AddHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;AddHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;AddHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;AddLogger;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func,System.Boolean);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;AddLogger;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func,System.Boolean);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;AddLogger;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func,System.Boolean);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;AddLogger;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func,System.Boolean);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;AddLogger;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Boolean);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;AddTypedClient;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;AddTypedClient;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;AddTypedClient;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;AddTypedClient;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;AddTypedClient;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;AddTypedClient;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;AddTypedClient;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;AddTypedClient;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;AddTypedClient;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;AddTypedClient;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigureAdditionalHttpMessageHandlers;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action,System.IServiceProvider>);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigureAdditionalHttpMessageHandlers;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action,System.IServiceProvider>);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigureAdditionalHttpMessageHandlers;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action,System.IServiceProvider>);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigureAdditionalHttpMessageHandlers;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action,System.IServiceProvider>);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigureHttpClient;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigureHttpClient;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigureHttpClient;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigureHttpClient;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigureHttpClient;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigureHttpClient;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigureHttpClient;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigureHttpClient;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigureHttpMessageHandlerBuilder;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigureHttpMessageHandlerBuilder;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigureHttpMessageHandlerBuilder;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigureHttpMessageHandlerBuilder;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigurePrimaryHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigurePrimaryHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigurePrimaryHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigurePrimaryHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigurePrimaryHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigurePrimaryHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigurePrimaryHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigurePrimaryHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigurePrimaryHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigurePrimaryHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigurePrimaryHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigurePrimaryHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;ConfigurePrimaryHttpMessageHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;RedactLoggedHeaders;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Collections.Generic.IEnumerable);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;RedactLoggedHeaders;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;RedactLoggedHeaders;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;RedactLoggedHeaders;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;RedactLoggedHeaders;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;RemoveAllLoggers;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;RemoveAsKeyed;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;SetHandlerLifetime;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.TimeSpan);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;UseSocketsHttpHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;UseSocketsHttpHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;UseSocketsHttpHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;UseSocketsHttpHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;UseSocketsHttpHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;UseSocketsHttpHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;UseSocketsHttpHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientBuilderExtensions;UseSocketsHttpHandler;(Microsoft.Extensions.DependencyInjection.IHttpClientBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;AddHttpClient;(Microsoft.Extensions.DependencyInjection.IServiceCollection);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;AddHttpClient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String);Argument[0].Element;ReturnValue;taint;df-generated | @@ -1085,8 +1020,6 @@ | Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;AddHttpClient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,System.Action);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;AddHttpClient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,System.Action);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;ConfigureHttpClientDefaults;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;ConfigureHttpClientDefaults;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;ConfigureHttpClientDefaults;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;HttpClientFactoryServiceCollectionExtensions;ConfigureHttpClientDefaults;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;HttpJsonServiceExtensions;ConfigureHttpJsonOptions;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;HttpLoggingServicesExtensions;AddHttpLogging;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | @@ -1102,23 +1035,15 @@ | Microsoft.Extensions.DependencyInjection;LocalizationServiceCollectionExtensions;AddLocalization;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;LoggingServiceCollectionExtensions;AddLogging;(Microsoft.Extensions.DependencyInjection.IServiceCollection);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;LoggingServiceCollectionExtensions;AddLogging;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;LoggingServiceCollectionExtensions;AddLogging;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;LoggingServiceCollectionExtensions;AddLogging;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;LoggingServiceCollectionExtensions;AddLogging;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;MemoryCacheServiceCollectionExtensions;AddDistributedMemoryCache;(Microsoft.Extensions.DependencyInjection.IServiceCollection);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;MemoryCacheServiceCollectionExtensions;AddDistributedMemoryCache;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;MemoryCacheServiceCollectionExtensions;AddDistributedMemoryCache;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;MemoryCacheServiceCollectionExtensions;AddDistributedMemoryCache;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;MemoryCacheServiceCollectionExtensions;AddDistributedMemoryCache;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;MemoryCacheServiceCollectionExtensions;AddMemoryCache;(Microsoft.Extensions.DependencyInjection.IServiceCollection);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;MemoryCacheServiceCollectionExtensions;AddMemoryCache;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;MemoryCacheServiceCollectionExtensions;AddMemoryCache;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;MemoryCacheServiceCollectionExtensions;AddMemoryCache;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;MemoryCacheServiceCollectionExtensions;AddMemoryCache;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;MetricsServiceExtensions;AddMetrics;(Microsoft.Extensions.DependencyInjection.IServiceCollection);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;MetricsServiceExtensions;AddMetrics;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;MetricsServiceExtensions;AddMetrics;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;MetricsServiceExtensions;AddMetrics;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;MetricsServiceExtensions;AddMetrics;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;MvcCoreMvcBuilderExtensions;AddFormatterMappings;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;MvcCoreMvcBuilderExtensions;AddJsonOptions;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | @@ -1185,52 +1110,32 @@ | Microsoft.Extensions.DependencyInjection;ObjectFactory;BeginInvoke;(System.IServiceProvider,System.Object[],System.AsyncCallback,System.Object);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;OptionsBuilderConfigurationExtensions;Bind;(Microsoft.Extensions.Options.OptionsBuilder,Microsoft.Extensions.Configuration.IConfiguration);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;OptionsBuilderConfigurationExtensions;Bind;(Microsoft.Extensions.Options.OptionsBuilder,Microsoft.Extensions.Configuration.IConfiguration,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;OptionsBuilderConfigurationExtensions;Bind;(Microsoft.Extensions.Options.OptionsBuilder,Microsoft.Extensions.Configuration.IConfiguration,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;OptionsBuilderConfigurationExtensions;Bind;(Microsoft.Extensions.Options.OptionsBuilder,Microsoft.Extensions.Configuration.IConfiguration,System.Action);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;OptionsBuilderConfigurationExtensions;Bind;(Microsoft.Extensions.Options.OptionsBuilder,Microsoft.Extensions.Configuration.IConfiguration,System.Action);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;OptionsBuilderConfigurationExtensions;BindConfiguration;(Microsoft.Extensions.Options.OptionsBuilder,System.String,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;OptionsBuilderConfigurationExtensions;BindConfiguration;(Microsoft.Extensions.Options.OptionsBuilder,System.String,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;OptionsBuilderConfigurationExtensions;BindConfiguration;(Microsoft.Extensions.Options.OptionsBuilder,System.String,System.Action);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;OptionsBuilderConfigurationExtensions;BindConfiguration;(Microsoft.Extensions.Options.OptionsBuilder,System.String,System.Action);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;OptionsBuilderDataAnnotationsExtensions;ValidateDataAnnotations;(Microsoft.Extensions.Options.OptionsBuilder);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;OptionsBuilderExtensions;ValidateOnStart;(Microsoft.Extensions.Options.OptionsBuilder);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;OptionsConfigurationServiceCollectionExtensions;Configure;(Microsoft.Extensions.DependencyInjection.IServiceCollection,Microsoft.Extensions.Configuration.IConfiguration);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;OptionsConfigurationServiceCollectionExtensions;Configure;(Microsoft.Extensions.DependencyInjection.IServiceCollection,Microsoft.Extensions.Configuration.IConfiguration,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;OptionsConfigurationServiceCollectionExtensions;Configure;(Microsoft.Extensions.DependencyInjection.IServiceCollection,Microsoft.Extensions.Configuration.IConfiguration,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;OptionsConfigurationServiceCollectionExtensions;Configure;(Microsoft.Extensions.DependencyInjection.IServiceCollection,Microsoft.Extensions.Configuration.IConfiguration,System.Action);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;OptionsConfigurationServiceCollectionExtensions;Configure;(Microsoft.Extensions.DependencyInjection.IServiceCollection,Microsoft.Extensions.Configuration.IConfiguration,System.Action);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;OptionsConfigurationServiceCollectionExtensions;Configure;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,Microsoft.Extensions.Configuration.IConfiguration);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;OptionsConfigurationServiceCollectionExtensions;Configure;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,Microsoft.Extensions.Configuration.IConfiguration,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;OptionsConfigurationServiceCollectionExtensions;Configure;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,Microsoft.Extensions.Configuration.IConfiguration,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;OptionsConfigurationServiceCollectionExtensions;Configure;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,Microsoft.Extensions.Configuration.IConfiguration,System.Action);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;OptionsConfigurationServiceCollectionExtensions;Configure;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,Microsoft.Extensions.Configuration.IConfiguration,System.Action);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;AddOptions;(Microsoft.Extensions.DependencyInjection.IServiceCollection);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;Configure;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;Configure;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;Configure;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;Configure;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;Configure;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;Configure;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;Configure;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,System.Action);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;Configure;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,System.Action);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;ConfigureAll;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;ConfigureAll;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;ConfigureAll;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;ConfigureAll;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;ConfigureOptions;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;ConfigureOptions;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;ConfigureOptions;(Microsoft.Extensions.DependencyInjection.IServiceCollection);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;PostConfigure;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;PostConfigure;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;PostConfigure;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;PostConfigure;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;PostConfigure;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;PostConfigure;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;PostConfigure;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,System.Action);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;PostConfigure;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String,System.Action);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;PostConfigureAll;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;PostConfigureAll;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;PostConfigureAll;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;OptionsServiceCollectionExtensions;PostConfigureAll;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;OutputCacheConventionBuilderExtensions;CacheOutput;(TBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;OutputCacheConventionBuilderExtensions;CacheOutput;(TBuilder,System.Action,System.Boolean);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | @@ -1253,108 +1158,70 @@ | Microsoft.Extensions.DependencyInjection;ServiceCollectionContainerBuilderExtensions;BuildServiceProvider;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Boolean);Argument[0].Element;ReturnValue;taint;df-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionHostedServiceExtensions;AddHostedService;(Microsoft.Extensions.DependencyInjection.IServiceCollection);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionHostedServiceExtensions;AddHostedService;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionHostedServiceExtensions;AddHostedService;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionHostedServiceExtensions;AddHostedService;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionHostedServiceExtensions;AddHostedService;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Object);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Object,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Object,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Object,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Object,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Object,System.Type);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Object);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Object,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Object,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Object,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Object,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Object,System.Object);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Object,System.Type);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,TService);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Object);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Object,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Object,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Object,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Object,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Object,System.Type);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddKeyedTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Object,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Type);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddScoped;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Object);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Type);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddSingleton;(Microsoft.Extensions.DependencyInjection.IServiceCollection,TService);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Type,System.Type);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;ServiceCollectionServiceExtensions;AddTransient;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceDescriptor;Describe;(System.Type,System.Func,Microsoft.Extensions.DependencyInjection.ServiceLifetime);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;ServiceDescriptor;DescribeKeyed;(System.Type,System.Object,System.Func,Microsoft.Extensions.DependencyInjection.ServiceLifetime);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | @@ -1391,8 +1258,6 @@ | Microsoft.Extensions.DependencyInjection;SignalRDependencyInjectionExtensions;AddSignalR;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;SocketsHttpHandlerBuilderExtensions;Configure;(Microsoft.Extensions.DependencyInjection.ISocketsHttpHandlerBuilder,Microsoft.Extensions.Configuration.IConfiguration);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.DependencyInjection;SocketsHttpHandlerBuilderExtensions;Configure;(Microsoft.Extensions.DependencyInjection.ISocketsHttpHandlerBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.DependencyInjection;SocketsHttpHandlerBuilderExtensions;Configure;(Microsoft.Extensions.DependencyInjection.ISocketsHttpHandlerBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.DependencyInjection;SocketsHttpHandlerBuilderExtensions;Configure;(Microsoft.Extensions.DependencyInjection.ISocketsHttpHandlerBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.DependencyInjection;SocketsHttpHandlerBuilderExtensions;Configure;(Microsoft.Extensions.DependencyInjection.ISocketsHttpHandlerBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;TagHelperServicesExtensions;AddCacheTagHelperLimits;(Microsoft.Extensions.DependencyInjection.IMvcBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.DependencyInjection;TagHelperServicesExtensions;AddCacheTagHelperLimits;(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | @@ -1444,9 +1309,7 @@ | Microsoft.Extensions.FileSystemGlobbing.Abstractions;DirectoryInfoBase;EnumerateFileSystemInfos;();Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.FileSystemGlobbing.Abstractions;DirectoryInfoBase;GetDirectory;(System.String);Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.FileSystemGlobbing.Abstractions;FileInfoWrapper;FileInfoWrapper;(System.IO.FileInfo);Argument[0];Argument[this].SyntheticField[Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileInfoWrapper._fileInfo];value;dfc-generated | -| Microsoft.Extensions.FileSystemGlobbing.Abstractions;FileInfoWrapper;get_FullName;();Argument[this].SyntheticField[Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileInfoWrapper._fileInfo].Property[System.IO.FileSystemInfo.FullName];ReturnValue;value;df-generated | | Microsoft.Extensions.FileSystemGlobbing.Abstractions;FileInfoWrapper;get_FullName;();Argument[this].SyntheticField[Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileInfoWrapper._fileInfo].Property[System.IO.FileSystemInfo.FullName];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.FileSystemGlobbing.Abstractions;FileInfoWrapper;get_Name;();Argument[this].SyntheticField[Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileInfoWrapper._fileInfo].Property[System.IO.FileInfo.Name];ReturnValue;value;df-generated | | Microsoft.Extensions.FileSystemGlobbing.Abstractions;FileInfoWrapper;get_Name;();Argument[this].SyntheticField[Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileInfoWrapper._fileInfo].Property[System.IO.FileInfo.Name];ReturnValue;value;dfc-generated | | Microsoft.Extensions.FileSystemGlobbing.Abstractions;FileSystemInfoBase;get_FullName;();Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.FileSystemGlobbing.Abstractions;FileSystemInfoBase;get_Name;();Argument[this];ReturnValue;taint;df-generated | @@ -1466,9 +1329,7 @@ | Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts;PatternContextRagged;CalculateStem;(Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileInfoBase);Argument[0].Property[Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileSystemInfoBase.Name];ReturnValue;value;dfc-generated | | Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts;PatternContextRagged;CalculateStem;(Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileInfoBase);Argument[this].Field[Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContext`1.Frame].Property[Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContextRagged+FrameData.Stem];ReturnValue;taint;dfc-generated | | Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts;PatternContextRagged;PatternContextRagged;(Microsoft.Extensions.FileSystemGlobbing.Internal.IRaggedPattern);Argument[0];Argument[this].Property[Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContextRagged.Pattern];value;dfc-generated | -| Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts;PatternContextRagged;PushDirectory;(Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase);Argument[this].Property[Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContextRagged.Pattern].Property[Microsoft.Extensions.FileSystemGlobbing.Internal.IRaggedPattern.EndsWith];Argument[this].Field[Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContext`1.Frame].Field[Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContextRagged+FrameData.SegmentGroup];value;df-generated | | Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts;PatternContextRagged;PushDirectory;(Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase);Argument[this].Property[Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContextRagged.Pattern].Property[Microsoft.Extensions.FileSystemGlobbing.Internal.IRaggedPattern.EndsWith];Argument[this].Field[Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContext`1.Frame].Field[Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContextRagged+FrameData.SegmentGroup];value;dfc-generated | -| Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts;PatternContextRagged;PushDirectory;(Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase);Argument[this].Property[Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContextRagged.Pattern].Property[Microsoft.Extensions.FileSystemGlobbing.Internal.IRaggedPattern.StartsWith];Argument[this].Field[Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContext`1.Frame].Field[Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContextRagged+FrameData.SegmentGroup];value;df-generated | | Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts;PatternContextRagged;PushDirectory;(Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase);Argument[this].Property[Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContextRagged.Pattern].Property[Microsoft.Extensions.FileSystemGlobbing.Internal.IRaggedPattern.StartsWith];Argument[this].Field[Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContext`1.Frame].Field[Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContextRagged+FrameData.SegmentGroup];value;dfc-generated | | Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts;PatternContextRagged;Test;(Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileInfoBase);Argument[0].Property[Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileSystemInfoBase.Name];ReturnValue.Property[Microsoft.Extensions.FileSystemGlobbing.Internal.PatternTestResult.Stem];value;dfc-generated | | Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts;PatternContextRagged;Test;(Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileInfoBase);Argument[this].Field[Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContext`1.Frame].Property[Microsoft.Extensions.FileSystemGlobbing.Internal.PatternContexts.PatternContextRagged+FrameData.Stem];ReturnValue.Property[Microsoft.Extensions.FileSystemGlobbing.Internal.PatternTestResult.Stem];taint;dfc-generated | @@ -1504,56 +1365,32 @@ | Microsoft.Extensions.Hosting;HostApplicationBuilder;get_Configuration;();Argument[this].Property[Microsoft.Extensions.Hosting.HostApplicationBuilder.Configuration];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Hosting;HostBuilderContext;HostBuilderContext;(System.Collections.Generic.IDictionary);Argument[0];Argument[this].Property[Microsoft.Extensions.Hosting.HostBuilderContext.Properties];value;dfc-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureAppConfiguration;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureAppConfiguration;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureAppConfiguration;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureAppConfiguration;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureContainer;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureContainer;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureContainer;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureContainer;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureDefaults;(Microsoft.Extensions.Hosting.IHostBuilder,System.String[]);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureHostOptions;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureHostOptions;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureHostOptions;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureHostOptions;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureHostOptions;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureHostOptions;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureHostOptions;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureHostOptions;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureLogging;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureLogging;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureLogging;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureLogging;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureLogging;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureLogging;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureLogging;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureLogging;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureMetrics;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureMetrics;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureMetrics;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureMetrics;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureMetrics;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureMetrics;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureMetrics;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureMetrics;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureServices;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureServices;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureServices;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;ConfigureServices;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;RunConsoleAsync;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;UseConsoleLifetime;(Microsoft.Extensions.Hosting.IHostBuilder);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;UseConsoleLifetime;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;UseConsoleLifetime;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;UseConsoleLifetime;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;UseConsoleLifetime;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;UseContentRoot;(Microsoft.Extensions.Hosting.IHostBuilder,System.String);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;UseDefaultServiceProvider;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;UseDefaultServiceProvider;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;UseDefaultServiceProvider;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;UseDefaultServiceProvider;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;UseDefaultServiceProvider;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;UseDefaultServiceProvider;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;UseDefaultServiceProvider;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;UseDefaultServiceProvider;(Microsoft.Extensions.Hosting.IHostBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Hosting;HostingHostBuilderExtensions;UseEnvironment;(Microsoft.Extensions.Hosting.IHostBuilder,System.String);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Hosting;IApplicationLifetime;get_ApplicationStarted;();Argument[this];ReturnValue;taint;df-generated | @@ -1568,27 +1405,17 @@ | Microsoft.Extensions.Hosting;IHostApplicationLifetime;get_ApplicationStarted;();Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Hosting;IHostApplicationLifetime;get_ApplicationStopped;();Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Hosting;IHostApplicationLifetime;get_ApplicationStopping;();Argument[this];ReturnValue;taint;df-generated | -| Microsoft.Extensions.Hosting;IHostBuilder;ConfigureAppConfiguration;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Hosting;IHostBuilder;ConfigureAppConfiguration;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Hosting;IHostBuilder;ConfigureAppConfiguration;(System.Action);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Hosting;IHostBuilder;ConfigureAppConfiguration;(System.Action);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Hosting;IHostBuilder;ConfigureContainer;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Hosting;IHostBuilder;ConfigureContainer;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Hosting;IHostBuilder;ConfigureContainer;(System.Action);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Hosting;IHostBuilder;ConfigureContainer;(System.Action);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Hosting;IHostBuilder;ConfigureHostConfiguration;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Hosting;IHostBuilder;ConfigureHostConfiguration;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Hosting;IHostBuilder;ConfigureHostConfiguration;(System.Action);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Hosting;IHostBuilder;ConfigureHostConfiguration;(System.Action);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Hosting;IHostBuilder;ConfigureServices;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Hosting;IHostBuilder;ConfigureServices;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Hosting;IHostBuilder;ConfigureServices;(System.Action);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Hosting;IHostBuilder;ConfigureServices;(System.Action);Argument[this];ReturnValue;value;hq-generated | | Microsoft.Extensions.Hosting;IHostBuilder;UseServiceProviderFactory;(Microsoft.Extensions.DependencyInjection.IServiceProviderFactory);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Hosting;IHostBuilder;UseServiceProviderFactory;(System.Func>);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Hosting;IHostBuilder;UseServiceProviderFactory;(System.Func>);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Hosting;IHostBuilder;UseServiceProviderFactory;(System.Func>);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Hosting;IHostBuilder;UseServiceProviderFactory;(System.Func>);Argument[this];ReturnValue;value;hq-generated | | Microsoft.Extensions.Hosting;IHostLifetime;WaitForStartAsync;(System.Threading.CancellationToken);Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Http.Logging;LoggingHttpMessageHandler;LoggingHttpMessageHandler;(Microsoft.Extensions.Logging.ILogger);Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Http.Logging;LoggingHttpMessageHandler;LoggingHttpMessageHandler;(Microsoft.Extensions.Logging.ILogger,Microsoft.Extensions.Http.HttpClientFactoryOptions);Argument[0];Argument[this];taint;df-generated | @@ -1603,17 +1430,11 @@ | Microsoft.Extensions.Http;IHttpMessageHandlerBuilderFilter;Configure;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Localization;IResourceNamesCache;GetOrAdd;(System.String,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging.Abstractions;LogEntry;LogEntry;(Microsoft.Extensions.Logging.LogLevel,System.String,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[1];Argument[this].Property[Microsoft.Extensions.Logging.Abstractions.LogEntry`1.Category];value;dfc-generated | -| Microsoft.Extensions.Logging.Abstractions;LogEntry;LogEntry;(Microsoft.Extensions.Logging.LogLevel,System.String,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[1];Argument[this].Property[Microsoft.Extensions.Logging.Abstractions.LogEntry`1.Category];value;hq-generated | | Microsoft.Extensions.Logging.Abstractions;LogEntry;LogEntry;(Microsoft.Extensions.Logging.LogLevel,System.String,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[2];Argument[this].Property[Microsoft.Extensions.Logging.Abstractions.LogEntry`1.EventId];value;dfc-generated | -| Microsoft.Extensions.Logging.Abstractions;LogEntry;LogEntry;(Microsoft.Extensions.Logging.LogLevel,System.String,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[2];Argument[this].Property[Microsoft.Extensions.Logging.Abstractions.LogEntry`1.EventId];value;hq-generated | | Microsoft.Extensions.Logging.Abstractions;LogEntry;LogEntry;(Microsoft.Extensions.Logging.LogLevel,System.String,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[3];Argument[this].Property[Microsoft.Extensions.Logging.Abstractions.LogEntry`1.State];value;dfc-generated | -| Microsoft.Extensions.Logging.Abstractions;LogEntry;LogEntry;(Microsoft.Extensions.Logging.LogLevel,System.String,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[3];Argument[this].Property[Microsoft.Extensions.Logging.Abstractions.LogEntry`1.State];value;hq-generated | | Microsoft.Extensions.Logging.Abstractions;LogEntry;LogEntry;(Microsoft.Extensions.Logging.LogLevel,System.String,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[4];Argument[this].Property[Microsoft.Extensions.Logging.Abstractions.LogEntry`1.Exception];value;dfc-generated | -| Microsoft.Extensions.Logging.Abstractions;LogEntry;LogEntry;(Microsoft.Extensions.Logging.LogLevel,System.String,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[4];Argument[this].Property[Microsoft.Extensions.Logging.Abstractions.LogEntry`1.Exception];value;hq-generated | -| Microsoft.Extensions.Logging.Abstractions;LogEntry;LogEntry;(Microsoft.Extensions.Logging.LogLevel,System.String,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[5];Argument[5].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging.Abstractions;LogEntry;LogEntry;(Microsoft.Extensions.Logging.LogLevel,System.String,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging.Abstractions;LogEntry;LogEntry;(Microsoft.Extensions.Logging.LogLevel,System.String,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[5];Argument[this].Property[Microsoft.Extensions.Logging.Abstractions.LogEntry`1.Formatter];value;dfc-generated | -| Microsoft.Extensions.Logging.Abstractions;LogEntry;LogEntry;(Microsoft.Extensions.Logging.LogLevel,System.String,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[5];Argument[this].Property[Microsoft.Extensions.Logging.Abstractions.LogEntry`1.Formatter];value;hq-generated | | Microsoft.Extensions.Logging.Console;ConfigurationConsoleLoggerSettings;ConfigurationConsoleLoggerSettings;(Microsoft.Extensions.Configuration.IConfiguration);Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Logging.Console;ConsoleFormatter;ConsoleFormatter;(System.String);Argument[0];Argument[this].Property[Microsoft.Extensions.Logging.Console.ConsoleFormatter.Name];value;dfc-generated | | Microsoft.Extensions.Logging.Console;ConsoleFormatter;Write;(Microsoft.Extensions.Logging.Abstractions.LogEntry,Microsoft.Extensions.Logging.IExternalScopeProvider,System.IO.TextWriter);Argument[0];Argument[2];taint;df-generated | @@ -1631,43 +1452,27 @@ | Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddConsole;(Microsoft.Extensions.Logging.ILoggerFactory,Microsoft.Extensions.Logging.LogLevel,System.Boolean);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddConsole;(Microsoft.Extensions.Logging.ILoggerFactory,System.Boolean);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddConsole;(Microsoft.Extensions.Logging.ILoggerFactory,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddConsole;(Microsoft.Extensions.Logging.ILoggerFactory,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddConsole;(Microsoft.Extensions.Logging.ILoggerFactory,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddConsole;(Microsoft.Extensions.Logging.ILoggerFactory,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddConsole;(Microsoft.Extensions.Logging.ILoggerFactory,System.Func,System.Boolean);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddConsole;(Microsoft.Extensions.Logging.ILoggerFactory,System.Func,System.Boolean);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddConsole;(Microsoft.Extensions.Logging.ILoggerFactory,System.Func,System.Boolean);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddConsole;(Microsoft.Extensions.Logging.ILoggerFactory,System.Func,System.Boolean);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddConsole;(Microsoft.Extensions.Logging.ILoggingBuilder);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddConsole;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddConsole;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddConsole;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddConsole;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddConsoleFormatter;(Microsoft.Extensions.Logging.ILoggingBuilder);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddConsoleFormatter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddConsoleFormatter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddConsoleFormatter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddConsoleFormatter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddJsonConsole;(Microsoft.Extensions.Logging.ILoggingBuilder);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddJsonConsole;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddJsonConsole;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddJsonConsole;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddJsonConsole;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddSimpleConsole;(Microsoft.Extensions.Logging.ILoggingBuilder);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddSimpleConsole;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddSimpleConsole;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddSimpleConsole;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddSimpleConsole;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddSystemdConsole;(Microsoft.Extensions.Logging.ILoggingBuilder);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddSystemdConsole;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddSystemdConsole;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddSystemdConsole;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;ConsoleLoggerExtensions;AddSystemdConsole;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;DebugLoggerFactoryExtensions;AddDebug;(Microsoft.Extensions.Logging.ILoggerFactory);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Logging;DebugLoggerFactoryExtensions;AddDebug;(Microsoft.Extensions.Logging.ILoggerFactory,Microsoft.Extensions.Logging.LogLevel);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Logging;DebugLoggerFactoryExtensions;AddDebug;(Microsoft.Extensions.Logging.ILoggerFactory,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Logging;DebugLoggerFactoryExtensions;AddDebug;(Microsoft.Extensions.Logging.ILoggerFactory,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Logging;DebugLoggerFactoryExtensions;AddDebug;(Microsoft.Extensions.Logging.ILoggerFactory,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;DebugLoggerFactoryExtensions;AddDebug;(Microsoft.Extensions.Logging.ILoggerFactory,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;DebugLoggerFactoryExtensions;AddDebug;(Microsoft.Extensions.Logging.ILoggingBuilder);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Logging;EventId;EventId;(System.Int32,System.String);Argument[1];Argument[this].Property[Microsoft.Extensions.Logging.EventId.Name];value;dfc-generated | @@ -1678,84 +1483,49 @@ | Microsoft.Extensions.Logging;EventLoggerFactoryExtensions;AddEventLog;(Microsoft.Extensions.Logging.ILoggingBuilder);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Logging;EventLoggerFactoryExtensions;AddEventLog;(Microsoft.Extensions.Logging.ILoggingBuilder,Microsoft.Extensions.Logging.EventLog.EventLogSettings);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Logging;EventLoggerFactoryExtensions;AddEventLog;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Logging;EventLoggerFactoryExtensions;AddEventLog;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Logging;EventLoggerFactoryExtensions;AddEventLog;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;EventLoggerFactoryExtensions;AddEventLog;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;EventSourceLoggerFactoryExtensions;AddEventSourceLogger;(Microsoft.Extensions.Logging.ILoggerFactory);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Logging;EventSourceLoggerFactoryExtensions;AddEventSourceLogger;(Microsoft.Extensions.Logging.ILoggingBuilder);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.String,Microsoft.Extensions.Logging.LogLevel);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.String,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.String,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.String,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.String,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.String,Microsoft.Extensions.Logging.LogLevel);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.String,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.String,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.String,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.String,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.String,Microsoft.Extensions.Logging.LogLevel);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.String,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.String,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.String,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.ILoggingBuilder,System.String,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.String,Microsoft.Extensions.Logging.LogLevel);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.String,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.String,System.Func);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.String,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;FilterLoggingBuilderExtensions;AddFilter;(Microsoft.Extensions.Logging.LoggerFilterOptions,System.String,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| Microsoft.Extensions.Logging;IExternalScopeProvider;ForEachScope;(System.Action,TState);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;IExternalScopeProvider;ForEachScope;(System.Action,TState);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;IExternalScopeProvider;ForEachScope;(System.Action,TState);Argument[1];Argument[0].Parameter[1];value;dfc-generated | -| Microsoft.Extensions.Logging;IExternalScopeProvider;ForEachScope;(System.Action,TState);Argument[1];Argument[0].Parameter[1];value;hq-generated | | Microsoft.Extensions.Logging;IExternalScopeProvider;Push;(System.Object);Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Logging;IExternalScopeProvider;Push;(System.Object);Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Logging;ILogger;BeginScope;(TState);Argument[0];ReturnValue;taint;df-generated | | Microsoft.Extensions.Logging;ILogger;BeginScope;(TState);Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Logging;ILogger;Log;(Microsoft.Extensions.Logging.LogLevel,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[2];Argument[4].Parameter[0];value;dfc-generated | -| Microsoft.Extensions.Logging;ILogger;Log;(Microsoft.Extensions.Logging.LogLevel,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[2];Argument[4].Parameter[0];value;hq-generated | | Microsoft.Extensions.Logging;ILogger;Log;(Microsoft.Extensions.Logging.LogLevel,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[3];Argument[4].Parameter[1];value;dfc-generated | -| Microsoft.Extensions.Logging;ILogger;Log;(Microsoft.Extensions.Logging.LogLevel,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[3];Argument[4].Parameter[1];value;hq-generated | -| Microsoft.Extensions.Logging;ILogger;Log;(Microsoft.Extensions.Logging.LogLevel,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[4];Argument[4].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;ILogger;Log;(Microsoft.Extensions.Logging.LogLevel,Microsoft.Extensions.Logging.EventId,TState,System.Exception,System.Func);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;ILoggerFactory;AddProvider;(Microsoft.Extensions.Logging.ILoggerProvider);Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Logging;ILoggerFactory;AddProvider;(Microsoft.Extensions.Logging.ILoggerProvider);Argument[this];Argument[0];taint;df-generated | @@ -1775,15 +1545,10 @@ | Microsoft.Extensions.Logging;LoggerFactory;LoggerFactory;(System.Collections.Generic.IEnumerable,Microsoft.Extensions.Options.IOptionsMonitor,Microsoft.Extensions.Options.IOptions,Microsoft.Extensions.Logging.IExternalScopeProvider);Argument[3];Argument[this];taint;df-generated | | Microsoft.Extensions.Logging;LoggerFilterOptions;get_Rules;();Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Logging;LoggerFilterRule;LoggerFilterRule;(System.String,System.String,System.Nullable,System.Func);Argument[0];Argument[this].Property[Microsoft.Extensions.Logging.LoggerFilterRule.ProviderName];value;dfc-generated | -| Microsoft.Extensions.Logging;LoggerFilterRule;LoggerFilterRule;(System.String,System.String,System.Nullable,System.Func);Argument[0];Argument[this].Property[Microsoft.Extensions.Logging.LoggerFilterRule.ProviderName];value;hq-generated | | Microsoft.Extensions.Logging;LoggerFilterRule;LoggerFilterRule;(System.String,System.String,System.Nullable,System.Func);Argument[1];Argument[this].Property[Microsoft.Extensions.Logging.LoggerFilterRule.CategoryName];value;dfc-generated | -| Microsoft.Extensions.Logging;LoggerFilterRule;LoggerFilterRule;(System.String,System.String,System.Nullable,System.Func);Argument[1];Argument[this].Property[Microsoft.Extensions.Logging.LoggerFilterRule.CategoryName];value;hq-generated | | Microsoft.Extensions.Logging;LoggerFilterRule;LoggerFilterRule;(System.String,System.String,System.Nullable,System.Func);Argument[2];Argument[this].Property[Microsoft.Extensions.Logging.LoggerFilterRule.LogLevel];value;dfc-generated | -| Microsoft.Extensions.Logging;LoggerFilterRule;LoggerFilterRule;(System.String,System.String,System.Nullable,System.Func);Argument[2];Argument[this].Property[Microsoft.Extensions.Logging.LoggerFilterRule.LogLevel];value;hq-generated | -| Microsoft.Extensions.Logging;LoggerFilterRule;LoggerFilterRule;(System.String,System.String,System.Nullable,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;LoggerFilterRule;LoggerFilterRule;(System.String,System.String,System.Nullable,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;LoggerFilterRule;LoggerFilterRule;(System.String,System.String,System.Nullable,System.Func);Argument[3];Argument[this].Property[Microsoft.Extensions.Logging.LoggerFilterRule.Filter];value;dfc-generated | -| Microsoft.Extensions.Logging;LoggerFilterRule;LoggerFilterRule;(System.String,System.String,System.Nullable,System.Func);Argument[3];Argument[this].Property[Microsoft.Extensions.Logging.LoggerFilterRule.Filter];value;hq-generated | | Microsoft.Extensions.Logging;LoggerFilterRule;ToString;();Argument[this].Property[Microsoft.Extensions.Logging.LoggerFilterRule.CategoryName];ReturnValue;taint;dfc-generated | | Microsoft.Extensions.Logging;LoggerFilterRule;ToString;();Argument[this].Property[Microsoft.Extensions.Logging.LoggerFilterRule.ProviderName];ReturnValue;taint;dfc-generated | | Microsoft.Extensions.Logging;LoggerMessageAttribute;LoggerMessageAttribute;(Microsoft.Extensions.Logging.LogLevel,System.String);Argument[1];Argument[this].Property[Microsoft.Extensions.Logging.LoggerMessageAttribute.Message];value;dfc-generated | @@ -1793,8 +1558,6 @@ | Microsoft.Extensions.Logging;LoggingBuilderExtensions;AddProvider;(Microsoft.Extensions.Logging.ILoggingBuilder,Microsoft.Extensions.Logging.ILoggerProvider);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Logging;LoggingBuilderExtensions;ClearProviders;(Microsoft.Extensions.Logging.ILoggingBuilder);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Logging;LoggingBuilderExtensions;Configure;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[0];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Logging;LoggingBuilderExtensions;Configure;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[0];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Logging;LoggingBuilderExtensions;Configure;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Logging;LoggingBuilderExtensions;Configure;(Microsoft.Extensions.Logging.ILoggingBuilder,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Logging;LoggingBuilderExtensions;SetMinimumLevel;(Microsoft.Extensions.Logging.ILoggingBuilder,Microsoft.Extensions.Logging.LogLevel);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Logging;ProviderAliasAttribute;ProviderAliasAttribute;(System.String);Argument[0];Argument[this].Property[Microsoft.Extensions.Logging.ProviderAliasAttribute.Alias];value;dfc-generated | @@ -1811,188 +1574,105 @@ | Microsoft.Extensions.Options;ConfigureNamedOptions;Configure;(System.String,TOptions);Argument[1];Argument[this];taint;df-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;Configure;(TOptions);Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`6.Name];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`6.Name];value;hq-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`6.Dependency1];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`6.Dependency1];value;hq-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`6.Dependency2];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`6.Dependency2];value;hq-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[3];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`6.Dependency3];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[3];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`6.Dependency3];value;hq-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[4];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`6.Dependency4];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[4];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`6.Dependency4];value;hq-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[5];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`6.Dependency5];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[5];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`6.Dependency5];value;hq-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[6];Argument[6].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[6];Argument[6].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[6];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`6.Action];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[6];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`6.Action];value;hq-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;Configure;(System.String,TOptions);Argument[1];Argument[this];taint;df-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;Configure;(TOptions);Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`5.Name];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`5.Name];value;hq-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`5.Dependency1];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`5.Dependency1];value;hq-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`5.Dependency2];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`5.Dependency2];value;hq-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[3];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`5.Dependency3];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[3];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`5.Dependency3];value;hq-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[4];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`5.Dependency4];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[4];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`5.Dependency4];value;hq-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[5];Argument[5].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[5];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`5.Action];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[5];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`5.Action];value;hq-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;Configure;(System.String,TOptions);Argument[1];Argument[this];taint;df-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;Configure;(TOptions);Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,System.Action);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`4.Name];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,System.Action);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`4.Name];value;hq-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,System.Action);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`4.Dependency1];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,System.Action);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`4.Dependency1];value;hq-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,System.Action);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`4.Dependency2];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,System.Action);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`4.Dependency2];value;hq-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,System.Action);Argument[3];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`4.Dependency3];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,System.Action);Argument[3];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`4.Dependency3];value;hq-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,System.Action);Argument[4];Argument[4].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,System.Action);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,System.Action);Argument[4];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`4.Action];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,TDep3,System.Action);Argument[4];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`4.Action];value;hq-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;Configure;(System.String,TOptions);Argument[1];Argument[this];taint;df-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;Configure;(TOptions);Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,System.Action);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`3.Name];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,System.Action);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`3.Name];value;hq-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,System.Action);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`3.Dependency1];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,System.Action);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`3.Dependency1];value;hq-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,System.Action);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`3.Dependency2];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,System.Action);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`3.Dependency2];value;hq-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,System.Action);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,System.Action);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,System.Action);Argument[3];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`3.Action];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep1,TDep2,System.Action);Argument[3];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`3.Action];value;hq-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;Configure;(System.String,TOptions);Argument[1];Argument[this];taint;df-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;Configure;(TOptions);Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep,System.Action);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`2.Name];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep,System.Action);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`2.Name];value;hq-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep,System.Action);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`2.Dependency];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep,System.Action);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`2.Dependency];value;hq-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep,System.Action);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep,System.Action);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep,System.Action);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`2.Action];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,TDep,System.Action);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`2.Action];value;hq-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;Configure;(System.String,TOptions);Argument[1];Argument[this];taint;df-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;Configure;(TOptions);Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,System.Action);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`1.Name];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,System.Action);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`1.Name];value;hq-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,System.Action);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`1.Action];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureNamedOptions;ConfigureNamedOptions;(System.String,System.Action);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.ConfigureNamedOptions`1.Action];value;hq-generated | | Microsoft.Extensions.Options;ConfigureOptions;Configure;(TOptions);Argument[0];Argument[this];taint;df-generated | -| Microsoft.Extensions.Options;ConfigureOptions;ConfigureOptions;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;ConfigureOptions;ConfigureOptions;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;ConfigureOptions;ConfigureOptions;(System.Action);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.ConfigureOptions`1.Action];value;dfc-generated | -| Microsoft.Extensions.Options;ConfigureOptions;ConfigureOptions;(System.Action);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.ConfigureOptions`1.Action];value;hq-generated | | Microsoft.Extensions.Options;DataAnnotationValidateOptions;DataAnnotationValidateOptions;(System.String);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.DataAnnotationValidateOptions`1.Name];value;dfc-generated | | Microsoft.Extensions.Options;IOptionsMonitor;OnChange;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;IOptionsMonitorCache;GetOrAdd;(System.String,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;NamedConfigureFromConfigurationOptions;NamedConfigureFromConfigurationOptions;(System.String,Microsoft.Extensions.Configuration.IConfiguration,System.Action);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Configure;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;OptionsBuilder;Configure;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;OptionsBuilder;Configure;(System.Action);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Configure;(System.Action);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Configure;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;OptionsBuilder;Configure;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;OptionsBuilder;Configure;(System.Action);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Configure;(System.Action);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Configure;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;OptionsBuilder;Configure;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;OptionsBuilder;Configure;(System.Action);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Configure;(System.Action);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Configure;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;OptionsBuilder;Configure;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;OptionsBuilder;Configure;(System.Action);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Configure;(System.Action);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Configure;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;OptionsBuilder;Configure;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;OptionsBuilder;Configure;(System.Action);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Configure;(System.Action);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Configure;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;OptionsBuilder;Configure;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;OptionsBuilder;Configure;(System.Action);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Configure;(System.Action);Argument[this];ReturnValue;value;hq-generated | | Microsoft.Extensions.Options;OptionsBuilder;OptionsBuilder;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.OptionsBuilder`1.Services];value;dfc-generated | | Microsoft.Extensions.Options;OptionsBuilder;OptionsBuilder;(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.String);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.OptionsBuilder`1.Name];value;dfc-generated | -| Microsoft.Extensions.Options;OptionsBuilder;PostConfigure;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;OptionsBuilder;PostConfigure;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;OptionsBuilder;PostConfigure;(System.Action);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Options;OptionsBuilder;PostConfigure;(System.Action);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Options;OptionsBuilder;PostConfigure;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;OptionsBuilder;PostConfigure;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;OptionsBuilder;PostConfigure;(System.Action);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Options;OptionsBuilder;PostConfigure;(System.Action);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Options;OptionsBuilder;PostConfigure;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;OptionsBuilder;PostConfigure;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;OptionsBuilder;PostConfigure;(System.Action);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Options;OptionsBuilder;PostConfigure;(System.Action);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Options;OptionsBuilder;PostConfigure;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;OptionsBuilder;PostConfigure;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;OptionsBuilder;PostConfigure;(System.Action);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Options;OptionsBuilder;PostConfigure;(System.Action);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Options;OptionsBuilder;PostConfigure;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;OptionsBuilder;PostConfigure;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;OptionsBuilder;PostConfigure;(System.Action);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Options;OptionsBuilder;PostConfigure;(System.Action);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Options;OptionsBuilder;PostConfigure;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;OptionsBuilder;PostConfigure;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;OptionsBuilder;PostConfigure;(System.Action);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Options;OptionsBuilder;PostConfigure;(System.Action);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func,System.String);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func,System.String);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func,System.String);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func,System.String);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func,System.String);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func,System.String);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func,System.String);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func,System.String);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func,System.String);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func,System.String);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func,System.String);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func,System.String);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func,System.String);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func,System.String);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func,System.String);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func,System.String);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func,System.String);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func,System.String);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func,System.String);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func,System.String);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func);Argument[this];ReturnValue;value;hq-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func,System.String);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func,System.String);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func,System.String);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Options;OptionsBuilder;Validate;(System.Func,System.String);Argument[this];ReturnValue;value;hq-generated | | Microsoft.Extensions.Options;OptionsFactory;Create;(System.String);Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Options;OptionsFactory;OptionsFactory;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEnumerable>);Argument[0].Element;Argument[this];taint;df-generated | | Microsoft.Extensions.Options;OptionsFactory;OptionsFactory;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEnumerable>);Argument[1].Element;Argument[this];taint;df-generated | @@ -2005,175 +1685,102 @@ | Microsoft.Extensions.Options;OptionsValidationException;OptionsValidationException;(System.String,System.Type,System.Collections.Generic.IEnumerable);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.OptionsValidationException.OptionsName];value;dfc-generated | | Microsoft.Extensions.Options;OptionsValidationException;OptionsValidationException;(System.String,System.Type,System.Collections.Generic.IEnumerable);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.OptionsValidationException.Failures];value;dfc-generated | | Microsoft.Extensions.Options;OptionsValidationException;get_Message;();Argument[this].Property[Microsoft.Extensions.Options.OptionsValidationException.Failures].Element;ReturnValue;taint;dfc-generated | -| Microsoft.Extensions.Options;OptionsValidationException;get_Message;();Argument[this].SyntheticField[System.Exception._message];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Options;OptionsWrapper;OptionsWrapper;(TOptions);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.OptionsWrapper`1.Value];value;dfc-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigure;(System.String,TOptions);Argument[1];Argument[this];taint;df-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigure;(TOptions);Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`6.Name];value;dfc-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`6.Name];value;hq-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`6.Dependency1];value;dfc-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`6.Dependency1];value;hq-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`6.Dependency2];value;dfc-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`6.Dependency2];value;hq-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[3];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`6.Dependency3];value;dfc-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[3];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`6.Dependency3];value;hq-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[4];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`6.Dependency4];value;dfc-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[4];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`6.Dependency4];value;hq-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[5];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`6.Dependency5];value;dfc-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[5];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`6.Dependency5];value;hq-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[6];Argument[6].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[6];Argument[6].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[6];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`6.Action];value;dfc-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Action);Argument[6];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`6.Action];value;hq-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigure;(System.String,TOptions);Argument[1];Argument[this];taint;df-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigure;(TOptions);Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`5.Name];value;dfc-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`5.Name];value;hq-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`5.Dependency1];value;dfc-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`5.Dependency1];value;hq-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`5.Dependency2];value;dfc-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`5.Dependency2];value;hq-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[3];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`5.Dependency3];value;dfc-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[3];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`5.Dependency3];value;hq-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[4];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`5.Dependency4];value;dfc-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[4];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`5.Dependency4];value;hq-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[5];Argument[5].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[5];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`5.Action];value;dfc-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Action);Argument[5];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`5.Action];value;hq-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigure;(System.String,TOptions);Argument[1];Argument[this];taint;df-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigure;(TOptions);Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,System.Action);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`4.Name];value;dfc-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,System.Action);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`4.Name];value;hq-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,System.Action);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`4.Dependency1];value;dfc-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,System.Action);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`4.Dependency1];value;hq-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,System.Action);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`4.Dependency2];value;dfc-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,System.Action);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`4.Dependency2];value;hq-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,System.Action);Argument[3];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`4.Dependency3];value;dfc-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,System.Action);Argument[3];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`4.Dependency3];value;hq-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,System.Action);Argument[4];Argument[4].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,System.Action);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,System.Action);Argument[4];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`4.Action];value;dfc-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,TDep3,System.Action);Argument[4];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`4.Action];value;hq-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigure;(System.String,TOptions);Argument[1];Argument[this];taint;df-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigure;(TOptions);Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,System.Action);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`3.Name];value;dfc-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,System.Action);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`3.Name];value;hq-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,System.Action);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`3.Dependency1];value;dfc-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,System.Action);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`3.Dependency1];value;hq-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,System.Action);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`3.Dependency2];value;dfc-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,System.Action);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`3.Dependency2];value;hq-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,System.Action);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,System.Action);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,System.Action);Argument[3];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`3.Action];value;dfc-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep1,TDep2,System.Action);Argument[3];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`3.Action];value;hq-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigure;(System.String,TOptions);Argument[1];Argument[this];taint;df-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigure;(TOptions);Argument[0];Argument[this];taint;df-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep,System.Action);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`2.Name];value;dfc-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep,System.Action);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`2.Name];value;hq-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep,System.Action);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`2.Dependency];value;dfc-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep,System.Action);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`2.Dependency];value;hq-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep,System.Action);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep,System.Action);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep,System.Action);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`2.Action];value;dfc-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,TDep,System.Action);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`2.Action];value;hq-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigure;(System.String,TOptions);Argument[1];Argument[this];taint;df-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,System.Action);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`1.Name];value;dfc-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,System.Action);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`1.Name];value;hq-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,System.Action);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`1.Action];value;dfc-generated | -| Microsoft.Extensions.Options;PostConfigureOptions;PostConfigureOptions;(System.String,System.Action);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.PostConfigureOptions`1.Action];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;Validate;(System.String,TOptions);Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`6.FailureMessage];ReturnValue.Property[Microsoft.Extensions.Options.ValidateOptionsResult.FailureMessage];value;dfc-generated | | Microsoft.Extensions.Options;ValidateOptions;Validate;(System.String,TOptions);Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`6.FailureMessage];ReturnValue.Property[Microsoft.Extensions.Options.ValidateOptionsResult.Failures].Element;value;dfc-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Func,System.String);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`6.Name];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Func,System.String);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`6.Name];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Func,System.String);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`6.Dependency1];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Func,System.String);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`6.Dependency1];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Func,System.String);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`6.Dependency2];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Func,System.String);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`6.Dependency2];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Func,System.String);Argument[3];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`6.Dependency3];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Func,System.String);Argument[3];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`6.Dependency3];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Func,System.String);Argument[4];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`6.Dependency4];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Func,System.String);Argument[4];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`6.Dependency4];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Func,System.String);Argument[5];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`6.Dependency5];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Func,System.String);Argument[5];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`6.Dependency5];value;hq-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Func,System.String);Argument[6];Argument[6].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Func,System.String);Argument[6];Argument[6].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Func,System.String);Argument[6];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`6.Validation];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Func,System.String);Argument[6];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`6.Validation];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Func,System.String);Argument[7];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`6.FailureMessage];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,TDep5,System.Func,System.String);Argument[7];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`6.FailureMessage];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;Validate;(System.String,TOptions);Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`5.FailureMessage];ReturnValue.Property[Microsoft.Extensions.Options.ValidateOptionsResult.FailureMessage];value;dfc-generated | | Microsoft.Extensions.Options;ValidateOptions;Validate;(System.String,TOptions);Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`5.FailureMessage];ReturnValue.Property[Microsoft.Extensions.Options.ValidateOptionsResult.Failures].Element;value;dfc-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Func,System.String);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`5.Name];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Func,System.String);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`5.Name];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Func,System.String);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`5.Dependency1];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Func,System.String);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`5.Dependency1];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Func,System.String);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`5.Dependency2];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Func,System.String);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`5.Dependency2];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Func,System.String);Argument[3];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`5.Dependency3];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Func,System.String);Argument[3];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`5.Dependency3];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Func,System.String);Argument[4];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`5.Dependency4];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Func,System.String);Argument[4];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`5.Dependency4];value;hq-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Func,System.String);Argument[5];Argument[5].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Func,System.String);Argument[5];Argument[5].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Func,System.String);Argument[5];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`5.Validation];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Func,System.String);Argument[5];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`5.Validation];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Func,System.String);Argument[6];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`5.FailureMessage];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,TDep4,System.Func,System.String);Argument[6];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`5.FailureMessage];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;Validate;(System.String,TOptions);Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`4.FailureMessage];ReturnValue.Property[Microsoft.Extensions.Options.ValidateOptionsResult.FailureMessage];value;dfc-generated | | Microsoft.Extensions.Options;ValidateOptions;Validate;(System.String,TOptions);Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`4.FailureMessage];ReturnValue.Property[Microsoft.Extensions.Options.ValidateOptionsResult.Failures].Element;value;dfc-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,System.Func,System.String);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`4.Name];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,System.Func,System.String);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`4.Name];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,System.Func,System.String);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`4.Dependency1];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,System.Func,System.String);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`4.Dependency1];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,System.Func,System.String);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`4.Dependency2];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,System.Func,System.String);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`4.Dependency2];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,System.Func,System.String);Argument[3];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`4.Dependency3];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,System.Func,System.String);Argument[3];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`4.Dependency3];value;hq-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,System.Func,System.String);Argument[4];Argument[4].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,System.Func,System.String);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,System.Func,System.String);Argument[4];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`4.Validation];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,System.Func,System.String);Argument[4];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`4.Validation];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,System.Func,System.String);Argument[5];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`4.FailureMessage];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,TDep3,System.Func,System.String);Argument[5];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`4.FailureMessage];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;Validate;(System.String,TOptions);Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`3.FailureMessage];ReturnValue.Property[Microsoft.Extensions.Options.ValidateOptionsResult.FailureMessage];value;dfc-generated | | Microsoft.Extensions.Options;ValidateOptions;Validate;(System.String,TOptions);Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`3.FailureMessage];ReturnValue.Property[Microsoft.Extensions.Options.ValidateOptionsResult.Failures].Element;value;dfc-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,System.Func,System.String);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`3.Name];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,System.Func,System.String);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`3.Name];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,System.Func,System.String);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`3.Dependency1];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,System.Func,System.String);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`3.Dependency1];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,System.Func,System.String);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`3.Dependency2];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,System.Func,System.String);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`3.Dependency2];value;hq-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,System.Func,System.String);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,System.Func,System.String);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,System.Func,System.String);Argument[3];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`3.Validation];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,System.Func,System.String);Argument[3];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`3.Validation];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,System.Func,System.String);Argument[4];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`3.FailureMessage];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep1,TDep2,System.Func,System.String);Argument[4];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`3.FailureMessage];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;Validate;(System.String,TOptions);Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`2.FailureMessage];ReturnValue.Property[Microsoft.Extensions.Options.ValidateOptionsResult.FailureMessage];value;dfc-generated | | Microsoft.Extensions.Options;ValidateOptions;Validate;(System.String,TOptions);Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`2.FailureMessage];ReturnValue.Property[Microsoft.Extensions.Options.ValidateOptionsResult.Failures].Element;value;dfc-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep,System.Func,System.String);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`2.Name];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep,System.Func,System.String);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`2.Name];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep,System.Func,System.String);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`2.Dependency];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep,System.Func,System.String);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`2.Dependency];value;hq-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep,System.Func,System.String);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep,System.Func,System.String);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep,System.Func,System.String);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`2.Validation];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep,System.Func,System.String);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`2.Validation];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep,System.Func,System.String);Argument[3];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`2.FailureMessage];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,TDep,System.Func,System.String);Argument[3];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`2.FailureMessage];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;Validate;(System.String,TOptions);Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`1.FailureMessage];ReturnValue.Property[Microsoft.Extensions.Options.ValidateOptionsResult.FailureMessage];value;dfc-generated | | Microsoft.Extensions.Options;ValidateOptions;Validate;(System.String,TOptions);Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`1.FailureMessage];ReturnValue.Property[Microsoft.Extensions.Options.ValidateOptionsResult.Failures].Element;value;dfc-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,System.Func,System.String);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`1.Name];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,System.Func,System.String);Argument[0];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`1.Name];value;hq-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,System.Func,System.String);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,System.Func,System.String);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,System.Func,System.String);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`1.Validation];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,System.Func,System.String);Argument[1];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`1.Validation];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,System.Func,System.String);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`1.FailureMessage];value;dfc-generated | -| Microsoft.Extensions.Options;ValidateOptions;ValidateOptions;(System.String,System.Func,System.String);Argument[2];Argument[this].Property[Microsoft.Extensions.Options.ValidateOptions`1.FailureMessage];value;hq-generated | | Microsoft.Extensions.Options;ValidateOptionsResult;Fail;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue.Property[Microsoft.Extensions.Options.ValidateOptionsResult.FailureMessage];taint;dfc-generated | | Microsoft.Extensions.Options;ValidateOptionsResult;Fail;(System.Collections.Generic.IEnumerable);Argument[0];ReturnValue.Property[Microsoft.Extensions.Options.ValidateOptionsResult.Failures];value;dfc-generated | | Microsoft.Extensions.Options;ValidateOptionsResult;Fail;(System.String);Argument[0];ReturnValue.Property[Microsoft.Extensions.Options.ValidateOptionsResult.FailureMessage];value;dfc-generated | @@ -2193,10 +1800,8 @@ | Microsoft.Extensions.Primitives;Extensions;Append;(System.Text.StringBuilder,Microsoft.Extensions.Primitives.StringSegment);Argument[0];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Primitives;Extensions;Append;(System.Text.StringBuilder,Microsoft.Extensions.Primitives.StringSegment);Argument[1].Property[Microsoft.Extensions.Primitives.StringSegment.Buffer];Argument[0];taint;dfc-generated | | Microsoft.Extensions.Primitives;Extensions;Append;(System.Text.StringBuilder,Microsoft.Extensions.Primitives.StringSegment);Argument[1].Property[Microsoft.Extensions.Primitives.StringSegment.Buffer];ReturnValue;taint;dfc-generated | -| Microsoft.Extensions.Primitives;IChangeToken;RegisterChangeCallback;(System.Action,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | Microsoft.Extensions.Primitives;IChangeToken;RegisterChangeCallback;(System.Action,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | Microsoft.Extensions.Primitives;IChangeToken;RegisterChangeCallback;(System.Action,System.Object);Argument[this];ReturnValue;value;dfc-generated | -| Microsoft.Extensions.Primitives;IChangeToken;RegisterChangeCallback;(System.Action,System.Object);Argument[this];ReturnValue;value;hq-generated | | Microsoft.Extensions.Primitives;InplaceStringBuilder;ToString;();Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Primitives;StringSegment;StringSegment;(System.String);Argument[0];Argument[this].Property[Microsoft.Extensions.Primitives.StringSegment.Buffer];value;dfc-generated | | Microsoft.Extensions.Primitives;StringSegment;StringSegment;(System.String,System.Int32,System.Int32);Argument[0];Argument[this].Property[Microsoft.Extensions.Primitives.StringSegment.Buffer];value;dfc-generated | @@ -2206,7 +1811,6 @@ | Microsoft.Extensions.Primitives;StringSegment;ToString;();Argument[this].Property[Microsoft.Extensions.Primitives.StringSegment.Value];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Primitives;StringSegment;get_Value;();Argument[this].Property[Microsoft.Extensions.Primitives.StringSegment.Buffer];ReturnValue;taint;dfc-generated | | Microsoft.Extensions.Primitives;StringTokenizer+Enumerator;Enumerator;(Microsoft.Extensions.Primitives.StringTokenizer);Argument[0].Element;Argument[this];taint;df-generated | -| Microsoft.Extensions.Primitives;StringTokenizer+Enumerator;get_Current;();Argument[this].Property[Microsoft.Extensions.Primitives.StringTokenizer+Enumerator.Current];ReturnValue;value;df-generated | | Microsoft.Extensions.Primitives;StringTokenizer+Enumerator;get_Current;();Argument[this].Property[Microsoft.Extensions.Primitives.StringTokenizer+Enumerator.Current];ReturnValue;value;dfc-generated | | Microsoft.Extensions.Primitives;StringTokenizer;GetEnumerator;();Argument[this];ReturnValue;taint;df-generated | | Microsoft.Extensions.Primitives;StringTokenizer;StringTokenizer;(Microsoft.Extensions.Primitives.StringSegment,System.Char[]);Argument[0];Argument[this];taint;df-generated | @@ -4645,16 +4249,11 @@ | System.CodeDom.Compiler;CodeGenerator;GenerateAttachEventStatement;(System.CodeDom.CodeAttachEventStatement);Argument[0];Argument[this];taint;df-generated | | System.CodeDom.Compiler;CodeGenerator;GenerateBinaryOperatorExpression;(System.CodeDom.CodeBinaryOperatorExpression);Argument[0];Argument[this];taint;df-generated | | System.CodeDom.Compiler;CodeGenerator;GenerateCastExpression;(System.CodeDom.CodeCastExpression);Argument[0];Argument[this];taint;df-generated | -| System.CodeDom.Compiler;CodeGenerator;GenerateCodeFromCompileUnit;(System.CodeDom.CodeCompileUnit,System.IO.TextWriter,System.CodeDom.Compiler.CodeGeneratorOptions);Argument[2];Argument[this].SyntheticField[System.CodeDom.Compiler.CodeGenerator._options];value;df-generated | | System.CodeDom.Compiler;CodeGenerator;GenerateCodeFromCompileUnit;(System.CodeDom.CodeCompileUnit,System.IO.TextWriter,System.CodeDom.Compiler.CodeGeneratorOptions);Argument[2];Argument[this].SyntheticField[System.CodeDom.Compiler.CodeGenerator._options];value;dfc-generated | -| System.CodeDom.Compiler;CodeGenerator;GenerateCodeFromExpression;(System.CodeDom.CodeExpression,System.IO.TextWriter,System.CodeDom.Compiler.CodeGeneratorOptions);Argument[2];Argument[this].SyntheticField[System.CodeDom.Compiler.CodeGenerator._options];value;df-generated | | System.CodeDom.Compiler;CodeGenerator;GenerateCodeFromExpression;(System.CodeDom.CodeExpression,System.IO.TextWriter,System.CodeDom.Compiler.CodeGeneratorOptions);Argument[2];Argument[this].SyntheticField[System.CodeDom.Compiler.CodeGenerator._options];value;dfc-generated | | System.CodeDom.Compiler;CodeGenerator;GenerateCodeFromMember;(System.CodeDom.CodeTypeMember,System.IO.TextWriter,System.CodeDom.Compiler.CodeGeneratorOptions);Argument[2];Argument[this].SyntheticField[System.CodeDom.Compiler.CodeGenerator._options];value;dfc-generated | -| System.CodeDom.Compiler;CodeGenerator;GenerateCodeFromNamespace;(System.CodeDom.CodeNamespace,System.IO.TextWriter,System.CodeDom.Compiler.CodeGeneratorOptions);Argument[2];Argument[this].SyntheticField[System.CodeDom.Compiler.CodeGenerator._options];value;df-generated | | System.CodeDom.Compiler;CodeGenerator;GenerateCodeFromNamespace;(System.CodeDom.CodeNamespace,System.IO.TextWriter,System.CodeDom.Compiler.CodeGeneratorOptions);Argument[2];Argument[this].SyntheticField[System.CodeDom.Compiler.CodeGenerator._options];value;dfc-generated | -| System.CodeDom.Compiler;CodeGenerator;GenerateCodeFromStatement;(System.CodeDom.CodeStatement,System.IO.TextWriter,System.CodeDom.Compiler.CodeGeneratorOptions);Argument[2];Argument[this].SyntheticField[System.CodeDom.Compiler.CodeGenerator._options];value;df-generated | | System.CodeDom.Compiler;CodeGenerator;GenerateCodeFromStatement;(System.CodeDom.CodeStatement,System.IO.TextWriter,System.CodeDom.Compiler.CodeGeneratorOptions);Argument[2];Argument[this].SyntheticField[System.CodeDom.Compiler.CodeGenerator._options];value;dfc-generated | -| System.CodeDom.Compiler;CodeGenerator;GenerateCodeFromType;(System.CodeDom.CodeTypeDeclaration,System.IO.TextWriter,System.CodeDom.Compiler.CodeGeneratorOptions);Argument[2];Argument[this].SyntheticField[System.CodeDom.Compiler.CodeGenerator._options];value;df-generated | | System.CodeDom.Compiler;CodeGenerator;GenerateCodeFromType;(System.CodeDom.CodeTypeDeclaration,System.IO.TextWriter,System.CodeDom.Compiler.CodeGeneratorOptions);Argument[2];Argument[this].SyntheticField[System.CodeDom.Compiler.CodeGenerator._options];value;dfc-generated | | System.CodeDom.Compiler;CodeGenerator;GenerateCompileUnit;(System.CodeDom.CodeCompileUnit);Argument[0];Argument[this];taint;df-generated | | System.CodeDom.Compiler;CodeGenerator;GenerateCompileUnitEnd;(System.CodeDom.CodeCompileUnit);Argument[0];Argument[this];taint;df-generated | @@ -4697,12 +4296,9 @@ | System.CodeDom.Compiler;CodeGenerator;GenerateTypes;(System.CodeDom.CodeNamespace);Argument[0].Property[System.CodeDom.CodeNamespace.Types].Element;Argument[this].SyntheticField[System.CodeDom.Compiler.CodeGenerator._currentClass];value;dfc-generated | | System.CodeDom.Compiler;CodeGenerator;GenerateVariableDeclarationStatement;(System.CodeDom.CodeVariableDeclarationStatement);Argument[0];Argument[this];taint;df-generated | | System.CodeDom.Compiler;CodeGenerator;GenerateVariableReferenceExpression;(System.CodeDom.CodeVariableReferenceExpression);Argument[0];Argument[this];taint;df-generated | -| System.CodeDom.Compiler;CodeGenerator;GetTypeOutput;(System.CodeDom.CodeTypeReference);Argument[0].Property[System.CodeDom.CodeTypeReference.ArrayElementType].Property[System.CodeDom.CodeTypeReference.BaseType];ReturnValue;taint;df-generated | | System.CodeDom.Compiler;CodeGenerator;GetTypeOutput;(System.CodeDom.CodeTypeReference);Argument[0].Property[System.CodeDom.CodeTypeReference.ArrayElementType].Property[System.CodeDom.CodeTypeReference.BaseType];ReturnValue;taint;dfc-generated | -| System.CodeDom.Compiler;CodeGenerator;GetTypeOutput;(System.CodeDom.CodeTypeReference);Argument[0].Property[System.CodeDom.CodeTypeReference.BaseType];ReturnValue;taint;df-generated | | System.CodeDom.Compiler;CodeGenerator;GetTypeOutput;(System.CodeDom.CodeTypeReference);Argument[0].Property[System.CodeDom.CodeTypeReference.BaseType];ReturnValue;taint;dfc-generated | | System.CodeDom.Compiler;CodeGenerator;GetTypeOutput;(System.CodeDom.CodeTypeReference);Argument[0];ReturnValue;taint;df-generated | -| System.CodeDom.Compiler;CodeGenerator;GetTypeOutput;(System.CodeDom.CodeTypeReference);Argument[0];ReturnValue;taint;dfc-generated | | System.CodeDom.Compiler;CodeGenerator;OutputAttributeArgument;(System.CodeDom.CodeAttributeArgument);Argument[0];Argument[this];taint;df-generated | | System.CodeDom.Compiler;CodeGenerator;OutputAttributeDeclarations;(System.CodeDom.CodeAttributeDeclarationCollection);Argument[0].Element;Argument[this];taint;df-generated | | System.CodeDom.Compiler;CodeGenerator;OutputExpressionList;(System.CodeDom.CodeExpressionCollection);Argument[0].Element;Argument[this];taint;df-generated | @@ -4765,63 +4361,36 @@ | System.CodeDom.Compiler;IndentedTextWriter;FlushAsync;(System.Threading.CancellationToken);Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];ReturnValue.SyntheticField[System.Threading.Tasks.Task.m_stateObject];value;dfc-generated | | System.CodeDom.Compiler;IndentedTextWriter;FlushAsync;(System.Threading.CancellationToken);Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];ReturnValue.SyntheticField[System.Threading.Tasks.Task.m_stateObject];value;dfc-generated | | System.CodeDom.Compiler;IndentedTextWriter;IndentedTextWriter;(System.IO.TextWriter,System.String);Argument[0];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];value;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;Write;(System.Char[]);Argument[0].Element;Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;Write;(System.Char[]);Argument[0].Element;Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String,System.Object);Argument[0];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String,System.Object);Argument[0];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String,System.Object);Argument[1];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String,System.Object);Argument[1];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String,System.Object,System.Object);Argument[0];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String,System.Object,System.Object);Argument[0];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String,System.Object,System.Object);Argument[1];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String,System.Object,System.Object);Argument[1];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String,System.Object,System.Object);Argument[2];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String,System.Object,System.Object);Argument[2];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String,System.Object[]);Argument[0];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String,System.Object[]);Argument[0];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String,System.Object[]);Argument[1].Element;Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String,System.Object[]);Argument[1].Element;Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String,System.ReadOnlySpan);Argument[0];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String,System.ReadOnlySpan);Argument[0];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String,System.ReadOnlySpan);Argument[1].Element;Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;Write;(System.String,System.ReadOnlySpan);Argument[1].Element;Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.Char[]);Argument[0].Element;Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.Char[]);Argument[0].Element;Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.Char[],System.Int32,System.Int32);Argument[0].Element;Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.Char[],System.Int32,System.Int32);Argument[0].Element;Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String);Argument[0];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String);Argument[0];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String,System.Object);Argument[0];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String,System.Object);Argument[0];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String,System.Object);Argument[1];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String,System.Object);Argument[1];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String,System.Object,System.Object);Argument[0];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String,System.Object,System.Object);Argument[0];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String,System.Object,System.Object);Argument[1];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String,System.Object,System.Object);Argument[1];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String,System.Object,System.Object);Argument[2];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String,System.Object,System.Object);Argument[2];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String,System.Object[]);Argument[0];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String,System.Object[]);Argument[0];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String,System.Object[]);Argument[1].Element;Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String,System.Object[]);Argument[1].Element;Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String,System.ReadOnlySpan);Argument[0];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String,System.ReadOnlySpan);Argument[0];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String,System.ReadOnlySpan);Argument[1].Element;Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;WriteLine;(System.String,System.ReadOnlySpan);Argument[1].Element;Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLineAsync;(System.Char[],System.Int32,System.Int32);Argument[0].Element;Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;WriteLineAsync;(System.Char[],System.Int32,System.Int32);Argument[0].Element;Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLineAsync;(System.Char[],System.Int32,System.Int32);Argument[0].Element;Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;WriteLineAsync;(System.Char[],System.Int32,System.Int32);Argument[0].Element;Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLineAsync;(System.String);Argument[0];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;WriteLineAsync;(System.String);Argument[0];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;dfc-generated | -| System.CodeDom.Compiler;IndentedTextWriter;WriteLineAsync;(System.String);Argument[0];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;WriteLineAsync;(System.String);Argument[0];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;dfc-generated | | System.CodeDom.Compiler;IndentedTextWriter;WriteLineNoTabs;(System.String);Argument[0];Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];taint;dfc-generated | | System.CodeDom.Compiler;IndentedTextWriter;WriteLineNoTabsAsync;(System.String);Argument[0];Argument[this];taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;WriteLineNoTabsAsync;(System.String);Argument[0];ReturnValue;taint;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;WriteLineNoTabsAsync;(System.String);Argument[this];ReturnValue;taint;df-generated | -| System.CodeDom.Compiler;IndentedTextWriter;get_Encoding;();Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].Property[System.IO.TextWriter.Encoding];ReturnValue;value;df-generated | | System.CodeDom.Compiler;IndentedTextWriter;get_Encoding;();Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer].Property[System.IO.TextWriter.Encoding];ReturnValue;value;dfc-generated | | System.CodeDom.Compiler;IndentedTextWriter;get_InnerWriter;();Argument[this].SyntheticField[System.CodeDom.Compiler.IndentedTextWriter._writer];ReturnValue;value;dfc-generated | | System.CodeDom.Compiler;TempFileCollection;AddExtension;(System.String);Argument[0];ReturnValue;taint;dfc-generated | @@ -5082,41 +4651,23 @@ | System.Collections.Concurrent;ConcurrentDictionary;Add;(System.Collections.Generic.KeyValuePair);Argument[0].Property[System.Collections.Generic.KeyValuePair`2.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | | System.Collections.Concurrent;ConcurrentDictionary;Add;(System.Collections.Generic.KeyValuePair);Argument[0].Property[System.Collections.Generic.KeyValuePair`2.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;manual | | System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func);Argument[0];Argument[1].Parameter[0];value;dfc-generated | -| System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func);Argument[0];Argument[1].Parameter[0];value;hq-generated | | System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func);Argument[0];Argument[2].Parameter[0];value;dfc-generated | -| System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func);Argument[0];Argument[2].Parameter[0];value;hq-generated | | System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func);Argument[1].ReturnValue;ReturnValue;value;dfc-generated | -| System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func);Argument[1].ReturnValue;ReturnValue;value;hq-generated | -| System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func);Argument[2].ReturnValue;ReturnValue;value;dfc-generated | -| System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func);Argument[2].ReturnValue;ReturnValue;value;hq-generated | -| System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,TValue,System.Func);Argument[0];Argument[2].Parameter[0];value;dfc-generated | -| System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,TValue,System.Func);Argument[0];Argument[2].Parameter[0];value;hq-generated | | System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,TValue,System.Func);Argument[1];ReturnValue;value;dfc-generated | -| System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,TValue,System.Func);Argument[1];ReturnValue;value;hq-generated | | System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,TValue,System.Func);Argument[2].ReturnValue;ReturnValue;value;dfc-generated | -| System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,TValue,System.Func);Argument[2].ReturnValue;ReturnValue;value;hq-generated | -| System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,TValue,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,TValue,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func,TArg);Argument[0];Argument[1].Parameter[0];value;dfc-generated | -| System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func,TArg);Argument[0];Argument[1].Parameter[0];value;hq-generated | | System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func,TArg);Argument[0];Argument[2].Parameter[0];value;dfc-generated | -| System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func,TArg);Argument[0];Argument[2].Parameter[0];value;hq-generated | | System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func,TArg);Argument[1].ReturnValue;ReturnValue;value;dfc-generated | -| System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func,TArg);Argument[1].ReturnValue;ReturnValue;value;hq-generated | -| System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func,TArg);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func,TArg);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func,TArg);Argument[2].ReturnValue;ReturnValue;value;dfc-generated | -| System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func,TArg);Argument[2].ReturnValue;ReturnValue;value;hq-generated | -| System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func,TArg);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func,TArg);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func,TArg);Argument[3];Argument[1].Parameter[1];value;dfc-generated | -| System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func,TArg);Argument[3];Argument[1].Parameter[1];value;hq-generated | | System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func,TArg);Argument[3];Argument[2].Parameter[2];value;dfc-generated | -| System.Collections.Concurrent;ConcurrentDictionary;AddOrUpdate;(TKey,System.Func,System.Func,TArg);Argument[3];Argument[2].Parameter[2];value;hq-generated | | System.Collections.Concurrent;ConcurrentDictionary;ConcurrentDictionary;(System.Collections.Generic.IEnumerable>);Argument[0].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | | System.Collections.Concurrent;ConcurrentDictionary;ConcurrentDictionary;(System.Collections.Generic.IEnumerable>);Argument[0].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;manual | | System.Collections.Concurrent;ConcurrentDictionary;ConcurrentDictionary;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEqualityComparer);Argument[0].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | @@ -5124,20 +4675,13 @@ | System.Collections.Concurrent;ConcurrentDictionary;ConcurrentDictionary;(System.Int32,System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEqualityComparer);Argument[1].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | | System.Collections.Concurrent;ConcurrentDictionary;ConcurrentDictionary;(System.Int32,System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEqualityComparer);Argument[1].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;manual | | System.Collections.Concurrent;ConcurrentDictionary;GetOrAdd;(TKey,System.Func);Argument[0];Argument[1].Parameter[0];value;dfc-generated | -| System.Collections.Concurrent;ConcurrentDictionary;GetOrAdd;(TKey,System.Func);Argument[0];Argument[1].Parameter[0];value;hq-generated | | System.Collections.Concurrent;ConcurrentDictionary;GetOrAdd;(TKey,System.Func);Argument[1].ReturnValue;ReturnValue;value;dfc-generated | -| System.Collections.Concurrent;ConcurrentDictionary;GetOrAdd;(TKey,System.Func);Argument[1].ReturnValue;ReturnValue;value;hq-generated | -| System.Collections.Concurrent;ConcurrentDictionary;GetOrAdd;(TKey,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Collections.Concurrent;ConcurrentDictionary;GetOrAdd;(TKey,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Concurrent;ConcurrentDictionary;GetOrAdd;(TKey,TValue);Argument[1];ReturnValue;value;dfc-generated | | System.Collections.Concurrent;ConcurrentDictionary;GetOrAdd;(TKey,System.Func,TArg);Argument[0];Argument[1].Parameter[0];value;dfc-generated | -| System.Collections.Concurrent;ConcurrentDictionary;GetOrAdd;(TKey,System.Func,TArg);Argument[0];Argument[1].Parameter[0];value;hq-generated | | System.Collections.Concurrent;ConcurrentDictionary;GetOrAdd;(TKey,System.Func,TArg);Argument[1].ReturnValue;ReturnValue;value;dfc-generated | -| System.Collections.Concurrent;ConcurrentDictionary;GetOrAdd;(TKey,System.Func,TArg);Argument[1].ReturnValue;ReturnValue;value;hq-generated | -| System.Collections.Concurrent;ConcurrentDictionary;GetOrAdd;(TKey,System.Func,TArg);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Collections.Concurrent;ConcurrentDictionary;GetOrAdd;(TKey,System.Func,TArg);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Concurrent;ConcurrentDictionary;GetOrAdd;(TKey,System.Func,TArg);Argument[2];Argument[1].Parameter[1];value;dfc-generated | -| System.Collections.Concurrent;ConcurrentDictionary;GetOrAdd;(TKey,System.Func,TArg);Argument[2];Argument[1].Parameter[1];value;hq-generated | | System.Collections.Concurrent;ConcurrentDictionary;get_Comparer;();Argument[this];ReturnValue;taint;df-generated | | System.Collections.Concurrent;ConcurrentDictionary;get_Keys;();Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];ReturnValue.Element;value;manual | | System.Collections.Concurrent;ConcurrentDictionary;get_Values;();Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];ReturnValue.Element;value;manual | @@ -5164,10 +4708,8 @@ | System.Collections.Frozen;FrozenDictionary+AlternateLookup;ContainsKey;(TAlternateKey);Argument[0];Argument[this];taint;df-generated | | System.Collections.Frozen;FrozenDictionary+AlternateLookup;TryGetValue;(TAlternateKey,TValue);Argument[0];Argument[this];taint;df-generated | | System.Collections.Frozen;FrozenDictionary+AlternateLookup;get_Item;(TAlternateKey);Argument[0];Argument[this];taint;df-generated | -| System.Collections.Frozen;FrozenDictionary+Enumerator;get_Current;();Argument[this].Property[System.Collections.Frozen.FrozenDictionary`2+Enumerator.Current];ReturnValue;value;df-generated | | System.Collections.Frozen;FrozenDictionary+Enumerator;get_Current;();Argument[this].Property[System.Collections.Frozen.FrozenDictionary`2+Enumerator.Current];ReturnValue;value;dfc-generated | | System.Collections.Frozen;FrozenDictionary+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Collections.Frozen;FrozenDictionary+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Collections.Frozen;FrozenDictionary;GetAlternateLookup;();Argument[this];ReturnValue.Property[System.Collections.Frozen.FrozenDictionary`2+AlternateLookup`1.Dictionary];value;dfc-generated | | System.Collections.Frozen;FrozenDictionary;TryGetAlternateLookup;(System.Collections.Frozen.FrozenDictionary+AlternateLookup);Argument[this];Argument[0].Property[System.Collections.Frozen.FrozenDictionary`2+AlternateLookup`1.Dictionary];value;dfc-generated | | System.Collections.Frozen;FrozenDictionary;get_Keys;();Argument[this];ReturnValue;taint;df-generated | @@ -5178,10 +4720,8 @@ | System.Collections.Frozen;FrozenSet+AlternateLookup;Contains;(TAlternate);Argument[0];Argument[this];taint;df-generated | | System.Collections.Frozen;FrozenSet+AlternateLookup;TryGetValue;(TAlternate,T);Argument[0];Argument[this];taint;df-generated | | System.Collections.Frozen;FrozenSet+AlternateLookup;TryGetValue;(TAlternate,T);Argument[this];Argument[1];taint;df-generated | -| System.Collections.Frozen;FrozenSet+Enumerator;get_Current;();Argument[this].Property[System.Collections.Frozen.FrozenSet`1+Enumerator.Current];ReturnValue;value;df-generated | | System.Collections.Frozen;FrozenSet+Enumerator;get_Current;();Argument[this].Property[System.Collections.Frozen.FrozenSet`1+Enumerator.Current];ReturnValue;value;dfc-generated | | System.Collections.Frozen;FrozenSet+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Collections.Frozen;FrozenSet+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Collections.Frozen;FrozenSet;Contains;(T);Argument[this];Argument[0];taint;df-generated | | System.Collections.Frozen;FrozenSet;CopyTo;(System.Span);Argument[this].Property[System.Collections.Frozen.FrozenSet`1.Items].Element;Argument[0].Element;value;dfc-generated | | System.Collections.Frozen;FrozenSet;GetAlternateLookup;();Argument[this];ReturnValue.Property[System.Collections.Frozen.FrozenSet`1+AlternateLookup`1.Set];value;dfc-generated | @@ -5255,10 +4795,8 @@ | System.Collections.Generic;KeyValuePair;KeyValuePair;(TKey,TValue);Argument[1];Argument[this].Property[System.Collections.Generic.KeyValuePair`2.Value];value;manual | | System.Collections.Generic;KeyValuePair;get_Key;();Argument[this];ReturnValue;taint;df-generated | | System.Collections.Generic;KeyValuePair;get_Value;();Argument[this];ReturnValue;taint;df-generated | -| System.Collections.Generic;LinkedList+Enumerator;get_Current;();Argument[this].Property[System.Collections.Generic.LinkedList`1+Enumerator.Current];ReturnValue;value;df-generated | | System.Collections.Generic;LinkedList+Enumerator;get_Current;();Argument[this].Property[System.Collections.Generic.LinkedList`1+Enumerator.Current];ReturnValue;value;dfc-generated | | System.Collections.Generic;LinkedList+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Collections.Generic;LinkedList+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Collections.Generic;LinkedList;AddAfter;(System.Collections.Generic.LinkedListNode,System.Collections.Generic.LinkedListNode);Argument[0].SyntheticField[System.Collections.Generic.LinkedListNode`1.next].SyntheticField[System.Collections.Generic.LinkedListNode`1.prev];Argument[1].SyntheticField[System.Collections.Generic.LinkedListNode`1.prev];value;dfc-generated | | System.Collections.Generic;LinkedList;AddAfter;(System.Collections.Generic.LinkedListNode,System.Collections.Generic.LinkedListNode);Argument[0].SyntheticField[System.Collections.Generic.LinkedListNode`1.next];Argument[1].SyntheticField[System.Collections.Generic.LinkedListNode`1.next];value;dfc-generated | | System.Collections.Generic;LinkedList;AddAfter;(System.Collections.Generic.LinkedListNode,System.Collections.Generic.LinkedListNode);Argument[1];Argument[0].SyntheticField[System.Collections.Generic.LinkedListNode`1.next].SyntheticField[System.Collections.Generic.LinkedListNode`1.prev];value;dfc-generated | @@ -5297,79 +4835,47 @@ | System.Collections.Generic;List+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | | System.Collections.Generic;List;AddRange;(System.Collections.Generic.IEnumerable);Argument[0].Element;Argument[this].Element;value;manual | | System.Collections.Generic;List;AsReadOnly;();Argument[this].Element;ReturnValue.Element;value;manual | -| System.Collections.Generic;List;ConvertAll;(System.Converter);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Collections.Generic;List;ConvertAll;(System.Converter);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Generic;List;ConvertAll;(System.Converter);Argument[this].SyntheticField[System.Collections.Generic.List`1._items].Element;Argument[0].Parameter[0];value;dfc-generated | -| System.Collections.Generic;List;ConvertAll;(System.Converter);Argument[this].SyntheticField[System.Collections.Generic.List`1._items].Element;Argument[0].Parameter[0];value;hq-generated | | System.Collections.Generic;List;CopyTo;(T[]);Argument[this].Element;Argument[0].Element;value;dfc-generated | -| System.Collections.Generic;List;Exists;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Collections.Generic;List;Exists;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Generic;List;Exists;(System.Predicate);Argument[this].SyntheticField[System.Collections.Generic.List`1._items].Element;Argument[0].Parameter[0];value;dfc-generated | -| System.Collections.Generic;List;Exists;(System.Predicate);Argument[this].SyntheticField[System.Collections.Generic.List`1._items].Element;Argument[0].Parameter[0];value;hq-generated | -| System.Collections.Generic;List;Find;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Collections.Generic;List;Find;(System.Predicate);Argument[this].Element;Argument[0].Parameter[0];value;manual | | System.Collections.Generic;List;Find;(System.Predicate);Argument[this].Element;ReturnValue;value;manual | -| System.Collections.Generic;List;FindAll;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Collections.Generic;List;FindAll;(System.Predicate);Argument[this].Element;Argument[0].Parameter[0];value;manual | | System.Collections.Generic;List;FindAll;(System.Predicate);Argument[this].Element;ReturnValue;value;manual | -| System.Collections.Generic;List;FindIndex;(System.Int32,System.Int32,System.Predicate);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Collections.Generic;List;FindIndex;(System.Int32,System.Int32,System.Predicate);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Collections.Generic;List;FindIndex;(System.Int32,System.Int32,System.Predicate);Argument[this].SyntheticField[System.Collections.Generic.List`1._items].Element;Argument[2].Parameter[0];value;dfc-generated | -| System.Collections.Generic;List;FindIndex;(System.Int32,System.Int32,System.Predicate);Argument[this].SyntheticField[System.Collections.Generic.List`1._items].Element;Argument[2].Parameter[0];value;hq-generated | -| System.Collections.Generic;List;FindIndex;(System.Int32,System.Predicate);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Collections.Generic;List;FindIndex;(System.Int32,System.Predicate);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Generic;List;FindIndex;(System.Int32,System.Predicate);Argument[this].SyntheticField[System.Collections.Generic.List`1._items].Element;Argument[1].Parameter[0];value;dfc-generated | -| System.Collections.Generic;List;FindIndex;(System.Int32,System.Predicate);Argument[this].SyntheticField[System.Collections.Generic.List`1._items].Element;Argument[1].Parameter[0];value;hq-generated | -| System.Collections.Generic;List;FindIndex;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Collections.Generic;List;FindIndex;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Generic;List;FindIndex;(System.Predicate);Argument[this].SyntheticField[System.Collections.Generic.List`1._items].Element;Argument[0].Parameter[0];value;dfc-generated | -| System.Collections.Generic;List;FindIndex;(System.Predicate);Argument[this].SyntheticField[System.Collections.Generic.List`1._items].Element;Argument[0].Parameter[0];value;hq-generated | -| System.Collections.Generic;List;FindLast;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Collections.Generic;List;FindLast;(System.Predicate);Argument[this].Element;Argument[0].Parameter[0];value;manual | | System.Collections.Generic;List;FindLast;(System.Predicate);Argument[this].Element;ReturnValue;value;manual | -| System.Collections.Generic;List;FindLastIndex;(System.Int32,System.Int32,System.Predicate);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Collections.Generic;List;FindLastIndex;(System.Int32,System.Int32,System.Predicate);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Collections.Generic;List;FindLastIndex;(System.Int32,System.Int32,System.Predicate);Argument[this].SyntheticField[System.Collections.Generic.List`1._items].Element;Argument[2].Parameter[0];value;dfc-generated | -| System.Collections.Generic;List;FindLastIndex;(System.Int32,System.Int32,System.Predicate);Argument[this].SyntheticField[System.Collections.Generic.List`1._items].Element;Argument[2].Parameter[0];value;hq-generated | -| System.Collections.Generic;List;FindLastIndex;(System.Int32,System.Predicate);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Collections.Generic;List;FindLastIndex;(System.Int32,System.Predicate);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Generic;List;FindLastIndex;(System.Int32,System.Predicate);Argument[this].SyntheticField[System.Collections.Generic.List`1._items].Element;Argument[1].Parameter[0];value;dfc-generated | -| System.Collections.Generic;List;FindLastIndex;(System.Int32,System.Predicate);Argument[this].SyntheticField[System.Collections.Generic.List`1._items].Element;Argument[1].Parameter[0];value;hq-generated | -| System.Collections.Generic;List;FindLastIndex;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Collections.Generic;List;FindLastIndex;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Generic;List;FindLastIndex;(System.Predicate);Argument[this].SyntheticField[System.Collections.Generic.List`1._items].Element;Argument[0].Parameter[0];value;dfc-generated | -| System.Collections.Generic;List;FindLastIndex;(System.Predicate);Argument[this].SyntheticField[System.Collections.Generic.List`1._items].Element;Argument[0].Parameter[0];value;hq-generated | -| System.Collections.Generic;List;ForEach;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Collections.Generic;List;ForEach;(System.Action);Argument[this].Element;Argument[0].Parameter[0];value;manual | | System.Collections.Generic;List;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.List`1+Enumerator.Current];value;manual | | System.Collections.Generic;List;GetRange;(System.Int32,System.Int32);Argument[this].Element;ReturnValue.Element;value;manual | | System.Collections.Generic;List;InsertRange;(System.Int32,System.Collections.Generic.IEnumerable);Argument[1].Element;Argument[this].Element;value;manual | | System.Collections.Generic;List;List;(System.Collections.Generic.IEnumerable);Argument[0].Element;Argument[this].SyntheticField[System.Collections.Generic.List`1._items].Element;value;dfc-generated | -| System.Collections.Generic;List;RemoveAll;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Collections.Generic;List;RemoveAll;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Generic;List;RemoveAll;(System.Predicate);Argument[this].SyntheticField[System.Collections.Generic.List`1._items].Element;Argument[0].Parameter[0];value;dfc-generated | -| System.Collections.Generic;List;RemoveAll;(System.Predicate);Argument[this].SyntheticField[System.Collections.Generic.List`1._items].Element;Argument[0].Parameter[0];value;hq-generated | | System.Collections.Generic;List;Slice;(System.Int32,System.Int32);Argument[this].Element;ReturnValue.Element;value;dfc-generated | -| System.Collections.Generic;List;Sort;(System.Comparison);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Collections.Generic;List;Sort;(System.Comparison);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Generic;List;Sort;(System.Comparison);Argument[this].SyntheticField[System.Collections.Generic.List`1._items].Element;Argument[0].Parameter[0];value;dfc-generated | -| System.Collections.Generic;List;Sort;(System.Comparison);Argument[this].SyntheticField[System.Collections.Generic.List`1._items].Element;Argument[0].Parameter[0];value;hq-generated | | System.Collections.Generic;List;Sort;(System.Comparison);Argument[this].SyntheticField[System.Collections.Generic.List`1._items].Element;Argument[0].Parameter[1];value;dfc-generated | -| System.Collections.Generic;List;Sort;(System.Comparison);Argument[this].SyntheticField[System.Collections.Generic.List`1._items].Element;Argument[0].Parameter[1];value;hq-generated | -| System.Collections.Generic;List;TrueForAll;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Collections.Generic;List;TrueForAll;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Generic;List;TrueForAll;(System.Predicate);Argument[this].SyntheticField[System.Collections.Generic.List`1._items].Element;Argument[0].Parameter[0];value;dfc-generated | -| System.Collections.Generic;List;TrueForAll;(System.Predicate);Argument[this].SyntheticField[System.Collections.Generic.List`1._items].Element;Argument[0].Parameter[0];value;hq-generated | -| System.Collections.Generic;OrderedDictionary+Enumerator;get_Current;();Argument[this].Property[System.Collections.Generic.OrderedDictionary`2+Enumerator.Current];ReturnValue;value;df-generated | | System.Collections.Generic;OrderedDictionary+Enumerator;get_Current;();Argument[this].Property[System.Collections.Generic.OrderedDictionary`2+Enumerator.Current];ReturnValue;value;dfc-generated | -| System.Collections.Generic;OrderedDictionary+Enumerator;get_Key;();Argument[this].Property[System.Collections.Generic.OrderedDictionary`2+Enumerator.Current].Property[System.Collections.Generic.KeyValuePair`2.Key];ReturnValue;value;df-generated | | System.Collections.Generic;OrderedDictionary+Enumerator;get_Key;();Argument[this].Property[System.Collections.Generic.OrderedDictionary`2+Enumerator.Current].Property[System.Collections.Generic.KeyValuePair`2.Key];ReturnValue;value;dfc-generated | -| System.Collections.Generic;OrderedDictionary+Enumerator;get_Value;();Argument[this].Property[System.Collections.Generic.OrderedDictionary`2+Enumerator.Current].Property[System.Collections.Generic.KeyValuePair`2.Value];ReturnValue;value;df-generated | | System.Collections.Generic;OrderedDictionary+Enumerator;get_Value;();Argument[this].Property[System.Collections.Generic.OrderedDictionary`2+Enumerator.Current].Property[System.Collections.Generic.KeyValuePair`2.Value];ReturnValue;value;dfc-generated | -| System.Collections.Generic;OrderedDictionary+KeyCollection+Enumerator;get_Current;();Argument[this].Property[System.Collections.Generic.OrderedDictionary`2+KeyCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Collections.Generic;OrderedDictionary+KeyCollection+Enumerator;get_Current;();Argument[this].Property[System.Collections.Generic.OrderedDictionary`2+KeyCollection+Enumerator.Current];ReturnValue;value;dfc-generated | | System.Collections.Generic;OrderedDictionary+KeyCollection;GetEnumerator;();Argument[this];ReturnValue;taint;df-generated | -| System.Collections.Generic;OrderedDictionary+ValueCollection+Enumerator;get_Current;();Argument[this].Property[System.Collections.Generic.OrderedDictionary`2+ValueCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Collections.Generic;OrderedDictionary+ValueCollection+Enumerator;get_Current;();Argument[this].Property[System.Collections.Generic.OrderedDictionary`2+ValueCollection+Enumerator.Current];ReturnValue;value;dfc-generated | | System.Collections.Generic;OrderedDictionary+ValueCollection;GetEnumerator;();Argument[this];ReturnValue;taint;df-generated | | System.Collections.Generic;OrderedDictionary;GetEnumerator;();Argument[this];ReturnValue;taint;df-generated | @@ -5404,10 +4910,8 @@ | System.Collections.Generic;PriorityQueue;TryPeek;(TElement,TPriority);Argument[this];Argument[0];taint;df-generated | | System.Collections.Generic;PriorityQueue;TryPeek;(TElement,TPriority);Argument[this];Argument[1];taint;df-generated | | System.Collections.Generic;PriorityQueue;get_Comparer;();Argument[this].SyntheticField[System.Collections.Generic.PriorityQueue`2._comparer];ReturnValue;value;dfc-generated | -| System.Collections.Generic;Queue+Enumerator;get_Current;();Argument[this].Property[System.Collections.Generic.Queue`1+Enumerator.Current];ReturnValue;value;df-generated | | System.Collections.Generic;Queue+Enumerator;get_Current;();Argument[this].Property[System.Collections.Generic.Queue`1+Enumerator.Current];ReturnValue;value;dfc-generated | | System.Collections.Generic;Queue+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Collections.Generic;Queue+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Collections.Generic;Queue;Clear;();Argument[this].WithoutElement;Argument[this];value;manual | | System.Collections.Generic;Queue;CopyTo;(T[],System.Int32);Argument[this].Element;Argument[0].Element;value;manual | | System.Collections.Generic;Queue;Dequeue;();Argument[this].SyntheticField[System.Collections.Generic.Queue`1._array].Element;ReturnValue;value;dfc-generated | @@ -5417,20 +4921,14 @@ | System.Collections.Generic;Queue;Queue;(System.Collections.Generic.IEnumerable);Argument[0].Element;Argument[this].SyntheticField[System.Collections.Generic.Queue`1._array].Element;value;dfc-generated | | System.Collections.Generic;Queue;TryDequeue;(T);Argument[this].SyntheticField[System.Collections.Generic.Queue`1._array].Element;Argument[0];value;dfc-generated | | System.Collections.Generic;Queue;TryPeek;(T);Argument[this].SyntheticField[System.Collections.Generic.Queue`1._array].Element;Argument[0];value;dfc-generated | -| System.Collections.Generic;SortedDictionary+Enumerator;get_Current;();Argument[this].Property[System.Collections.Generic.SortedDictionary`2+Enumerator.Current];ReturnValue;value;df-generated | | System.Collections.Generic;SortedDictionary+Enumerator;get_Current;();Argument[this].Property[System.Collections.Generic.SortedDictionary`2+Enumerator.Current];ReturnValue;value;dfc-generated | | System.Collections.Generic;SortedDictionary+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Collections.Generic;SortedDictionary+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | -| System.Collections.Generic;SortedDictionary+Enumerator;get_Key;();Argument[this].Property[System.Collections.Generic.SortedDictionary`2+Enumerator.Current].Property[System.Collections.Generic.KeyValuePair`2.Key];ReturnValue;value;df-generated | | System.Collections.Generic;SortedDictionary+Enumerator;get_Key;();Argument[this].Property[System.Collections.Generic.SortedDictionary`2+Enumerator.Current].Property[System.Collections.Generic.KeyValuePair`2.Key];ReturnValue;value;dfc-generated | -| System.Collections.Generic;SortedDictionary+Enumerator;get_Value;();Argument[this].Property[System.Collections.Generic.SortedDictionary`2+Enumerator.Current].Property[System.Collections.Generic.KeyValuePair`2.Value];ReturnValue;value;df-generated | | System.Collections.Generic;SortedDictionary+Enumerator;get_Value;();Argument[this].Property[System.Collections.Generic.SortedDictionary`2+Enumerator.Current].Property[System.Collections.Generic.KeyValuePair`2.Value];ReturnValue;value;dfc-generated | -| System.Collections.Generic;SortedDictionary+KeyCollection+Enumerator;get_Current;();Argument[this].Property[System.Collections.Generic.SortedDictionary`2+KeyCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Collections.Generic;SortedDictionary+KeyCollection+Enumerator;get_Current;();Argument[this].Property[System.Collections.Generic.SortedDictionary`2+KeyCollection+Enumerator.Current];ReturnValue;value;dfc-generated | | System.Collections.Generic;SortedDictionary+KeyCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.SortedDictionary`2+KeyCollection+Enumerator.Current];value;manual | | System.Collections.Generic;SortedDictionary+KeyCollection;KeyCollection;(System.Collections.Generic.SortedDictionary);Argument[0];Argument[this].SyntheticField[System.Collections.Generic.SortedDictionary`2+KeyCollection._dictionary];value;dfc-generated | | System.Collections.Generic;SortedDictionary+KeyCollection;get_SyncRoot;();Argument[this].SyntheticField[System.Collections.Generic.SortedDictionary`2+KeyCollection._dictionary].Property[System.Collections.ICollection.SyncRoot];ReturnValue;value;dfc-generated | -| System.Collections.Generic;SortedDictionary+ValueCollection+Enumerator;get_Current;();Argument[this].Property[System.Collections.Generic.SortedDictionary`2+ValueCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Collections.Generic;SortedDictionary+ValueCollection+Enumerator;get_Current;();Argument[this].Property[System.Collections.Generic.SortedDictionary`2+ValueCollection+Enumerator.Current];ReturnValue;value;dfc-generated | | System.Collections.Generic;SortedDictionary+ValueCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.SortedDictionary`2+ValueCollection+Enumerator.Current];value;manual | | System.Collections.Generic;SortedDictionary+ValueCollection;ValueCollection;(System.Collections.Generic.SortedDictionary);Argument[0];Argument[this].SyntheticField[System.Collections.Generic.SortedDictionary`2+ValueCollection._dictionary];value;dfc-generated | @@ -5495,10 +4993,8 @@ | System.Collections.Generic;SortedSet;get_Comparer;();Argument[this].SyntheticField[System.Collections.Generic.SortedSet`1.comparer];ReturnValue;value;dfc-generated | | System.Collections.Generic;SortedSet;get_Max;();Argument[this].SyntheticField[System.Collections.Generic.SortedSet`1.root].SyntheticField[System.Collections.Generic.SortedSet`1+Node.Item];ReturnValue;value;dfc-generated | | System.Collections.Generic;SortedSet;get_Min;();Argument[this].SyntheticField[System.Collections.Generic.SortedSet`1.root].SyntheticField[System.Collections.Generic.SortedSet`1+Node.Item];ReturnValue;value;dfc-generated | -| System.Collections.Generic;Stack+Enumerator;get_Current;();Argument[this].Property[System.Collections.Generic.Stack`1+Enumerator.Current];ReturnValue;value;df-generated | | System.Collections.Generic;Stack+Enumerator;get_Current;();Argument[this].Property[System.Collections.Generic.Stack`1+Enumerator.Current];ReturnValue;value;dfc-generated | | System.Collections.Generic;Stack+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Collections.Generic;Stack+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Collections.Generic;Stack;Clear;();Argument[this].WithoutElement;Argument[this];value;manual | | System.Collections.Generic;Stack;CopyTo;(T[],System.Int32);Argument[this].Element;Argument[0].Element;value;manual | | System.Collections.Generic;Stack;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.Stack`1+Enumerator.Current];value;manual | @@ -5532,14 +5028,10 @@ | System.Collections.Immutable;ImmutableArray;Create;(T,T,T,T);Argument[2];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableArray;Create;(T,T,T,T);Argument[3];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableArray;CreateRange;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableArray;CreateRange;(System.Collections.Immutable.ImmutableArray,System.Func,TArg);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableArray;CreateRange;(System.Collections.Immutable.ImmutableArray,System.Func,TArg);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableArray;CreateRange;(System.Collections.Immutable.ImmutableArray,System.Func,TArg);Argument[2];Argument[1].Parameter[1];value;dfc-generated | -| System.Collections.Immutable;ImmutableArray;CreateRange;(System.Collections.Immutable.ImmutableArray,System.Func,TArg);Argument[2];Argument[1].Parameter[1];value;hq-generated | -| System.Collections.Immutable;ImmutableArray;CreateRange;(System.Collections.Immutable.ImmutableArray,System.Int32,System.Int32,System.Func,TArg);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableArray;CreateRange;(System.Collections.Immutable.ImmutableArray,System.Int32,System.Int32,System.Func,TArg);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableArray;CreateRange;(System.Collections.Immutable.ImmutableArray,System.Int32,System.Int32,System.Func,TArg);Argument[4];Argument[3].Parameter[1];value;dfc-generated | -| System.Collections.Immutable;ImmutableArray;CreateRange;(System.Collections.Immutable.ImmutableArray,System.Int32,System.Int32,System.Func,TArg);Argument[4];Argument[3].Parameter[1];value;hq-generated | | System.Collections.Immutable;ImmutableArray;CreateRange;(System.Collections.Immutable.ImmutableArray,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableArray;CreateRange;(System.Collections.Immutable.ImmutableArray,System.Int32,System.Int32,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableArray;ToImmutableArray;(System.ReadOnlySpan);Argument[0].Element;ReturnValue.Element;value;manual | @@ -5569,10 +5061,8 @@ | System.Collections.Immutable;ImmutableArray+Builder;MoveToImmutable;();Argument[this].SyntheticField[System.Collections.Immutable.ImmutableArray`1+Builder._elements];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableArray`1.array];value;dfc-generated | | System.Collections.Immutable;ImmutableArray+Builder;Remove;(T,System.Collections.Generic.IEqualityComparer);Argument[0];Argument[1];taint;df-generated | | System.Collections.Immutable;ImmutableArray+Builder;Remove;(T,System.Collections.Generic.IEqualityComparer);Argument[this];Argument[1];taint;df-generated | -| System.Collections.Immutable;ImmutableArray+Builder;RemoveAll;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableArray+Builder;RemoveAll;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableArray+Builder;RemoveAll;(System.Predicate);Argument[this].SyntheticField[System.Collections.Immutable.ImmutableArray`1+Builder._elements].Element;Argument[0].Parameter[0];value;dfc-generated | -| System.Collections.Immutable;ImmutableArray+Builder;RemoveAll;(System.Predicate);Argument[this].SyntheticField[System.Collections.Immutable.ImmutableArray`1+Builder._elements].Element;Argument[0].Parameter[0];value;hq-generated | | System.Collections.Immutable;ImmutableArray+Builder;RemoveRange;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1];taint;df-generated | | System.Collections.Immutable;ImmutableArray+Builder;RemoveRange;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);Argument[this];Argument[1];taint;df-generated | | System.Collections.Immutable;ImmutableArray+Builder;Replace;(T,T);Argument[1];Argument[this].SyntheticField[System.Collections.Immutable.ImmutableArray`1+Builder._elements].Element;value;dfc-generated | @@ -5607,10 +5097,8 @@ | System.Collections.Immutable;ImmutableArray;IndexOf;(T,System.Int32,System.Collections.Generic.IEqualityComparer);Argument[this];Argument[2];taint;df-generated | | System.Collections.Immutable;ImmutableArray;IndexOf;(T,System.Int32,System.Int32,System.Collections.Generic.IEqualityComparer);Argument[0];Argument[3];taint;df-generated | | System.Collections.Immutable;ImmutableArray;IndexOf;(T,System.Int32,System.Int32,System.Collections.Generic.IEqualityComparer);Argument[this];Argument[3];taint;df-generated | -| System.Collections.Immutable;ImmutableArray;Insert;(System.Int32,T);Argument[1];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableArray`1.array].Element;value;df-generated | | System.Collections.Immutable;ImmutableArray;Insert;(System.Int32,T);Argument[1];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableArray`1.array].Element;value;dfc-generated | | System.Collections.Immutable;ImmutableArray;Insert;(System.Int32,T);Argument[1];ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableArray;Insert;(System.Int32,T);Argument[1];ReturnValue;taint;dfc-generated | | System.Collections.Immutable;ImmutableArray;InsertRange;(System.Int32,System.Collections.Generic.IEnumerable);Argument[1].Element;ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableArray`1.array].Element;value;dfc-generated | | System.Collections.Immutable;ImmutableArray;InsertRange;(System.Int32,System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableArray;InsertRange;(System.Int32,System.Collections.Immutable.ImmutableArray);Argument[1];ReturnValue;value;dfc-generated | @@ -5629,12 +5117,9 @@ | System.Collections.Immutable;ImmutableArray;OfType;();Argument[this].SyntheticField[System.Collections.Immutable.ImmutableArray`1.array].Element;ReturnValue.Element;value;dfc-generated | | System.Collections.Immutable;ImmutableArray;Remove;(T);Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableArray;Remove;(T,System.Collections.Generic.IEqualityComparer);Argument[this];ReturnValue;value;dfc-generated | -| System.Collections.Immutable;ImmutableArray;RemoveAll;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableArray;RemoveAll;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableArray;RemoveAll;(System.Predicate);Argument[this].SyntheticField[System.Collections.Immutable.ImmutableArray`1.array].Element;Argument[0].Parameter[0];value;dfc-generated | -| System.Collections.Immutable;ImmutableArray;RemoveAll;(System.Predicate);Argument[this].SyntheticField[System.Collections.Immutable.ImmutableArray`1.array].Element;Argument[0].Parameter[0];value;hq-generated | | System.Collections.Immutable;ImmutableArray;RemoveAll;(System.Predicate);Argument[this];ReturnValue;value;dfc-generated | -| System.Collections.Immutable;ImmutableArray;RemoveAll;(System.Predicate);Argument[this];ReturnValue;value;hq-generated | | System.Collections.Immutable;ImmutableArray;RemoveAt;(System.Int32);Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableArray;RemoveRange;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableArray;RemoveRange;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);Argument[this];ReturnValue;value;dfc-generated | @@ -5645,24 +5130,16 @@ | System.Collections.Immutable;ImmutableArray;RemoveRange;(T[],System.Collections.Generic.IEqualityComparer);Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableArray;Replace;(T,T);Argument[1];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableArray`1.array].Element;value;dfc-generated | | System.Collections.Immutable;ImmutableArray;Replace;(T,T,System.Collections.Generic.IEqualityComparer);Argument[0];Argument[2];taint;df-generated | -| System.Collections.Immutable;ImmutableArray;Replace;(T,T,System.Collections.Generic.IEqualityComparer);Argument[0];Argument[2];taint;dfc-generated | -| System.Collections.Immutable;ImmutableArray;Replace;(T,T,System.Collections.Generic.IEqualityComparer);Argument[1];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableArray`1.array].Element;value;df-generated | | System.Collections.Immutable;ImmutableArray;Replace;(T,T,System.Collections.Generic.IEqualityComparer);Argument[1];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableArray`1.array].Element;value;dfc-generated | | System.Collections.Immutable;ImmutableArray;Replace;(T,T,System.Collections.Generic.IEqualityComparer);Argument[1];ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableArray;Replace;(T,T,System.Collections.Generic.IEqualityComparer);Argument[1];ReturnValue;taint;dfc-generated | | System.Collections.Immutable;ImmutableArray;Replace;(T,T,System.Collections.Generic.IEqualityComparer);Argument[this];Argument[2];taint;df-generated | -| System.Collections.Immutable;ImmutableArray;Replace;(T,T,System.Collections.Generic.IEqualityComparer);Argument[this];Argument[2];taint;dfc-generated | -| System.Collections.Immutable;ImmutableArray;SetItem;(System.Int32,T);Argument[1];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableArray`1.array].Element;value;df-generated | | System.Collections.Immutable;ImmutableArray;SetItem;(System.Int32,T);Argument[1];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableArray`1.array].Element;value;dfc-generated | | System.Collections.Immutable;ImmutableArray;SetItem;(System.Int32,T);Argument[1];ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableArray;SetItem;(System.Int32,T);Argument[1];ReturnValue;taint;dfc-generated | | System.Collections.Immutable;ImmutableArray;Slice;(System.Int32,System.Int32);Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableArray;Sort;();Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableArray;Sort;(System.Collections.Generic.IComparer);Argument[this];ReturnValue;value;dfc-generated | -| System.Collections.Immutable;ImmutableArray;Sort;(System.Comparison);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableArray;Sort;(System.Comparison);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableArray;Sort;(System.Comparison);Argument[this];ReturnValue;value;dfc-generated | -| System.Collections.Immutable;ImmutableArray;Sort;(System.Comparison);Argument[this];ReturnValue;value;hq-generated | | System.Collections.Immutable;ImmutableArray;Sort;(System.Int32,System.Int32,System.Collections.Generic.IComparer);Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableArray;ToBuilder;();Argument[this].Element;ReturnValue.Element;value;dfc-generated | | System.Collections.Immutable;ImmutableArray;get_Item;(System.Int32);Argument[this].SyntheticField[System.Collections.Immutable.ImmutableArray`1.array].Element;ReturnValue;value;dfc-generated | @@ -5683,52 +5160,28 @@ | System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEqualityComparer);Argument[0];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer);Argument[0];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | -| System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | | System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;dfc-generated | -| System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;hq-generated | | System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[1].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;dfc-generated | -| System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[1].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;hq-generated | -| System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[2].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;dfc-generated | -| System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[2].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;hq-generated | -| System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | -| System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | | System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;dfc-generated | -| System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;hq-generated | | System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;dfc-generated | -| System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;hq-generated | -| System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;dfc-generated | -| System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;hq-generated | -| System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | -| System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | | System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;dfc-generated | -| System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;hq-generated | | System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer);Argument[1].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;dfc-generated | -| System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer);Argument[1].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;hq-generated | -| System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer);Argument[2].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;dfc-generated | -| System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer);Argument[2].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;hq-generated | -| System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | -| System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | | System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func);Argument[1].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;dfc-generated | -| System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func);Argument[1].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;hq-generated | -| System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | -| System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | | System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;dfc-generated | -| System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;hq-generated | -| System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableDictionary;ToImmutableDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableDictionary+Builder;Add;(System.Collections.Generic.KeyValuePair);Argument[0].Property[System.Collections.Generic.KeyValuePair`2.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | | System.Collections.Immutable;ImmutableDictionary+Builder;Add;(System.Collections.Generic.KeyValuePair);Argument[0].Property[System.Collections.Generic.KeyValuePair`2.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;manual | @@ -5739,10 +5192,8 @@ | System.Collections.Immutable;ImmutableDictionary+Builder;TryGetKey;(TKey,TKey);Argument[0];Argument[1];value;dfc-generated | | System.Collections.Immutable;ImmutableDictionary+Builder;get_Keys;();Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];ReturnValue.Element;value;manual | | System.Collections.Immutable;ImmutableDictionary+Builder;get_Values;();Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];ReturnValue.Element;value;manual | -| System.Collections.Immutable;ImmutableDictionary+Enumerator;get_Current;();Argument[this].Property[System.Collections.Immutable.ImmutableDictionary`2+Enumerator.Current];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableDictionary+Enumerator;get_Current;();Argument[this].Property[System.Collections.Immutable.ImmutableDictionary`2+Enumerator.Current];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableDictionary+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableDictionary+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Collections.Immutable;ImmutableDictionary;Add;(System.Collections.Generic.KeyValuePair);Argument[0].Property[System.Collections.Generic.KeyValuePair`2.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | | System.Collections.Immutable;ImmutableDictionary;Add;(System.Collections.Generic.KeyValuePair);Argument[0].Property[System.Collections.Generic.KeyValuePair`2.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;manual | | System.Collections.Immutable;ImmutableDictionary;Add;(TKey,TValue);Argument[0];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | @@ -5758,10 +5209,8 @@ | System.Collections.Immutable;ImmutableDictionary;SetItems;(System.Collections.Generic.IEnumerable>);Argument[this];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableDictionary;ToBuilder;();Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableDictionary;TryGetKey;(TKey,TKey);Argument[0];Argument[1];value;dfc-generated | -| System.Collections.Immutable;ImmutableDictionary;WithComparers;(System.Collections.Generic.IEqualityComparer);Argument[0];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableDictionary`2._comparers].SyntheticField[System.Collections.Immutable.ImmutableDictionary`2+Comparers._keyComparer];value;df-generated | | System.Collections.Immutable;ImmutableDictionary;WithComparers;(System.Collections.Generic.IEqualityComparer);Argument[0];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableDictionary`2._comparers].SyntheticField[System.Collections.Immutable.ImmutableDictionary`2+Comparers._keyComparer];value;dfc-generated | | System.Collections.Immutable;ImmutableDictionary;WithComparers;(System.Collections.Generic.IEqualityComparer);Argument[this];ReturnValue;value;df-generated | -| System.Collections.Immutable;ImmutableDictionary;WithComparers;(System.Collections.Generic.IEqualityComparer);Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableDictionary;WithComparers;(System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer);Argument[0];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableDictionary`2._comparers].SyntheticField[System.Collections.Immutable.ImmutableDictionary`2+Comparers._keyComparer];value;dfc-generated | | System.Collections.Immutable;ImmutableDictionary;WithComparers;(System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer);Argument[1];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableDictionary`2._comparers].SyntheticField[System.Collections.Immutable.ImmutableDictionary`2+Comparers._valueComparer];value;dfc-generated | | System.Collections.Immutable;ImmutableDictionary;WithComparers;(System.Collections.Generic.IEqualityComparer,System.Collections.Generic.IEqualityComparer);Argument[this];ReturnValue;value;dfc-generated | @@ -5781,10 +5230,8 @@ | System.Collections.Immutable;ImmutableHashSet+Builder;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableHashSet`1+Enumerator.Current];value;manual | | System.Collections.Immutable;ImmutableHashSet+Builder;SymmetricExceptWith;(System.Collections.Generic.IEnumerable);Argument[0].Element;Argument[this];taint;df-generated | | System.Collections.Immutable;ImmutableHashSet+Builder;TryGetValue;(T,T);Argument[0];Argument[1];value;dfc-generated | -| System.Collections.Immutable;ImmutableHashSet+Enumerator;get_Current;();Argument[this].Property[System.Collections.Immutable.ImmutableHashSet`1+Enumerator.Current];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableHashSet+Enumerator;get_Current;();Argument[this].Property[System.Collections.Immutable.ImmutableHashSet`1+Enumerator.Current];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableHashSet+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableHashSet+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Collections.Immutable;ImmutableHashSet;Add;(T);Argument[0];Argument[this].Element;value;manual | | System.Collections.Immutable;ImmutableHashSet;Clear;();Argument[this].WithoutElement;ReturnValue;value;manual | | System.Collections.Immutable;ImmutableHashSet;Except;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;value;df-generated | @@ -5794,55 +5241,32 @@ | System.Collections.Immutable;ImmutableHashSet;SymmetricExcept;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableHashSet;ToBuilder;();Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableHashSet;TryGetValue;(T,T);Argument[0];Argument[1];value;dfc-generated | -| System.Collections.Immutable;ImmutableHashSet;Union;(System.Collections.Generic.IEnumerable);Argument[0];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableHashSet;Union;(System.Collections.Generic.IEnumerable);Argument[0];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableHashSet;Union;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;value;df-generated | -| System.Collections.Immutable;ImmutableHashSet;Union;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableHashSet;WithComparer;(System.Collections.Generic.IEqualityComparer);Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableHashSet;get_KeyComparer;();Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableInterlocked;AddOrUpdate;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func,System.Func);Argument[1];Argument[2].Parameter[0];value;dfc-generated | -| System.Collections.Immutable;ImmutableInterlocked;AddOrUpdate;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func,System.Func);Argument[1];Argument[2].Parameter[0];value;hq-generated | | System.Collections.Immutable;ImmutableInterlocked;AddOrUpdate;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func,System.Func);Argument[1];Argument[3].Parameter[0];value;dfc-generated | -| System.Collections.Immutable;ImmutableInterlocked;AddOrUpdate;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func,System.Func);Argument[1];Argument[3].Parameter[0];value;hq-generated | | System.Collections.Immutable;ImmutableInterlocked;AddOrUpdate;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func,System.Func);Argument[2].ReturnValue;ReturnValue;value;dfc-generated | -| System.Collections.Immutable;ImmutableInterlocked;AddOrUpdate;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func,System.Func);Argument[2].ReturnValue;ReturnValue;value;hq-generated | -| System.Collections.Immutable;ImmutableInterlocked;AddOrUpdate;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableInterlocked;AddOrUpdate;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableInterlocked;AddOrUpdate;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func,System.Func);Argument[3].ReturnValue;ReturnValue;value;dfc-generated | -| System.Collections.Immutable;ImmutableInterlocked;AddOrUpdate;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func,System.Func);Argument[3].ReturnValue;ReturnValue;value;hq-generated | -| System.Collections.Immutable;ImmutableInterlocked;AddOrUpdate;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableInterlocked;AddOrUpdate;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableInterlocked;AddOrUpdate;(System.Collections.Immutable.ImmutableDictionary,TKey,TValue,System.Func);Argument[1];Argument[3].Parameter[0];value;dfc-generated | -| System.Collections.Immutable;ImmutableInterlocked;AddOrUpdate;(System.Collections.Immutable.ImmutableDictionary,TKey,TValue,System.Func);Argument[1];Argument[3].Parameter[0];value;hq-generated | | System.Collections.Immutable;ImmutableInterlocked;AddOrUpdate;(System.Collections.Immutable.ImmutableDictionary,TKey,TValue,System.Func);Argument[2];ReturnValue;value;dfc-generated | -| System.Collections.Immutable;ImmutableInterlocked;AddOrUpdate;(System.Collections.Immutable.ImmutableDictionary,TKey,TValue,System.Func);Argument[2];ReturnValue;value;hq-generated | | System.Collections.Immutable;ImmutableInterlocked;AddOrUpdate;(System.Collections.Immutable.ImmutableDictionary,TKey,TValue,System.Func);Argument[3].ReturnValue;ReturnValue;value;dfc-generated | -| System.Collections.Immutable;ImmutableInterlocked;AddOrUpdate;(System.Collections.Immutable.ImmutableDictionary,TKey,TValue,System.Func);Argument[3].ReturnValue;ReturnValue;value;hq-generated | -| System.Collections.Immutable;ImmutableInterlocked;AddOrUpdate;(System.Collections.Immutable.ImmutableDictionary,TKey,TValue,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableInterlocked;AddOrUpdate;(System.Collections.Immutable.ImmutableDictionary,TKey,TValue,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableInterlocked;GetOrAdd;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func,TArg);Argument[1];Argument[2].Parameter[0];value;dfc-generated | -| System.Collections.Immutable;ImmutableInterlocked;GetOrAdd;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func,TArg);Argument[1];Argument[2].Parameter[0];value;hq-generated | | System.Collections.Immutable;ImmutableInterlocked;GetOrAdd;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func,TArg);Argument[2].ReturnValue;ReturnValue;value;dfc-generated | -| System.Collections.Immutable;ImmutableInterlocked;GetOrAdd;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func,TArg);Argument[2].ReturnValue;ReturnValue;value;hq-generated | -| System.Collections.Immutable;ImmutableInterlocked;GetOrAdd;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func,TArg);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableInterlocked;GetOrAdd;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func,TArg);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableInterlocked;GetOrAdd;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func,TArg);Argument[3];Argument[2].Parameter[1];value;dfc-generated | -| System.Collections.Immutable;ImmutableInterlocked;GetOrAdd;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func,TArg);Argument[3];Argument[2].Parameter[1];value;hq-generated | | System.Collections.Immutable;ImmutableInterlocked;GetOrAdd;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func);Argument[1];Argument[2].Parameter[0];value;dfc-generated | -| System.Collections.Immutable;ImmutableInterlocked;GetOrAdd;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func);Argument[1];Argument[2].Parameter[0];value;hq-generated | | System.Collections.Immutable;ImmutableInterlocked;GetOrAdd;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func);Argument[2].ReturnValue;ReturnValue;value;dfc-generated | -| System.Collections.Immutable;ImmutableInterlocked;GetOrAdd;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func);Argument[2].ReturnValue;ReturnValue;value;hq-generated | -| System.Collections.Immutable;ImmutableInterlocked;GetOrAdd;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableInterlocked;GetOrAdd;(System.Collections.Immutable.ImmutableDictionary,TKey,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableInterlocked;GetOrAdd;(System.Collections.Immutable.ImmutableDictionary,TKey,TValue);Argument[2];ReturnValue;value;dfc-generated | -| System.Collections.Immutable;ImmutableInterlocked;Update;(System.Collections.Immutable.ImmutableArray,System.Func,TArg,System.Collections.Immutable.ImmutableArray>,TArg);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableInterlocked;Update;(System.Collections.Immutable.ImmutableArray,System.Func,TArg,System.Collections.Immutable.ImmutableArray>,TArg);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableInterlocked;Update;(System.Collections.Immutable.ImmutableArray,System.Func,TArg,System.Collections.Immutable.ImmutableArray>,TArg);Argument[2];Argument[1].Parameter[1];value;dfc-generated | -| System.Collections.Immutable;ImmutableInterlocked;Update;(System.Collections.Immutable.ImmutableArray,System.Func,TArg,System.Collections.Immutable.ImmutableArray>,TArg);Argument[2];Argument[1].Parameter[1];value;hq-generated | -| System.Collections.Immutable;ImmutableInterlocked;Update;(T,System.Func,TArg);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableInterlocked;Update;(T,System.Func,TArg);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableInterlocked;Update;(T,System.Func,TArg);Argument[2];Argument[1].Parameter[1];value;dfc-generated | -| System.Collections.Immutable;ImmutableInterlocked;Update;(T,System.Func,TArg);Argument[2];Argument[1].Parameter[1];value;hq-generated | | System.Collections.Immutable;ImmutableInterlocked;Update;(System.Collections.Immutable.ImmutableArray,System.Func,System.Collections.Immutable.ImmutableArray>);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableInterlocked;Update;(T,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableList;Create;(System.ReadOnlySpan);Argument[0];ReturnValue;taint;df-generated | @@ -5870,25 +5294,20 @@ | System.Collections.Immutable;ImmutableList+Builder;ConvertAll;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableList+Builder;CopyTo;(T[]);Argument[this];Argument[0].Element;taint;df-generated | | System.Collections.Immutable;ImmutableList+Builder;Exists;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Collections.Immutable;ImmutableList+Builder;Find;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Collections.Immutable;ImmutableList+Builder;Find;(System.Predicate);Argument[this].Element;Argument[0].Parameter[0];value;manual | | System.Collections.Immutable;ImmutableList+Builder;Find;(System.Predicate);Argument[this].Element;ReturnValue;value;manual | -| System.Collections.Immutable;ImmutableList+Builder;FindAll;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Collections.Immutable;ImmutableList+Builder;FindAll;(System.Predicate);Argument[this].Element;Argument[0].Parameter[0];value;manual | | System.Collections.Immutable;ImmutableList+Builder;FindAll;(System.Predicate);Argument[this].Element;ReturnValue;value;manual | | System.Collections.Immutable;ImmutableList+Builder;FindIndex;(System.Int32,System.Int32,System.Predicate);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableList+Builder;FindIndex;(System.Int32,System.Predicate);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableList+Builder;FindIndex;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Collections.Immutable;ImmutableList+Builder;FindLast;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Collections.Immutable;ImmutableList+Builder;FindLast;(System.Predicate);Argument[this].Element;Argument[0].Parameter[0];value;manual | | System.Collections.Immutable;ImmutableList+Builder;FindLast;(System.Predicate);Argument[this].Element;ReturnValue;value;manual | | System.Collections.Immutable;ImmutableList+Builder;FindLastIndex;(System.Int32,System.Int32,System.Predicate);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableList+Builder;FindLastIndex;(System.Int32,System.Predicate);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableList+Builder;FindLastIndex;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Collections.Immutable;ImmutableList+Builder;ForEach;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableList+Builder;ForEach;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableList+Builder;ForEach;(System.Action);Argument[this].Element;Argument[0].Parameter[0];value;dfc-generated | -| System.Collections.Immutable;ImmutableList+Builder;ForEach;(System.Action);Argument[this].Element;Argument[0].Parameter[0];value;hq-generated | | System.Collections.Immutable;ImmutableList+Builder;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableList`1+Enumerator.Current];value;manual | | System.Collections.Immutable;ImmutableList+Builder;GetRange;(System.Int32,System.Int32);Argument[this].Element;ReturnValue.Element;value;manual | | System.Collections.Immutable;ImmutableList+Builder;IndexOf;(T,System.Int32,System.Int32,System.Collections.Generic.IEqualityComparer);Argument[0];Argument[3];taint;df-generated | @@ -5901,10 +5320,8 @@ | System.Collections.Immutable;ImmutableList+Builder;Replace;(T,T,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[this];taint;df-generated | | System.Collections.Immutable;ImmutableList+Builder;Sort;(System.Comparison);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableList+Builder;TrueForAll;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Collections.Immutable;ImmutableList+Enumerator;get_Current;();Argument[this].Property[System.Collections.Immutable.ImmutableList`1+Enumerator.Current];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableList+Enumerator;get_Current;();Argument[this].Property[System.Collections.Immutable.ImmutableList`1+Enumerator.Current];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableList+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableList+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Collections.Immutable;ImmutableList;Add;(T);Argument[0];Argument[this].Element;value;manual | | System.Collections.Immutable;ImmutableList;AddRange;(System.Collections.Generic.IEnumerable);Argument[0].Element;Argument[this].Element;value;manual | | System.Collections.Immutable;ImmutableList;BinarySearch;(System.Int32,System.Int32,T,System.Collections.Generic.IComparer);Argument[2];Argument[3];taint;df-generated | @@ -5914,25 +5331,20 @@ | System.Collections.Immutable;ImmutableList;ConvertAll;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableList;CopyTo;(T[]);Argument[this];Argument[0].Element;taint;df-generated | | System.Collections.Immutable;ImmutableList;Exists;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Collections.Immutable;ImmutableList;Find;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Collections.Immutable;ImmutableList;Find;(System.Predicate);Argument[this].Element;Argument[0].Parameter[0];value;manual | | System.Collections.Immutable;ImmutableList;Find;(System.Predicate);Argument[this].Element;ReturnValue;value;manual | -| System.Collections.Immutable;ImmutableList;FindAll;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Collections.Immutable;ImmutableList;FindAll;(System.Predicate);Argument[this].Element;Argument[0].Parameter[0];value;manual | | System.Collections.Immutable;ImmutableList;FindAll;(System.Predicate);Argument[this].Element;ReturnValue;value;manual | | System.Collections.Immutable;ImmutableList;FindIndex;(System.Int32,System.Int32,System.Predicate);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableList;FindIndex;(System.Int32,System.Predicate);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableList;FindIndex;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Collections.Immutable;ImmutableList;FindLast;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Collections.Immutable;ImmutableList;FindLast;(System.Predicate);Argument[this].Element;Argument[0].Parameter[0];value;manual | | System.Collections.Immutable;ImmutableList;FindLast;(System.Predicate);Argument[this].Element;ReturnValue;value;manual | | System.Collections.Immutable;ImmutableList;FindLastIndex;(System.Int32,System.Int32,System.Predicate);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableList;FindLastIndex;(System.Int32,System.Predicate);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableList;FindLastIndex;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Collections.Immutable;ImmutableList;ForEach;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableList;ForEach;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableList;ForEach;(System.Action);Argument[this].Element;Argument[0].Parameter[0];value;dfc-generated | -| System.Collections.Immutable;ImmutableList;ForEach;(System.Action);Argument[this].Element;Argument[0].Parameter[0];value;hq-generated | | System.Collections.Immutable;ImmutableList;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableList`1+Enumerator.Current];value;manual | | System.Collections.Immutable;ImmutableList;GetRange;(System.Int32,System.Int32);Argument[this].Element;ReturnValue.Element;value;manual | | System.Collections.Immutable;ImmutableList;IndexOf;(T,System.Int32,System.Int32,System.Collections.Generic.IEqualityComparer);Argument[0];Argument[3];taint;df-generated | @@ -5961,10 +5373,8 @@ | System.Collections.Immutable;ImmutableList;SetItem;(System.Int32,T);Argument[this];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableList;Sort;();Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableList;Sort;(System.Collections.Generic.IComparer);Argument[this];ReturnValue;value;dfc-generated | -| System.Collections.Immutable;ImmutableList;Sort;(System.Comparison);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableList;Sort;(System.Comparison);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableList;Sort;(System.Comparison);Argument[this];ReturnValue;value;dfc-generated | -| System.Collections.Immutable;ImmutableList;Sort;(System.Comparison);Argument[this];ReturnValue;value;hq-generated | | System.Collections.Immutable;ImmutableList;Sort;(System.Int32,System.Int32,System.Collections.Generic.IComparer);Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableList;ToBuilder;();Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableList;TrueForAll;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | @@ -6000,40 +5410,22 @@ | System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[1];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[2];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | | System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;dfc-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;hq-generated | | System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[1].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;dfc-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[1].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;hq-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[2].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;dfc-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[2].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;hq-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | | System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;Argument[2].Parameter[0];value;dfc-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;Argument[2].Parameter[0];value;hq-generated | | System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer);Argument[1].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;dfc-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer);Argument[1].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;hq-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer);Argument[2].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;dfc-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer);Argument[2].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;hq-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | | System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;dfc-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;hq-generated | | System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[1].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;dfc-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[1].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;hq-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[2].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;dfc-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[2].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;hq-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Collections.Immutable;ImmutableSortedDictionary;ToImmutableSortedDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Collections.Immutable;ImmutableSortedDictionary+Builder;Add;(System.Collections.Generic.KeyValuePair);Argument[0].Property[System.Collections.Generic.KeyValuePair`2.Key];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;manual | | System.Collections.Immutable;ImmutableSortedDictionary+Builder;Add;(System.Collections.Generic.KeyValuePair);Argument[0].Property[System.Collections.Generic.KeyValuePair`2.Value];Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;manual | @@ -6055,25 +5447,18 @@ | System.Collections.Immutable;ImmutableSortedDictionary;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Immutable.ImmutableSortedDictionary`2+Enumerator.Current];value;manual | | System.Collections.Immutable;ImmutableSortedDictionary;Remove;(TKey);Argument[this];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;RemoveRange;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;value;df-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;SetItem;(TKey,TValue);Argument[0];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2._root].SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2+Node._key];value;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;SetItem;(TKey,TValue);Argument[0];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2._root].SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2+Node._key];value;dfc-generated | | System.Collections.Immutable;ImmutableSortedDictionary;SetItem;(TKey,TValue);Argument[this];ReturnValue;value;df-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;SetItem;(TKey,TValue);Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableSortedDictionary;SetItems;(System.Collections.Generic.IEnumerable>);Argument[0];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;SetItems;(System.Collections.Generic.IEnumerable>);Argument[this];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;ToBuilder;();Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;TryGetKey;(TKey,TKey);Argument[0];Argument[1];value;dfc-generated | | System.Collections.Immutable;ImmutableSortedDictionary;TryGetKey;(TKey,TKey);Argument[this].SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2._root].SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2+Node._key];Argument[1];value;dfc-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;WithComparers;(System.Collections.Generic.IComparer);Argument[0];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2._keyComparer];value;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;WithComparers;(System.Collections.Generic.IComparer);Argument[0];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2._keyComparer];value;dfc-generated | | System.Collections.Immutable;ImmutableSortedDictionary;WithComparers;(System.Collections.Generic.IComparer);Argument[this];ReturnValue;value;df-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;WithComparers;(System.Collections.Generic.IComparer);Argument[this];ReturnValue;value;dfc-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;WithComparers;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[0];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2._keyComparer];value;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;WithComparers;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[0];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2._keyComparer];value;dfc-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;WithComparers;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[1];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2._valueComparer];value;df-generated | | System.Collections.Immutable;ImmutableSortedDictionary;WithComparers;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[1];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2._valueComparer];value;dfc-generated | | System.Collections.Immutable;ImmutableSortedDictionary;WithComparers;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[this];ReturnValue;value;df-generated | -| System.Collections.Immutable;ImmutableSortedDictionary;WithComparers;(System.Collections.Generic.IComparer,System.Collections.Generic.IEqualityComparer);Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableSortedDictionary;get_Item;(TKey);Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];ReturnValue;value;manual | | System.Collections.Immutable;ImmutableSortedDictionary;get_KeyComparer;();Argument[this].SyntheticField[System.Collections.Immutable.ImmutableSortedDictionary`2._keyComparer];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableSortedDictionary;get_Keys;();Argument[this].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];ReturnValue.Element;value;manual | @@ -6103,10 +5488,8 @@ | System.Collections.Immutable;ImmutableSortedSet+Builder;UnionWith;(System.Collections.Generic.IEnumerable);Argument[0].Element;Argument[this].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1+Builder._root].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1+Node._key];value;dfc-generated | | System.Collections.Immutable;ImmutableSortedSet+Builder;get_Max;();Argument[this].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1+Builder._root].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1+Node._key];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableSortedSet+Builder;get_Min;();Argument[this].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1+Builder._root].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1+Node._key];ReturnValue;value;dfc-generated | -| System.Collections.Immutable;ImmutableSortedSet+Enumerator;get_Current;();Argument[this].Property[System.Collections.Immutable.ImmutableSortedSet`1+Enumerator.Current];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableSortedSet+Enumerator;get_Current;();Argument[this].Property[System.Collections.Immutable.ImmutableSortedSet`1+Enumerator.Current];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableSortedSet+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Collections.Immutable;ImmutableSortedSet+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Collections.Immutable;ImmutableSortedSet;Add;(T);Argument[0];Argument[this].Element;value;manual | | System.Collections.Immutable;ImmutableSortedSet;Clear;();Argument[this].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1._comparer];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1._comparer];value;dfc-generated | | System.Collections.Immutable;ImmutableSortedSet;Clear;();Argument[this];ReturnValue;value;dfc-generated | @@ -6116,21 +5499,16 @@ | System.Collections.Immutable;ImmutableSortedSet;Intersect;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableSortedSet;Remove;(T);Argument[this];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableSortedSet;Reverse;();Argument[this].Element;ReturnValue.Element;value;manual | -| System.Collections.Immutable;ImmutableSortedSet;SymmetricExcept;(System.Collections.Generic.IEnumerable);Argument[0].Element;Argument[this].Element;value;df-generated | | System.Collections.Immutable;ImmutableSortedSet;SymmetricExcept;(System.Collections.Generic.IEnumerable);Argument[0].Element;Argument[this].Element;value;dfc-generated | -| System.Collections.Immutable;ImmutableSortedSet;SymmetricExcept;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1._root].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1+Node._key];value;df-generated | | System.Collections.Immutable;ImmutableSortedSet;SymmetricExcept;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1._root].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1+Node._key];value;dfc-generated | | System.Collections.Immutable;ImmutableSortedSet;SymmetricExcept;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;value;df-generated | -| System.Collections.Immutable;ImmutableSortedSet;SymmetricExcept;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableSortedSet;ToBuilder;();Argument[this];ReturnValue;taint;df-generated | | System.Collections.Immutable;ImmutableSortedSet;TryGetValue;(T,T);Argument[0];Argument[1];value;dfc-generated | | System.Collections.Immutable;ImmutableSortedSet;TryGetValue;(T,T);Argument[this].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1._root].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1+Node._key];Argument[1];value;dfc-generated | | System.Collections.Immutable;ImmutableSortedSet;Union;(System.Collections.Generic.IEnumerable);Argument[0];ReturnValue;value;df-generated | | System.Collections.Immutable;ImmutableSortedSet;Union;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;value;df-generated | -| System.Collections.Immutable;ImmutableSortedSet;WithComparer;(System.Collections.Generic.IComparer);Argument[0];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1._comparer];value;df-generated | | System.Collections.Immutable;ImmutableSortedSet;WithComparer;(System.Collections.Generic.IComparer);Argument[0];ReturnValue.SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1._comparer];value;dfc-generated | | System.Collections.Immutable;ImmutableSortedSet;WithComparer;(System.Collections.Generic.IComparer);Argument[this];ReturnValue;value;df-generated | -| System.Collections.Immutable;ImmutableSortedSet;WithComparer;(System.Collections.Generic.IComparer);Argument[this];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableSortedSet;get_Item;(System.Int32);Argument[this].Element;ReturnValue;value;manual | | System.Collections.Immutable;ImmutableSortedSet;get_KeyComparer;();Argument[this].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1._comparer];ReturnValue;value;dfc-generated | | System.Collections.Immutable;ImmutableSortedSet;get_Max;();Argument[this].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1._root].SyntheticField[System.Collections.Immutable.ImmutableSortedSet`1+Node._key];ReturnValue;value;dfc-generated | @@ -6156,18 +5534,13 @@ | System.Collections.ObjectModel;Collection;get_SyncRoot;();Argument[this].SyntheticField[System.Collections.ObjectModel.Collection`1.items];ReturnValue;value;dfc-generated | | System.Collections.ObjectModel;KeyedCollection;ChangeItemKey;(TItem,TKey);Argument[0];Argument[this];taint;df-generated | | System.Collections.ObjectModel;KeyedCollection;ChangeItemKey;(TItem,TKey);Argument[1];Argument[this];taint;df-generated | -| System.Collections.ObjectModel;KeyedCollection;InsertItem;(System.Int32,TItem);Argument[1];Argument[this].SyntheticField[System.Collections.ObjectModel.Collection`1.items].Element;value;df-generated | -| System.Collections.ObjectModel;KeyedCollection;InsertItem;(System.Int32,TItem);Argument[1];Argument[this].SyntheticField[System.Collections.ObjectModel.Collection`1.items].Element;value;dfc-generated | | System.Collections.ObjectModel;KeyedCollection;InsertItem;(System.Int32,TItem);Argument[1];Argument[this];taint;df-generated | -| System.Collections.ObjectModel;KeyedCollection;InsertItem;(System.Int32,TItem);Argument[1];Argument[this];taint;dfc-generated | | System.Collections.ObjectModel;KeyedCollection;KeyedCollection;(System.Collections.Generic.IEqualityComparer,System.Int32);Argument[0];Argument[this].SyntheticField[System.Collections.ObjectModel.KeyedCollection`2.comparer];value;dfc-generated | | System.Collections.ObjectModel;KeyedCollection;SetItem;(System.Int32,TItem);Argument[1];Argument[this];taint;df-generated | | System.Collections.ObjectModel;KeyedCollection;TryGetValue;(TKey,TItem);Argument[this].Property[System.Collections.ObjectModel.Collection`1.Items].Element;Argument[1];value;dfc-generated | | System.Collections.ObjectModel;KeyedCollection;get_Comparer;();Argument[this].SyntheticField[System.Collections.ObjectModel.KeyedCollection`2.comparer];ReturnValue;value;dfc-generated | | System.Collections.ObjectModel;KeyedCollection;get_Dictionary;();Argument[this];ReturnValue;taint;df-generated | | System.Collections.ObjectModel;KeyedCollection;get_Item;(TKey);Argument[this].Element;ReturnValue;value;manual | -| System.Collections.ObjectModel;ObservableCollection;InsertItem;(System.Int32,T);Argument[1];Argument[this].SyntheticField[System.Collections.ObjectModel.Collection`1.items].Element;value;dfc-generated | -| System.Collections.ObjectModel;ObservableCollection;SetItem;(System.Int32,T);Argument[1];Argument[this];taint;df-generated | | System.Collections.ObjectModel;ObservableCollection;add_PropertyChanged;(System.ComponentModel.PropertyChangedEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.ObjectModel;ObservableCollection;remove_PropertyChanged;(System.ComponentModel.PropertyChangedEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Collections.ObjectModel;ReadOnlyCollection;CreateCollection;(System.ReadOnlySpan);Argument[0];ReturnValue;taint;df-generated | @@ -6292,9 +5665,7 @@ | System.Collections;CaseInsensitiveHashCodeProvider;CaseInsensitiveHashCodeProvider;(System.Globalization.CultureInfo);Argument[0];Argument[this];taint;df-generated | | System.Collections;CollectionBase;OnInsert;(System.Int32,System.Object);Argument[1];Argument[this];taint;df-generated | | System.Collections;CollectionBase;OnSet;(System.Int32,System.Object,System.Object);Argument[2];Argument[this];taint;df-generated | -| System.Collections;CollectionBase;Remove;(System.Object);Argument[0];Argument[this].Property[System.Collections.CollectionBase.InnerList].Element;value;df-generated | | System.Collections;CollectionBase;Remove;(System.Object);Argument[0];Argument[this].Property[System.Collections.CollectionBase.InnerList].Element;value;dfc-generated | -| System.Collections;CollectionBase;Remove;(System.Object);Argument[0];Argument[this].SyntheticField[System.Collections.CollectionBase._list].Element;value;df-generated | | System.Collections;CollectionBase;Remove;(System.Object);Argument[0];Argument[this].SyntheticField[System.Collections.CollectionBase._list].Element;value;dfc-generated | | System.Collections;CollectionBase;get_InnerList;();Argument[this].SyntheticField[System.Collections.CollectionBase._list];ReturnValue;value;dfc-generated | | System.Collections;CollectionBase;get_List;();Argument[this];ReturnValue;value;dfc-generated | @@ -6387,7 +5758,6 @@ | System.ComponentModel.DataAnnotations;CompareAttribute;CompareAttribute;(System.String);Argument[0];Argument[this].Property[System.ComponentModel.DataAnnotations.CompareAttribute.OtherProperty];value;dfc-generated | | System.ComponentModel.DataAnnotations;CompareAttribute;FormatErrorMessage;(System.String);Argument[this].Property[System.ComponentModel.DataAnnotations.CompareAttribute.OtherPropertyDisplayName];ReturnValue;taint;dfc-generated | | System.ComponentModel.DataAnnotations;CompareAttribute;FormatErrorMessage;(System.String);Argument[this].Property[System.ComponentModel.DataAnnotations.CompareAttribute.OtherProperty];ReturnValue;taint;dfc-generated | -| System.ComponentModel.DataAnnotations;CompareAttribute;IsValid;(System.Object,System.ComponentModel.DataAnnotations.ValidationContext);Argument[this].Property[System.ComponentModel.DataAnnotations.CompareAttribute.OtherProperty];Argument[this].Property[System.ComponentModel.DataAnnotations.CompareAttribute.OtherPropertyDisplayName];value;df-generated | | System.ComponentModel.DataAnnotations;CompareAttribute;IsValid;(System.Object,System.ComponentModel.DataAnnotations.ValidationContext);Argument[this].Property[System.ComponentModel.DataAnnotations.CompareAttribute.OtherProperty];Argument[this].Property[System.ComponentModel.DataAnnotations.CompareAttribute.OtherPropertyDisplayName];value;dfc-generated | | System.ComponentModel.DataAnnotations;CustomValidationAttribute;CustomValidationAttribute;(System.Type,System.String);Argument[1];Argument[this].Property[System.ComponentModel.DataAnnotations.CustomValidationAttribute.Method];value;dfc-generated | | System.ComponentModel.DataAnnotations;DataTypeAttribute;GetDataTypeName;();Argument[this].Property[System.ComponentModel.DataAnnotations.DataTypeAttribute.CustomDataType];ReturnValue;value;dfc-generated | @@ -6449,11 +5819,8 @@ | System.ComponentModel.Design.Serialization;DesignerSerializerAttribute;DesignerSerializerAttribute;(System.String,System.String);Argument[0];Argument[this].Property[System.ComponentModel.Design.Serialization.DesignerSerializerAttribute.SerializerTypeName];value;dfc-generated | | System.ComponentModel.Design.Serialization;DesignerSerializerAttribute;DesignerSerializerAttribute;(System.String,System.String);Argument[1];Argument[this].Property[System.ComponentModel.Design.Serialization.DesignerSerializerAttribute.SerializerBaseTypeName];value;dfc-generated | | System.ComponentModel.Design.Serialization;DesignerSerializerAttribute;DesignerSerializerAttribute;(System.String,System.Type);Argument[0];Argument[this].Property[System.ComponentModel.Design.Serialization.DesignerSerializerAttribute.SerializerTypeName];value;dfc-generated | -| System.ComponentModel.Design.Serialization;DesignerSerializerAttribute;get_TypeId;();Argument[this].Property[System.ComponentModel.Design.Serialization.DesignerSerializerAttribute.SerializerBaseTypeName];Argument[this].SyntheticField[System.ComponentModel.Design.Serialization.DesignerSerializerAttribute._typeId];taint;df-generated | | System.ComponentModel.Design.Serialization;DesignerSerializerAttribute;get_TypeId;();Argument[this].Property[System.ComponentModel.Design.Serialization.DesignerSerializerAttribute.SerializerBaseTypeName];Argument[this].SyntheticField[System.ComponentModel.Design.Serialization.DesignerSerializerAttribute._typeId];taint;dfc-generated | -| System.ComponentModel.Design.Serialization;DesignerSerializerAttribute;get_TypeId;();Argument[this].Property[System.ComponentModel.Design.Serialization.DesignerSerializerAttribute.SerializerBaseTypeName];ReturnValue;taint;df-generated | | System.ComponentModel.Design.Serialization;DesignerSerializerAttribute;get_TypeId;();Argument[this].Property[System.ComponentModel.Design.Serialization.DesignerSerializerAttribute.SerializerBaseTypeName];ReturnValue;taint;dfc-generated | -| System.ComponentModel.Design.Serialization;DesignerSerializerAttribute;get_TypeId;();Argument[this].SyntheticField[System.ComponentModel.Design.Serialization.DesignerSerializerAttribute._typeId];ReturnValue;value;df-generated | | System.ComponentModel.Design.Serialization;DesignerSerializerAttribute;get_TypeId;();Argument[this].SyntheticField[System.ComponentModel.Design.Serialization.DesignerSerializerAttribute._typeId];ReturnValue;value;dfc-generated | | System.ComponentModel.Design.Serialization;IDesignerSerializationManager;add_ResolveName;(System.ComponentModel.Design.Serialization.ResolveNameEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.ComponentModel.Design.Serialization;IDesignerSerializationManager;add_SerializationComplete;(System.EventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | @@ -6568,12 +5935,9 @@ | System.ComponentModel;AmbientValueAttribute;AmbientValueAttribute;(System.String);Argument[0];Argument[this].SyntheticField[System.ComponentModel.AmbientValueAttribute._value];value;dfc-generated | | System.ComponentModel;AmbientValueAttribute;AmbientValueAttribute;(System.Type,System.String);Argument[1];Argument[this].SyntheticField[System.ComponentModel.AmbientValueAttribute._value];value;dfc-generated | | System.ComponentModel;AmbientValueAttribute;get_Value;();Argument[this].SyntheticField[System.ComponentModel.AmbientValueAttribute._value];ReturnValue;value;dfc-generated | -| System.ComponentModel;ArrayConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;ArrayConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.ComponentModel;ArrayConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;ArrayConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;ArrayConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.ComponentModel;ArrayConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;ArrayConverter;GetProperties;(System.ComponentModel.ITypeDescriptorContext,System.Object,System.Attribute[]);Argument[1];ReturnValue;taint;df-generated | | System.ComponentModel;AsyncCompletedEventArgs;AsyncCompletedEventArgs;(System.Exception,System.Boolean,System.Object);Argument[0];Argument[this].Property[System.ComponentModel.AsyncCompletedEventArgs.Error];value;dfc-generated | | System.ComponentModel;AsyncCompletedEventArgs;AsyncCompletedEventArgs;(System.Exception,System.Boolean,System.Object);Argument[2];Argument[this].Property[System.ComponentModel.AsyncCompletedEventArgs.UserState];value;dfc-generated | @@ -6601,16 +5965,11 @@ | System.ComponentModel;BaseNumberConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel;BaseNumberConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;BaseNumberConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.ComponentModel;BaseNumberConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;BaseNumberConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.ComponentModel;BaseNumberConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;BaseNumberConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;BaseNumberConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.ComponentModel;BaseNumberConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | -| System.ComponentModel;BindingList;InsertItem;(System.Int32,T);Argument[1];Argument[this].SyntheticField[System.Collections.ObjectModel.Collection`1.items].Element;value;dfc-generated | | System.ComponentModel;BindingList;OnAddingNew;(System.ComponentModel.AddingNewEventArgs);Argument[0];Argument[this];taint;df-generated | | System.ComponentModel;BindingList;OnListChanged;(System.ComponentModel.ListChangedEventArgs);Argument[0];Argument[this];taint;df-generated | -| System.ComponentModel;BindingList;SetItem;(System.Int32,T);Argument[1];Argument[this];taint;df-generated | | System.ComponentModel;BindingList;add_AddingNew;(System.ComponentModel.AddingNewEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.ComponentModel;BindingList;get_SortProperty;();Argument[this].Property[System.ComponentModel.BindingList`1.SortPropertyCore];ReturnValue;value;dfc-generated | | System.ComponentModel;BindingList;remove_AddingNew;(System.ComponentModel.AddingNewEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | @@ -6624,19 +5983,13 @@ | System.ComponentModel;CharConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel;CharConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;CharConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.ComponentModel;CharConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;CharConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.ComponentModel;CharConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;CharConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;CharConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.ComponentModel;CharConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;CollectionChangeEventHandler;BeginInvoke;(System.Object,System.ComponentModel.CollectionChangeEventArgs,System.AsyncCallback,System.Object);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| System.ComponentModel;CollectionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;CollectionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.ComponentModel;CollectionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;CollectionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;CollectionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.ComponentModel;CollectionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;CollectionConverter;GetProperties;(System.ComponentModel.ITypeDescriptorContext,System.Object,System.Attribute[]);Argument[1];ReturnValue;taint;df-generated | | System.ComponentModel;ComplexBindingPropertiesAttribute;ComplexBindingPropertiesAttribute;(System.String);Argument[0];Argument[this].Property[System.ComponentModel.ComplexBindingPropertiesAttribute.DataSource];value;dfc-generated | | System.ComponentModel;ComplexBindingPropertiesAttribute;ComplexBindingPropertiesAttribute;(System.String,System.String);Argument[0];Argument[this].Property[System.ComponentModel.ComplexBindingPropertiesAttribute.DataSource];value;dfc-generated | @@ -6656,12 +6009,9 @@ | System.ComponentModel;CultureInfoConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel;CultureInfoConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;CultureInfoConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.ComponentModel;CultureInfoConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;CultureInfoConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.ComponentModel;CultureInfoConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;CultureInfoConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;CultureInfoConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.ComponentModel;CultureInfoConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;CultureInfoConverter;GetCultureName;(System.Globalization.CultureInfo);Argument[0].Property[System.Globalization.CultureInfo.Name];ReturnValue;value;dfc-generated | | System.ComponentModel;CultureInfoConverter;GetStandardValues;(System.ComponentModel.ITypeDescriptorContext);Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;CustomTypeDescriptor;CustomTypeDescriptor;(System.ComponentModel.ICustomTypeDescriptor);Argument[0];Argument[this].SyntheticField[System.ComponentModel.CustomTypeDescriptor._parent];value;dfc-generated | @@ -6669,36 +6019,24 @@ | System.ComponentModel;DateOnlyConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel;DateOnlyConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;DateOnlyConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.ComponentModel;DateOnlyConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;DateOnlyConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.ComponentModel;DateOnlyConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;DateOnlyConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;DateOnlyConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.ComponentModel;DateOnlyConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;DateTimeConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel;DateTimeConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;DateTimeConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.ComponentModel;DateTimeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;DateTimeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.ComponentModel;DateTimeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;DateTimeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;DateTimeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.ComponentModel;DateTimeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;DateTimeOffsetConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel;DateTimeOffsetConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;DateTimeOffsetConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.ComponentModel;DateTimeOffsetConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;DateTimeOffsetConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.ComponentModel;DateTimeOffsetConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;DateTimeOffsetConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;DateTimeOffsetConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.ComponentModel;DateTimeOffsetConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | -| System.ComponentModel;DecimalConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;DecimalConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.ComponentModel;DecimalConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;DecimalConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;DecimalConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.ComponentModel;DecimalConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;DefaultBindingPropertyAttribute;DefaultBindingPropertyAttribute;(System.String);Argument[0];Argument[this].Property[System.ComponentModel.DefaultBindingPropertyAttribute.Name];value;dfc-generated | | System.ComponentModel;DefaultEventAttribute;DefaultEventAttribute;(System.String);Argument[0];Argument[this].Property[System.ComponentModel.DefaultEventAttribute.Name];value;dfc-generated | | System.ComponentModel;DefaultPropertyAttribute;DefaultPropertyAttribute;(System.String);Argument[0];Argument[this].Property[System.ComponentModel.DefaultPropertyAttribute.Name];value;dfc-generated | @@ -6713,14 +6051,10 @@ | System.ComponentModel;DesignerAttribute;DesignerAttribute;(System.String,System.String);Argument[0];Argument[this].Property[System.ComponentModel.DesignerAttribute.DesignerTypeName];value;dfc-generated | | System.ComponentModel;DesignerAttribute;DesignerAttribute;(System.String,System.String);Argument[1];Argument[this].Property[System.ComponentModel.DesignerAttribute.DesignerBaseTypeName];value;dfc-generated | | System.ComponentModel;DesignerAttribute;DesignerAttribute;(System.String,System.Type);Argument[0];Argument[this].Property[System.ComponentModel.DesignerAttribute.DesignerTypeName];value;dfc-generated | -| System.ComponentModel;DesignerAttribute;get_TypeId;();Argument[this].Property[System.ComponentModel.DesignerAttribute.DesignerBaseTypeName];Argument[this].SyntheticField[System.ComponentModel.DesignerAttribute._typeId];taint;df-generated | | System.ComponentModel;DesignerAttribute;get_TypeId;();Argument[this].Property[System.ComponentModel.DesignerAttribute.DesignerBaseTypeName];Argument[this].SyntheticField[System.ComponentModel.DesignerAttribute._typeId];taint;dfc-generated | -| System.ComponentModel;DesignerAttribute;get_TypeId;();Argument[this].Property[System.ComponentModel.DesignerAttribute.DesignerBaseTypeName];ReturnValue;taint;df-generated | | System.ComponentModel;DesignerAttribute;get_TypeId;();Argument[this].Property[System.ComponentModel.DesignerAttribute.DesignerBaseTypeName];ReturnValue;taint;dfc-generated | -| System.ComponentModel;DesignerAttribute;get_TypeId;();Argument[this].SyntheticField[System.ComponentModel.DesignerAttribute._typeId];ReturnValue;value;df-generated | | System.ComponentModel;DesignerAttribute;get_TypeId;();Argument[this].SyntheticField[System.ComponentModel.DesignerAttribute._typeId];ReturnValue;value;dfc-generated | | System.ComponentModel;DesignerCategoryAttribute;DesignerCategoryAttribute;(System.String);Argument[0];Argument[this].Property[System.ComponentModel.DesignerCategoryAttribute.Category];value;dfc-generated | -| System.ComponentModel;DesignerCategoryAttribute;get_TypeId;();Argument[this].Property[System.ComponentModel.DesignerCategoryAttribute.Category];ReturnValue;taint;df-generated | | System.ComponentModel;DesignerCategoryAttribute;get_TypeId;();Argument[this].Property[System.ComponentModel.DesignerCategoryAttribute.Category];ReturnValue;taint;dfc-generated | | System.ComponentModel;DisplayNameAttribute;DisplayNameAttribute;(System.String);Argument[0];Argument[this].Property[System.ComponentModel.DisplayNameAttribute.DisplayNameValue];value;dfc-generated | | System.ComponentModel;DisplayNameAttribute;get_DisplayName;();Argument[this].Property[System.ComponentModel.DisplayNameAttribute.DisplayNameValue];ReturnValue;value;dfc-generated | @@ -6729,25 +6063,16 @@ | System.ComponentModel;EditorAttribute;EditorAttribute;(System.String,System.String);Argument[0];Argument[this].Property[System.ComponentModel.EditorAttribute.EditorTypeName];value;dfc-generated | | System.ComponentModel;EditorAttribute;EditorAttribute;(System.String,System.String);Argument[1];Argument[this].Property[System.ComponentModel.EditorAttribute.EditorBaseTypeName];value;dfc-generated | | System.ComponentModel;EditorAttribute;EditorAttribute;(System.String,System.Type);Argument[0];Argument[this].Property[System.ComponentModel.EditorAttribute.EditorTypeName];value;dfc-generated | -| System.ComponentModel;EditorAttribute;get_TypeId;();Argument[this].Property[System.ComponentModel.EditorAttribute.EditorBaseTypeName];Argument[this].SyntheticField[System.ComponentModel.EditorAttribute._typeId];taint;df-generated | | System.ComponentModel;EditorAttribute;get_TypeId;();Argument[this].Property[System.ComponentModel.EditorAttribute.EditorBaseTypeName];Argument[this].SyntheticField[System.ComponentModel.EditorAttribute._typeId];taint;dfc-generated | -| System.ComponentModel;EditorAttribute;get_TypeId;();Argument[this].Property[System.ComponentModel.EditorAttribute.EditorBaseTypeName];ReturnValue;taint;df-generated | | System.ComponentModel;EditorAttribute;get_TypeId;();Argument[this].Property[System.ComponentModel.EditorAttribute.EditorBaseTypeName];ReturnValue;taint;dfc-generated | -| System.ComponentModel;EditorAttribute;get_TypeId;();Argument[this].SyntheticField[System.ComponentModel.EditorAttribute._typeId];ReturnValue;value;df-generated | | System.ComponentModel;EditorAttribute;get_TypeId;();Argument[this].SyntheticField[System.ComponentModel.EditorAttribute._typeId];ReturnValue;value;dfc-generated | | System.ComponentModel;EnumConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel;EnumConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;EnumConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.ComponentModel;EnumConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;EnumConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.ComponentModel;EnumConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;EnumConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;EnumConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.ComponentModel;EnumConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | -| System.ComponentModel;EnumConverter;GetStandardValues;(System.ComponentModel.ITypeDescriptorContext);Argument[this].Property[System.ComponentModel.EnumConverter.Values];ReturnValue;value;df-generated | | System.ComponentModel;EnumConverter;GetStandardValues;(System.ComponentModel.ITypeDescriptorContext);Argument[this].Property[System.ComponentModel.EnumConverter.Values];ReturnValue;value;dfc-generated | -| System.ComponentModel;EnumConverter;GetStandardValues;(System.ComponentModel.ITypeDescriptorContext);Argument[this];ReturnValue;taint;df-generated | -| System.ComponentModel;EnumConverter;GetStandardValues;(System.ComponentModel.ITypeDescriptorContext);Argument[this];ReturnValue;taint;dfc-generated | | System.ComponentModel;EventDescriptorCollection;Add;(System.ComponentModel.EventDescriptor);Argument[0];Argument[this].Element;value;manual | | System.ComponentModel;EventDescriptorCollection;Clear;();Argument[this].WithoutElement;Argument[this];value;manual | | System.ComponentModel;EventDescriptorCollection;EventDescriptorCollection;(System.ComponentModel.EventDescriptor[]);Argument[0].Element;Argument[this];taint;df-generated | @@ -6772,12 +6097,9 @@ | System.ComponentModel;GuidConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel;GuidConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;GuidConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.ComponentModel;GuidConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;GuidConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.ComponentModel;GuidConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;GuidConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;GuidConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.ComponentModel;GuidConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;HandledEventHandler;BeginInvoke;(System.Object,System.ComponentModel.HandledEventArgs,System.AsyncCallback,System.Object);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.ComponentModel;IBindingList;AddIndex;(System.ComponentModel.PropertyDescriptor);Argument[0];Argument[this];taint;df-generated | | System.ComponentModel;IBindingList;ApplySort;(System.ComponentModel.PropertyDescriptor,System.ComponentModel.ListSortDirection);Argument[0];Argument[this];taint;df-generated | @@ -6822,7 +6144,6 @@ | System.ComponentModel;LicenseProvider;GetLicense;(System.ComponentModel.LicenseContext,System.Type,System.Object,System.Boolean);Argument[0];ReturnValue;taint;df-generated | | System.ComponentModel;LicenseProvider;GetLicense;(System.ComponentModel.LicenseContext,System.Type,System.Object,System.Boolean);Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;LicenseProviderAttribute;LicenseProviderAttribute;(System.String);Argument[0];Argument[this].SyntheticField[System.ComponentModel.LicenseProviderAttribute._licenseProviderName];value;dfc-generated | -| System.ComponentModel;LicenseProviderAttribute;get_TypeId;();Argument[this].SyntheticField[System.ComponentModel.LicenseProviderAttribute._licenseProviderName];ReturnValue;taint;df-generated | | System.ComponentModel;LicenseProviderAttribute;get_TypeId;();Argument[this].SyntheticField[System.ComponentModel.LicenseProviderAttribute._licenseProviderName];ReturnValue;taint;dfc-generated | | System.ComponentModel;ListChangedEventArgs;ListChangedEventArgs;(System.ComponentModel.ListChangedType,System.ComponentModel.PropertyDescriptor);Argument[1];Argument[this].Property[System.ComponentModel.ListChangedEventArgs.PropertyDescriptor];value;dfc-generated | | System.ComponentModel;ListChangedEventHandler;BeginInvoke;(System.Object,System.ComponentModel.ListChangedEventArgs,System.AsyncCallback,System.Object);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | @@ -6859,30 +6180,16 @@ | System.ComponentModel;MemberDescriptor;get_Attributes;();Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;MemberDescriptor;get_DisplayName;();Argument[this].SyntheticField[System.ComponentModel.MemberDescriptor._displayName];ReturnValue;value;dfc-generated | | System.ComponentModel;MemberDescriptor;get_Name;();Argument[this].SyntheticField[System.ComponentModel.MemberDescriptor._name];ReturnValue;value;dfc-generated | -| System.ComponentModel;MultilineStringConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;MultilineStringConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.ComponentModel;MultilineStringConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;MultilineStringConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;MultilineStringConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.ComponentModel;MultilineStringConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;MultilineStringConverter;GetProperties;(System.ComponentModel.ITypeDescriptorContext,System.Object,System.Attribute[]);Argument[1];ReturnValue;taint;df-generated | | System.ComponentModel;NestedContainer;CreateSite;(System.ComponentModel.IComponent,System.String);Argument[1];ReturnValue.SyntheticField[System.ComponentModel.NestedContainer+Site._name];value;dfc-generated | -| System.ComponentModel;NestedContainer;CreateSite;(System.ComponentModel.IComponent,System.String);Argument[this];ReturnValue.SyntheticField[System.ComponentModel.Container+Site.Container];value;dfc-generated | | System.ComponentModel;NestedContainer;CreateSite;(System.ComponentModel.IComponent,System.String);Argument[this];ReturnValue.SyntheticField[System.ComponentModel.NestedContainer+Site.Container];value;dfc-generated | | System.ComponentModel;NestedContainer;GetService;(System.Type);Argument[this];ReturnValue;value;dfc-generated | | System.ComponentModel;NestedContainer;NestedContainer;(System.ComponentModel.IComponent);Argument[0];Argument[this].Property[System.ComponentModel.NestedContainer.Owner];value;dfc-generated | | System.ComponentModel;NullableConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2].Property[System.Uri.OriginalString];ReturnValue;taint;dfc-generated | -| System.ComponentModel;NullableConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | -| System.ComponentModel;NullableConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | -| System.ComponentModel;NullableConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.ComponentModel;NullableConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;df-generated | | System.ComponentModel;NullableConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;dfc-generated | -| System.ComponentModel;NullableConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | -| System.ComponentModel;NullableConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.ComponentModel;NullableConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | -| System.ComponentModel;NullableConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | -| System.ComponentModel;NullableConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.ComponentModel;NullableConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;NullableConverter;GetProperties;(System.ComponentModel.ITypeDescriptorContext,System.Object,System.Attribute[]);Argument[1];ReturnValue;taint;df-generated | | System.ComponentModel;NullableConverter;GetStandardValues;(System.ComponentModel.ITypeDescriptorContext);Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;ProgressChangedEventArgs;ProgressChangedEventArgs;(System.Int32,System.Object);Argument[1];Argument[this].SyntheticField[System.ComponentModel.ProgressChangedEventArgs._userState];value;dfc-generated | @@ -6939,17 +6246,13 @@ | System.ComponentModel;ProvidePropertyAttribute;ProvidePropertyAttribute;(System.String,System.String);Argument[0];Argument[this].Property[System.ComponentModel.ProvidePropertyAttribute.PropertyName];value;dfc-generated | | System.ComponentModel;ProvidePropertyAttribute;ProvidePropertyAttribute;(System.String,System.String);Argument[1];Argument[this].Property[System.ComponentModel.ProvidePropertyAttribute.ReceiverTypeName];value;dfc-generated | | System.ComponentModel;ProvidePropertyAttribute;ProvidePropertyAttribute;(System.String,System.Type);Argument[0];Argument[this].Property[System.ComponentModel.ProvidePropertyAttribute.PropertyName];value;dfc-generated | -| System.ComponentModel;ProvidePropertyAttribute;get_TypeId;();Argument[this].Property[System.ComponentModel.ProvidePropertyAttribute.PropertyName];ReturnValue;taint;df-generated | | System.ComponentModel;ProvidePropertyAttribute;get_TypeId;();Argument[this].Property[System.ComponentModel.ProvidePropertyAttribute.PropertyName];ReturnValue;taint;dfc-generated | | System.ComponentModel;ReferenceConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel;ReferenceConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;ReferenceConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.ComponentModel;ReferenceConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;ReferenceConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.ComponentModel;ReferenceConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;ReferenceConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;ReferenceConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.ComponentModel;ReferenceConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;ReferenceConverter;GetStandardValues;(System.ComponentModel.ITypeDescriptorContext);Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;RefreshEventArgs;RefreshEventArgs;(System.Object);Argument[0];Argument[this].Property[System.ComponentModel.RefreshEventArgs.ComponentChanged];value;dfc-generated | | System.ComponentModel;RefreshEventHandler;BeginInvoke;(System.ComponentModel.RefreshEventArgs,System.AsyncCallback,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | @@ -6963,21 +6266,15 @@ | System.ComponentModel;TimeOnlyConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel;TimeOnlyConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;TimeOnlyConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.ComponentModel;TimeOnlyConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;TimeOnlyConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.ComponentModel;TimeOnlyConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;TimeOnlyConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;TimeOnlyConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.ComponentModel;TimeOnlyConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;TimeSpanConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel;TimeSpanConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;TimeSpanConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.ComponentModel;TimeSpanConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;TimeSpanConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.ComponentModel;TimeSpanConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;TimeSpanConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;TimeSpanConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.ComponentModel;TimeSpanConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;ToolboxItemAttribute;ToolboxItemAttribute;(System.String);Argument[0];Argument[this].SyntheticField[System.ComponentModel.ToolboxItemAttribute._toolboxItemTypeName];value;dfc-generated | | System.ComponentModel;ToolboxItemAttribute;get_ToolboxItemTypeName;();Argument[this].SyntheticField[System.ComponentModel.ToolboxItemAttribute._toolboxItemTypeName];ReturnValue;value;dfc-generated | | System.ComponentModel;ToolboxItemFilterAttribute;ToString;();Argument[this].Property[System.ComponentModel.ToolboxItemFilterAttribute.FilterString];ReturnValue;taint;dfc-generated | @@ -6994,22 +6291,17 @@ | System.ComponentModel;TypeConverter;ConvertFromString;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.String);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;TypeConverter;ConvertFromString;(System.ComponentModel.ITypeDescriptorContext,System.String);Argument[1];ReturnValue;value;dfc-generated | | System.ComponentModel;TypeConverter;ConvertFromString;(System.String);Argument[0];ReturnValue;value;dfc-generated | -| System.ComponentModel;TypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;TypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.ComponentModel;TypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;TypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;TypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.ComponentModel;TypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;TypeConverter;ConvertTo;(System.Object,System.Type);Argument[0];ReturnValue;value;df-generated | | System.ComponentModel;TypeConverter;ConvertTo;(System.Object,System.Type);Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;TypeConverter;ConvertToInvariantString;(System.ComponentModel.ITypeDescriptorContext,System.Object);Argument[1];ReturnValue;value;df-generated | | System.ComponentModel;TypeConverter;ConvertToInvariantString;(System.ComponentModel.ITypeDescriptorContext,System.Object);Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;TypeConverter;ConvertToInvariantString;(System.Object);Argument[0];ReturnValue;value;df-generated | | System.ComponentModel;TypeConverter;ConvertToInvariantString;(System.Object);Argument[this];ReturnValue;taint;df-generated | -| System.ComponentModel;TypeConverter;ConvertToString;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;df-generated | | System.ComponentModel;TypeConverter;ConvertToString;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;dfc-generated | | System.ComponentModel;TypeConverter;ConvertToString;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;df-generated | -| System.ComponentModel;TypeConverter;ConvertToString;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;TypeConverter;ConvertToString;(System.ComponentModel.ITypeDescriptorContext,System.Object);Argument[1];ReturnValue;value;df-generated | | System.ComponentModel;TypeConverter;ConvertToString;(System.ComponentModel.ITypeDescriptorContext,System.Object);Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;TypeConverter;ConvertToString;(System.Object);Argument[0];ReturnValue;value;df-generated | @@ -7046,23 +6338,17 @@ | System.ComponentModel;TypeListConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel;TypeListConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;TypeListConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.ComponentModel;TypeListConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;TypeListConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.ComponentModel;TypeListConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;TypeListConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;TypeListConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.ComponentModel;TypeListConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;TypeListConverter;GetStandardValues;(System.ComponentModel.ITypeDescriptorContext);Argument[this];ReturnValue;taint;df-generated | | System.ComponentModel;TypeListConverter;TypeListConverter;(System.Type[]);Argument[0].Element;Argument[this];taint;df-generated | | System.ComponentModel;VersionConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.ComponentModel;VersionConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;VersionConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.ComponentModel;VersionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.ComponentModel;VersionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.ComponentModel;VersionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.ComponentModel;VersionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.ComponentModel;VersionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.ComponentModel;VersionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.ComponentModel;WarningException;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this].Property[System.ComponentModel.WarningException.HelpTopic];Argument[0];taint;dfc-generated | | System.ComponentModel;WarningException;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this].Property[System.ComponentModel.WarningException.HelpUrl];Argument[0];taint;dfc-generated | | System.ComponentModel;WarningException;WarningException;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[0];Argument[this].Property[System.ComponentModel.WarningException.HelpTopic];taint;dfc-generated | @@ -7124,7 +6410,6 @@ | System.Configuration;ApplicationSettingsBase;add_SettingChanging;(System.Configuration.SettingChangingEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Configuration;ApplicationSettingsBase;add_SettingsLoaded;(System.Configuration.SettingsLoadedEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Configuration;ApplicationSettingsBase;add_SettingsSaving;(System.Configuration.SettingsSavingEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Configuration;ApplicationSettingsBase;get_PropertyValues;();Argument[this].Property[System.Configuration.SettingsBase.PropertyValues];ReturnValue;value;df-generated | | System.Configuration;ApplicationSettingsBase;get_PropertyValues;();Argument[this].Property[System.Configuration.SettingsBase.PropertyValues];ReturnValue;value;dfc-generated | | System.Configuration;ApplicationSettingsBase;remove_SettingChanging;(System.Configuration.SettingChangingEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Configuration;ApplicationSettingsBase;remove_SettingsLoaded;(System.Configuration.SettingsLoadedEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | @@ -7143,57 +6428,20 @@ | System.Configuration;CommaDelimitedStringCollectionConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Configuration;CommaDelimitedStringCollectionConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;CommaDelimitedStringCollectionConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.Configuration;CommaDelimitedStringCollectionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Configuration;CommaDelimitedStringCollectionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.Configuration;CommaDelimitedStringCollectionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Configuration;CommaDelimitedStringCollectionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;CommaDelimitedStringCollectionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.Configuration;CommaDelimitedStringCollectionConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | -| System.Configuration;ConfigXmlDocument;CreateAttribute;(System.String,System.String,System.String);Argument[0];ReturnValue;taint;df-generated | -| System.Configuration;ConfigXmlDocument;CreateAttribute;(System.String,System.String,System.String);Argument[0];ReturnValue;taint;dfc-generated | -| System.Configuration;ConfigXmlDocument;CreateAttribute;(System.String,System.String,System.String);Argument[1];ReturnValue;taint;df-generated | -| System.Configuration;ConfigXmlDocument;CreateAttribute;(System.String,System.String,System.String);Argument[1];ReturnValue;taint;dfc-generated | -| System.Configuration;ConfigXmlDocument;CreateAttribute;(System.String,System.String,System.String);Argument[2];ReturnValue;taint;df-generated | -| System.Configuration;ConfigXmlDocument;CreateAttribute;(System.String,System.String,System.String);Argument[2];ReturnValue;taint;dfc-generated | -| System.Configuration;ConfigXmlDocument;CreateAttribute;(System.String,System.String,System.String);Argument[this].SyntheticField[System.Configuration.ConfigXmlDocument._filename];ReturnValue.SyntheticField[System.Configuration.ConfigXmlAttribute._filename];value;df-generated | | System.Configuration;ConfigXmlDocument;CreateAttribute;(System.String,System.String,System.String);Argument[this].SyntheticField[System.Configuration.ConfigXmlDocument._filename];ReturnValue.SyntheticField[System.Configuration.ConfigXmlAttribute._filename];value;dfc-generated | -| System.Configuration;ConfigXmlDocument;CreateAttribute;(System.String,System.String,System.String);Argument[this];ReturnValue;taint;df-generated | -| System.Configuration;ConfigXmlDocument;CreateAttribute;(System.String,System.String,System.String);Argument[this];ReturnValue;taint;dfc-generated | -| System.Configuration;ConfigXmlDocument;CreateCDataSection;(System.String);Argument[this].SyntheticField[System.Configuration.ConfigXmlDocument._filename];ReturnValue.SyntheticField[System.Configuration.ConfigXmlCDataSection._filename];value;df-generated | | System.Configuration;ConfigXmlDocument;CreateCDataSection;(System.String);Argument[this].SyntheticField[System.Configuration.ConfigXmlDocument._filename];ReturnValue.SyntheticField[System.Configuration.ConfigXmlCDataSection._filename];value;dfc-generated | -| System.Configuration;ConfigXmlDocument;CreateCDataSection;(System.String);Argument[this];ReturnValue;taint;df-generated | -| System.Configuration;ConfigXmlDocument;CreateCDataSection;(System.String);Argument[this];ReturnValue;taint;dfc-generated | -| System.Configuration;ConfigXmlDocument;CreateComment;(System.String);Argument[this].SyntheticField[System.Configuration.ConfigXmlDocument._filename];ReturnValue.SyntheticField[System.Configuration.ConfigXmlComment._filename];value;df-generated | | System.Configuration;ConfigXmlDocument;CreateComment;(System.String);Argument[this].SyntheticField[System.Configuration.ConfigXmlDocument._filename];ReturnValue.SyntheticField[System.Configuration.ConfigXmlComment._filename];value;dfc-generated | -| System.Configuration;ConfigXmlDocument;CreateComment;(System.String);Argument[this];ReturnValue;taint;df-generated | -| System.Configuration;ConfigXmlDocument;CreateComment;(System.String);Argument[this];ReturnValue;taint;dfc-generated | -| System.Configuration;ConfigXmlDocument;CreateElement;(System.String,System.String,System.String);Argument[0];ReturnValue;taint;df-generated | -| System.Configuration;ConfigXmlDocument;CreateElement;(System.String,System.String,System.String);Argument[0];ReturnValue;taint;dfc-generated | -| System.Configuration;ConfigXmlDocument;CreateElement;(System.String,System.String,System.String);Argument[1];ReturnValue;taint;df-generated | -| System.Configuration;ConfigXmlDocument;CreateElement;(System.String,System.String,System.String);Argument[1];ReturnValue;taint;dfc-generated | -| System.Configuration;ConfigXmlDocument;CreateElement;(System.String,System.String,System.String);Argument[2];ReturnValue;taint;df-generated | -| System.Configuration;ConfigXmlDocument;CreateElement;(System.String,System.String,System.String);Argument[2];ReturnValue;taint;dfc-generated | -| System.Configuration;ConfigXmlDocument;CreateElement;(System.String,System.String,System.String);Argument[this].SyntheticField[System.Configuration.ConfigXmlDocument._filename];ReturnValue.SyntheticField[System.Configuration.ConfigXmlElement._filename];value;df-generated | | System.Configuration;ConfigXmlDocument;CreateElement;(System.String,System.String,System.String);Argument[this].SyntheticField[System.Configuration.ConfigXmlDocument._filename];ReturnValue.SyntheticField[System.Configuration.ConfigXmlElement._filename];value;dfc-generated | -| System.Configuration;ConfigXmlDocument;CreateElement;(System.String,System.String,System.String);Argument[this];ReturnValue;taint;df-generated | -| System.Configuration;ConfigXmlDocument;CreateElement;(System.String,System.String,System.String);Argument[this];ReturnValue;taint;dfc-generated | -| System.Configuration;ConfigXmlDocument;CreateSignificantWhitespace;(System.String);Argument[this].SyntheticField[System.Configuration.ConfigXmlDocument._filename];ReturnValue.SyntheticField[System.Configuration.ConfigXmlSignificantWhitespace._filename];value;df-generated | | System.Configuration;ConfigXmlDocument;CreateSignificantWhitespace;(System.String);Argument[this].SyntheticField[System.Configuration.ConfigXmlDocument._filename];ReturnValue.SyntheticField[System.Configuration.ConfigXmlSignificantWhitespace._filename];value;dfc-generated | -| System.Configuration;ConfigXmlDocument;CreateSignificantWhitespace;(System.String);Argument[this];ReturnValue;taint;df-generated | -| System.Configuration;ConfigXmlDocument;CreateSignificantWhitespace;(System.String);Argument[this];ReturnValue;taint;dfc-generated | -| System.Configuration;ConfigXmlDocument;CreateTextNode;(System.String);Argument[this].SyntheticField[System.Configuration.ConfigXmlDocument._filename];ReturnValue.SyntheticField[System.Configuration.ConfigXmlText._filename];value;df-generated | | System.Configuration;ConfigXmlDocument;CreateTextNode;(System.String);Argument[this].SyntheticField[System.Configuration.ConfigXmlDocument._filename];ReturnValue.SyntheticField[System.Configuration.ConfigXmlText._filename];value;dfc-generated | -| System.Configuration;ConfigXmlDocument;CreateTextNode;(System.String);Argument[this];ReturnValue;taint;df-generated | -| System.Configuration;ConfigXmlDocument;CreateTextNode;(System.String);Argument[this];ReturnValue;taint;dfc-generated | -| System.Configuration;ConfigXmlDocument;CreateWhitespace;(System.String);Argument[this].SyntheticField[System.Configuration.ConfigXmlDocument._filename];ReturnValue.SyntheticField[System.Configuration.ConfigXmlWhitespace._filename];value;df-generated | | System.Configuration;ConfigXmlDocument;CreateWhitespace;(System.String);Argument[this].SyntheticField[System.Configuration.ConfigXmlDocument._filename];ReturnValue.SyntheticField[System.Configuration.ConfigXmlWhitespace._filename];value;dfc-generated | -| System.Configuration;ConfigXmlDocument;CreateWhitespace;(System.String);Argument[this];ReturnValue;taint;df-generated | -| System.Configuration;ConfigXmlDocument;CreateWhitespace;(System.String);Argument[this];ReturnValue;taint;dfc-generated | | System.Configuration;ConfigXmlDocument;LoadSingleElement;(System.String,System.Xml.XmlTextReader);Argument[0];Argument[this].SyntheticField[System.Configuration.ConfigXmlDocument._filename];value;dfc-generated | | System.Configuration;ConfigXmlDocument;LoadSingleElement;(System.String,System.Xml.XmlTextReader);Argument[1];Argument[this].SyntheticField[System.Configuration.ConfigXmlDocument._reader];taint;dfc-generated | | System.Configuration;ConfigXmlDocument;LoadSingleElement;(System.String,System.Xml.XmlTextReader);Argument[1];Argument[this];taint;dfc-generated | | System.Configuration;ConfigXmlDocument;LoadSingleElement;(System.String,System.Xml.XmlTextReader);Argument[this].SyntheticField[System.Configuration.ConfigXmlDocument._reader];Argument[this];taint;dfc-generated | -| System.Configuration;ConfigXmlDocument;get_Filename;();Argument[this].SyntheticField[System.Configuration.ConfigXmlDocument._filename];ReturnValue;value;df-generated | | System.Configuration;ConfigXmlDocument;get_Filename;();Argument[this].SyntheticField[System.Configuration.ConfigXmlDocument._filename];ReturnValue;value;dfc-generated | | System.Configuration;Configuration;GetSection;(System.String);Argument[this];ReturnValue;taint;df-generated | | System.Configuration;Configuration;GetSectionGroup;(System.String);Argument[this];ReturnValue;taint;df-generated | @@ -7245,12 +6493,9 @@ | System.Configuration;ConfigurationErrorsException;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this].SyntheticField[System.Configuration.ConfigurationException._filename];Argument[0];taint;dfc-generated | | System.Configuration;ConfigurationErrorsException;get_Errors;();Argument[this].SyntheticField[System.Configuration.ConfigurationErrorsException._errors];ReturnValue;value;dfc-generated | | System.Configuration;ConfigurationErrorsException;get_Filename;();Argument[this].SyntheticField[System.Configuration.ConfigurationErrorsException._firstFilename];ReturnValue;value;dfc-generated | -| System.Configuration;ConfigurationErrorsException;get_Filename;();Argument[this].SyntheticField[System.Configuration.ConfigurationException._filename];ReturnValue;value;dfc-generated | | System.Configuration;ConfigurationErrorsException;get_Message;();Argument[this].Property[System.Configuration.ConfigurationErrorsException.Filename];ReturnValue;taint;dfc-generated | | System.Configuration;ConfigurationErrorsException;get_Message;();Argument[this].Property[System.Configuration.ConfigurationException.BareMessage];ReturnValue;value;dfc-generated | -| System.Configuration;ConfigurationErrorsException;get_Message;();Argument[this].Property[System.Configuration.ConfigurationException.Filename];ReturnValue;taint;dfc-generated | | System.Configuration;ConfigurationErrorsException;get_Message;();Argument[this].SyntheticField[System.Configuration.ConfigurationErrorsException._firstFilename];ReturnValue;taint;dfc-generated | -| System.Configuration;ConfigurationErrorsException;get_Message;();Argument[this].SyntheticField[System.Exception._message];ReturnValue;value;dfc-generated | | System.Configuration;ConfigurationException;ConfigurationException;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[0];Argument[this].SyntheticField[System.Configuration.ConfigurationException._filename];taint;dfc-generated | | System.Configuration;ConfigurationException;ConfigurationException;(System.String,System.Exception,System.String,System.Int32);Argument[2];Argument[this].SyntheticField[System.Configuration.ConfigurationException._filename];value;dfc-generated | | System.Configuration;ConfigurationException;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this].SyntheticField[System.Configuration.ConfigurationException._filename];Argument[0];taint;dfc-generated | @@ -7259,7 +6504,6 @@ | System.Configuration;ConfigurationException;get_Filename;();Argument[this].SyntheticField[System.Configuration.ConfigurationException._filename];ReturnValue;value;dfc-generated | | System.Configuration;ConfigurationException;get_Message;();Argument[this].Property[System.Configuration.ConfigurationException.BareMessage];ReturnValue;value;dfc-generated | | System.Configuration;ConfigurationException;get_Message;();Argument[this].Property[System.Configuration.ConfigurationException.Filename];ReturnValue;taint;dfc-generated | -| System.Configuration;ConfigurationException;get_Message;();Argument[this].SyntheticField[System.Exception._message];ReturnValue;value;dfc-generated | | System.Configuration;ConfigurationLocation;OpenConfiguration;();Argument[this];ReturnValue;taint;df-generated | | System.Configuration;ConfigurationLocationCollection;get_Item;(System.Int32);Argument[this].Property[System.Collections.ReadOnlyCollectionBase.InnerList].Element;ReturnValue;value;dfc-generated | | System.Configuration;ConfigurationLockCollection;Add;(System.String);Argument[0];Argument[this].SyntheticField[System.Configuration.ConfigurationLockCollection._internalArraylist].Element;value;dfc-generated | @@ -7313,7 +6557,6 @@ | System.Configuration;ConnectionStringSettingsCollection;Add;(System.Configuration.ConnectionStringSettings);Argument[0];Argument[this];taint;df-generated | | System.Configuration;ConnectionStringSettingsCollection;Add;(System.Configuration.ConnectionStringSettings);Argument[this];Argument[0];taint;df-generated | | System.Configuration;ConnectionStringSettingsCollection;Clear;();Argument[this].WithoutElement;Argument[this];value;manual | -| System.Configuration;ConnectionStringSettingsCollection;GetElementKey;(System.Configuration.ConfigurationElement);Argument[0].Property[System.Configuration.ConnectionStringSettings.Name];ReturnValue;value;df-generated | | System.Configuration;ConnectionStringSettingsCollection;GetElementKey;(System.Configuration.ConfigurationElement);Argument[0].Property[System.Configuration.ConnectionStringSettings.Name];ReturnValue;value;dfc-generated | | System.Configuration;ConnectionStringSettingsCollection;Remove;(System.Configuration.ConnectionStringSettings);Argument[0];Argument[this];taint;df-generated | | System.Configuration;ConnectionStringSettingsCollection;Remove;(System.String);Argument[0];Argument[this];taint;df-generated | @@ -7332,37 +6575,27 @@ | System.Configuration;GenericEnumConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Configuration;GenericEnumConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;GenericEnumConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.Configuration;GenericEnumConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Configuration;GenericEnumConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.Configuration;GenericEnumConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Configuration;GenericEnumConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;GenericEnumConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.Configuration;GenericEnumConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Configuration;IApplicationSettingsProvider;GetPreviousVersion;(System.Configuration.SettingsContext,System.Configuration.SettingsProperty);Argument[this];ReturnValue;taint;df-generated | | System.Configuration;IConfigurationSectionHandler;Create;(System.Object,System.Object,System.Xml.XmlNode);Argument[0].Element;ReturnValue.Element;value;dfc-generated | | System.Configuration;InfiniteIntConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Configuration;InfiniteIntConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;InfiniteIntConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.Configuration;InfiniteIntConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Configuration;InfiniteIntConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.Configuration;InfiniteIntConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Configuration;InfiniteIntConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;InfiniteIntConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.Configuration;InfiniteIntConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Configuration;InfiniteTimeSpanConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Configuration;InfiniteTimeSpanConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;InfiniteTimeSpanConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.Configuration;InfiniteTimeSpanConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Configuration;InfiniteTimeSpanConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.Configuration;InfiniteTimeSpanConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Configuration;InfiniteTimeSpanConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;InfiniteTimeSpanConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.Configuration;InfiniteTimeSpanConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Configuration;IntegerValidatorAttribute;get_ValidatorInstance;();Argument[this];ReturnValue;taint;df-generated | | System.Configuration;KeyValueConfigurationCollection;Add;(System.Configuration.KeyValueConfigurationElement);Argument[0];Argument[this];taint;df-generated | | System.Configuration;KeyValueConfigurationCollection;Add;(System.Configuration.KeyValueConfigurationElement);Argument[this];Argument[0];taint;df-generated | | System.Configuration;KeyValueConfigurationCollection;Clear;();Argument[this].WithoutElement;Argument[this];value;manual | -| System.Configuration;KeyValueConfigurationCollection;GetElementKey;(System.Configuration.ConfigurationElement);Argument[0].Property[System.Configuration.KeyValueConfigurationElement.Key];ReturnValue;value;df-generated | | System.Configuration;KeyValueConfigurationCollection;GetElementKey;(System.Configuration.ConfigurationElement);Argument[0].Property[System.Configuration.KeyValueConfigurationElement.Key];ReturnValue;value;dfc-generated | | System.Configuration;KeyValueConfigurationCollection;Remove;(System.String);Argument[0];Argument[this];taint;df-generated | | System.Configuration;KeyValueConfigurationCollection;get_AllKeys;();Argument[this];ReturnValue;taint;df-generated | @@ -7374,7 +6607,6 @@ | System.Configuration;NameValueConfigurationCollection;Add;(System.Configuration.NameValueConfigurationElement);Argument[0];Argument[this];taint;df-generated | | System.Configuration;NameValueConfigurationCollection;Add;(System.Configuration.NameValueConfigurationElement);Argument[this];Argument[0];taint;df-generated | | System.Configuration;NameValueConfigurationCollection;Clear;();Argument[this].WithoutElement;Argument[this];value;manual | -| System.Configuration;NameValueConfigurationCollection;GetElementKey;(System.Configuration.ConfigurationElement);Argument[0].Property[System.Configuration.NameValueConfigurationElement.Name];ReturnValue;value;df-generated | | System.Configuration;NameValueConfigurationCollection;GetElementKey;(System.Configuration.ConfigurationElement);Argument[0].Property[System.Configuration.NameValueConfigurationElement.Name];ReturnValue;value;dfc-generated | | System.Configuration;NameValueConfigurationCollection;Remove;(System.Configuration.NameValueConfigurationElement);Argument[0];Argument[this];taint;df-generated | | System.Configuration;NameValueConfigurationCollection;Remove;(System.String);Argument[0];Argument[this];taint;df-generated | @@ -7397,7 +6629,6 @@ | System.Configuration;ProviderSettingsCollection;Add;(System.Configuration.ProviderSettings);Argument[0];Argument[this];taint;df-generated | | System.Configuration;ProviderSettingsCollection;Add;(System.Configuration.ProviderSettings);Argument[this];Argument[0];taint;df-generated | | System.Configuration;ProviderSettingsCollection;Clear;();Argument[this].WithoutElement;Argument[this];value;manual | -| System.Configuration;ProviderSettingsCollection;GetElementKey;(System.Configuration.ConfigurationElement);Argument[0].Property[System.Configuration.ProviderSettings.Name];ReturnValue;value;df-generated | | System.Configuration;ProviderSettingsCollection;GetElementKey;(System.Configuration.ConfigurationElement);Argument[0].Property[System.Configuration.ProviderSettings.Name];ReturnValue;value;dfc-generated | | System.Configuration;ProviderSettingsCollection;Remove;(System.String);Argument[0];Argument[this];taint;df-generated | | System.Configuration;ProviderSettingsCollection;get_Item;(System.Int32);Argument[this];ReturnValue;taint;df-generated | @@ -7408,7 +6639,6 @@ | System.Configuration;RegexStringValidatorAttribute;RegexStringValidatorAttribute;(System.String);Argument[0];Argument[this].Property[System.Configuration.RegexStringValidatorAttribute.Regex];value;dfc-generated | | System.Configuration;RegexStringValidatorAttribute;get_ValidatorInstance;();Argument[this];ReturnValue;taint;df-generated | | System.Configuration;SchemeSettingElement;get_Name;();Argument[this];ReturnValue;taint;df-generated | -| System.Configuration;SchemeSettingElementCollection;GetElementKey;(System.Configuration.ConfigurationElement);Argument[0].Property[System.Configuration.SchemeSettingElement.Name];ReturnValue;value;df-generated | | System.Configuration;SchemeSettingElementCollection;GetElementKey;(System.Configuration.ConfigurationElement);Argument[0].Property[System.Configuration.SchemeSettingElement.Name];ReturnValue;value;dfc-generated | | System.Configuration;SchemeSettingElementCollection;get_Item;(System.Int32);Argument[this];ReturnValue;taint;df-generated | | System.Configuration;SchemeSettingElementCollection;get_Item;(System.String);Argument[this];ReturnValue;taint;df-generated | @@ -7431,7 +6661,6 @@ | System.Configuration;SettingElementCollection;Add;(System.Configuration.SettingElement);Argument[this];Argument[0];taint;df-generated | | System.Configuration;SettingElementCollection;Clear;();Argument[this].WithoutElement;Argument[this];value;manual | | System.Configuration;SettingElementCollection;Get;(System.String);Argument[this];ReturnValue;taint;df-generated | -| System.Configuration;SettingElementCollection;GetElementKey;(System.Configuration.ConfigurationElement);Argument[0].Property[System.Configuration.SettingElement.Name];ReturnValue;value;df-generated | | System.Configuration;SettingElementCollection;GetElementKey;(System.Configuration.ConfigurationElement);Argument[0].Property[System.Configuration.SettingElement.Name];ReturnValue;value;dfc-generated | | System.Configuration;SettingElementCollection;Remove;(System.Configuration.SettingElement);Argument[0];Argument[this];taint;df-generated | | System.Configuration;SettingsBase;Initialize;(System.Configuration.SettingsContext,System.Configuration.SettingsPropertyCollection,System.Configuration.SettingsProviderCollection);Argument[0];Argument[this].SyntheticField[System.Configuration.SettingsBase._context];value;dfc-generated | @@ -7473,51 +6702,36 @@ | System.Configuration;TimeSpanMinutesConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Configuration;TimeSpanMinutesConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;TimeSpanMinutesConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.Configuration;TimeSpanMinutesConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Configuration;TimeSpanMinutesConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.Configuration;TimeSpanMinutesConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Configuration;TimeSpanMinutesConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;TimeSpanMinutesConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.Configuration;TimeSpanMinutesConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Configuration;TimeSpanMinutesOrInfiniteConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Configuration;TimeSpanMinutesOrInfiniteConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;TimeSpanMinutesOrInfiniteConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.Configuration;TimeSpanMinutesOrInfiniteConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Configuration;TimeSpanMinutesOrInfiniteConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.Configuration;TimeSpanMinutesOrInfiniteConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Configuration;TimeSpanMinutesOrInfiniteConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;TimeSpanMinutesOrInfiniteConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.Configuration;TimeSpanMinutesOrInfiniteConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Configuration;TimeSpanSecondsConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Configuration;TimeSpanSecondsConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;TimeSpanSecondsConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.Configuration;TimeSpanSecondsConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Configuration;TimeSpanSecondsConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.Configuration;TimeSpanSecondsConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Configuration;TimeSpanSecondsConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;TimeSpanSecondsConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.Configuration;TimeSpanSecondsConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Configuration;TimeSpanSecondsOrInfiniteConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Configuration;TimeSpanSecondsOrInfiniteConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;TimeSpanSecondsOrInfiniteConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.Configuration;TimeSpanSecondsOrInfiniteConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Configuration;TimeSpanSecondsOrInfiniteConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.Configuration;TimeSpanSecondsOrInfiniteConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Configuration;TimeSpanSecondsOrInfiniteConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;TimeSpanSecondsOrInfiniteConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.Configuration;TimeSpanSecondsOrInfiniteConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Configuration;TimeSpanValidator;TimeSpanValidator;(System.TimeSpan,System.TimeSpan,System.Boolean,System.Int64);Argument[0];Argument[this];taint;df-generated | | System.Configuration;TimeSpanValidator;TimeSpanValidator;(System.TimeSpan,System.TimeSpan,System.Boolean,System.Int64);Argument[1];Argument[this];taint;df-generated | | System.Configuration;TimeSpanValidatorAttribute;get_ValidatorInstance;();Argument[this];ReturnValue;taint;df-generated | | System.Configuration;TypeNameConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Configuration;TypeNameConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;TypeNameConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.Configuration;TypeNameConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Configuration;TypeNameConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.Configuration;TypeNameConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Configuration;TypeNameConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;TypeNameConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.Configuration;TypeNameConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Configuration;UriSection;get_Idn;();Argument[this];ReturnValue;taint;df-generated | | System.Configuration;UriSection;get_IriParsing;();Argument[this];ReturnValue;taint;df-generated | | System.Configuration;UriSection;get_SchemeSettings;();Argument[this];ReturnValue;taint;df-generated | @@ -7525,19 +6739,14 @@ | System.Configuration;WhiteSpaceTrimStringConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Configuration;WhiteSpaceTrimStringConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;WhiteSpaceTrimStringConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.Configuration;WhiteSpaceTrimStringConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Configuration;WhiteSpaceTrimStringConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.Configuration;WhiteSpaceTrimStringConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Configuration;WhiteSpaceTrimStringConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.Configuration;WhiteSpaceTrimStringConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.Configuration;WhiteSpaceTrimStringConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Data.Common;DataAdapter;FillSchema;(System.Data.DataSet,System.Data.SchemaType,System.String,System.Data.IDataReader);Argument[0];ReturnValue;taint;df-generated | | System.Data.Common;DataAdapter;FillSchema;(System.Data.DataTable,System.Data.SchemaType,System.Data.IDataReader);Argument[0];ReturnValue;value;dfc-generated | | System.Data.Common;DataAdapter;add_FillError;(System.Data.FillErrorEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Data.Common;DataAdapter;get_TableMappings;();Argument[this].Property[System.Data.Common.DataAdapter.TableMappings];ReturnValue;value;df-generated | | System.Data.Common;DataAdapter;get_TableMappings;();Argument[this].Property[System.Data.Common.DataAdapter.TableMappings];ReturnValue;value;dfc-generated | | System.Data.Common;DataAdapter;get_TableMappings;();Argument[this];ReturnValue;taint;df-generated | -| System.Data.Common;DataAdapter;get_TableMappings;();Argument[this];ReturnValue;taint;dfc-generated | | System.Data.Common;DataAdapter;remove_FillError;(System.Data.FillErrorEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Data.Common;DataColumnMapping;Clone;();Argument[this].SyntheticField[System.Data.Common.DataColumnMapping._sourceColumnName];ReturnValue.SyntheticField[System.Data.Common.DataColumnMapping._sourceColumnName];value;dfc-generated | | System.Data.Common;DataColumnMapping;DataColumnMapping;(System.String,System.String);Argument[0];Argument[this].SyntheticField[System.Data.Common.DataColumnMapping._sourceColumnName];value;dfc-generated | @@ -8246,7 +7455,6 @@ | System.Data;DataSet;get_Relations;();Argument[this];ReturnValue;taint;df-generated | | System.Data;DataSet;get_Tables;();Argument[this];ReturnValue;taint;df-generated | | System.Data;DataSet;remove_MergeFailed;(System.Data.MergeFailedEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Data;DataSysDescriptionAttribute;get_Description;();Argument[this].Property[System.ComponentModel.DescriptionAttribute.DescriptionValue];ReturnValue;value;dfc-generated | | System.Data;DataSysDescriptionAttribute;get_Description;();Argument[this].Property[System.ComponentModel.DescriptionAttribute.Description];Argument[this].Property[System.ComponentModel.DescriptionAttribute.DescriptionValue];value;dfc-generated | | System.Data;DataSysDescriptionAttribute;get_Description;();Argument[this].Property[System.ComponentModel.DescriptionAttribute.Description];ReturnValue;value;dfc-generated | | System.Data;DataTable;Clone;();Argument[this];ReturnValue;taint;df-generated | @@ -8254,7 +7462,6 @@ | System.Data;DataTable;GetChanges;();Argument[this];ReturnValue;taint;df-generated | | System.Data;DataTable;GetChanges;(System.Data.DataRowState);Argument[this];ReturnValue;taint;df-generated | | System.Data;DataTable;GetErrors;();Argument[this];ReturnValue;taint;df-generated | -| System.Data;DataTable;GetList;();Argument[this].Property[System.Data.DataTable.DefaultView];ReturnValue;value;df-generated | | System.Data;DataTable;GetList;();Argument[this].Property[System.Data.DataTable.DefaultView];ReturnValue;value;dfc-generated | | System.Data;DataTable;Load;(System.Data.IDataReader,System.Data.LoadOption,System.Data.FillErrorEventHandler);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Data;DataTable;LoadDataRow;(System.Object[],System.Boolean);Argument[0];Argument[this].Property[System.Data.DataTable.Rows].Element;value;dfc-generated | @@ -8331,7 +7538,6 @@ | System.Data;DataView;Find;(System.Object[]);Argument[this].Element;ReturnValue;value;manual | | System.Data;DataView;FindRows;(System.Object);Argument[this].Element;ReturnValue.Element;value;dfc-generated | | System.Data;DataView;FindRows;(System.Object[]);Argument[this].Element;ReturnValue.Element;value;dfc-generated | -| System.Data;DataView;GetListName;(System.ComponentModel.PropertyDescriptor[]);Argument[this].SyntheticField[System.Data.DataView._table].Property[System.Data.DataTable.TableName];ReturnValue;value;df-generated | | System.Data;DataView;GetListName;(System.ComponentModel.PropertyDescriptor[]);Argument[this].SyntheticField[System.Data.DataView._table].Property[System.Data.DataTable.TableName];ReturnValue;value;dfc-generated | | System.Data;DataView;IndexListChanged;(System.Object,System.ComponentModel.ListChangedEventArgs);Argument[1];Argument[this];taint;df-generated | | System.Data;DataView;OnListChanged;(System.ComponentModel.ListChangedEventArgs);Argument[0];Argument[this];taint;df-generated | @@ -8357,34 +7563,24 @@ | System.Data;EnumerableRowCollectionExtensions;Cast;(System.Data.EnumerableRowCollection);Argument[0].Element;ReturnValue.Element;value;manual | | System.Data;EnumerableRowCollectionExtensions;OrderBy;(System.Data.EnumerableRowCollection,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;EnumerableRowCollectionExtensions;OrderBy;(System.Data.EnumerableRowCollection,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Data;EnumerableRowCollectionExtensions;OrderBy;(System.Data.EnumerableRowCollection,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;EnumerableRowCollectionExtensions;OrderBy;(System.Data.EnumerableRowCollection,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;EnumerableRowCollectionExtensions;OrderBy;(System.Data.EnumerableRowCollection,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Data;EnumerableRowCollectionExtensions;OrderBy;(System.Data.EnumerableRowCollection,System.Func,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;EnumerableRowCollectionExtensions;OrderByDescending;(System.Data.EnumerableRowCollection,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;EnumerableRowCollectionExtensions;OrderByDescending;(System.Data.EnumerableRowCollection,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Data;EnumerableRowCollectionExtensions;OrderByDescending;(System.Data.EnumerableRowCollection,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;EnumerableRowCollectionExtensions;OrderByDescending;(System.Data.EnumerableRowCollection,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;EnumerableRowCollectionExtensions;OrderByDescending;(System.Data.EnumerableRowCollection,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Data;EnumerableRowCollectionExtensions;OrderByDescending;(System.Data.EnumerableRowCollection,System.Func,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;EnumerableRowCollectionExtensions;Select;(System.Data.EnumerableRowCollection,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;EnumerableRowCollectionExtensions;Select;(System.Data.EnumerableRowCollection,System.Func);Argument[1].ReturnValue;ReturnValue.Element;value;manual | -| System.Data;EnumerableRowCollectionExtensions;Select;(System.Data.EnumerableRowCollection,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;EnumerableRowCollectionExtensions;ThenBy;(System.Data.OrderedEnumerableRowCollection,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;EnumerableRowCollectionExtensions;ThenBy;(System.Data.OrderedEnumerableRowCollection,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Data;EnumerableRowCollectionExtensions;ThenBy;(System.Data.OrderedEnumerableRowCollection,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;EnumerableRowCollectionExtensions;ThenBy;(System.Data.OrderedEnumerableRowCollection,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;EnumerableRowCollectionExtensions;ThenBy;(System.Data.OrderedEnumerableRowCollection,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Data;EnumerableRowCollectionExtensions;ThenBy;(System.Data.OrderedEnumerableRowCollection,System.Func,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;EnumerableRowCollectionExtensions;ThenByDescending;(System.Data.OrderedEnumerableRowCollection,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;EnumerableRowCollectionExtensions;ThenByDescending;(System.Data.OrderedEnumerableRowCollection,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Data;EnumerableRowCollectionExtensions;ThenByDescending;(System.Data.OrderedEnumerableRowCollection,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;EnumerableRowCollectionExtensions;ThenByDescending;(System.Data.OrderedEnumerableRowCollection,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;EnumerableRowCollectionExtensions;ThenByDescending;(System.Data.OrderedEnumerableRowCollection,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Data;EnumerableRowCollectionExtensions;ThenByDescending;(System.Data.OrderedEnumerableRowCollection,System.Func,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;EnumerableRowCollectionExtensions;Where;(System.Data.EnumerableRowCollection,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;EnumerableRowCollectionExtensions;Where;(System.Data.EnumerableRowCollection,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Data;EnumerableRowCollectionExtensions;Where;(System.Data.EnumerableRowCollection,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;FillErrorEventArgs;FillErrorEventArgs;(System.Data.DataTable,System.Object[]);Argument[0];Argument[this].SyntheticField[System.Data.FillErrorEventArgs._dataTable];value;dfc-generated | | System.Data;FillErrorEventArgs;FillErrorEventArgs;(System.Data.DataTable,System.Object[]);Argument[1];Argument[this].SyntheticField[System.Data.FillErrorEventArgs._values];value;dfc-generated | | System.Data;FillErrorEventArgs;get_DataTable;();Argument[this].SyntheticField[System.Data.FillErrorEventArgs._dataTable];ReturnValue;value;dfc-generated | @@ -8440,22 +7636,16 @@ | System.Data;TypedTableBaseExtensions;ElementAtOrDefault;(System.Data.TypedTableBase,System.Int32);Argument[0].Element;ReturnValue;value;manual | | System.Data;TypedTableBaseExtensions;OrderBy;(System.Data.TypedTableBase,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;TypedTableBaseExtensions;OrderBy;(System.Data.TypedTableBase,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Data;TypedTableBaseExtensions;OrderBy;(System.Data.TypedTableBase,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;TypedTableBaseExtensions;OrderBy;(System.Data.TypedTableBase,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;TypedTableBaseExtensions;OrderBy;(System.Data.TypedTableBase,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Data;TypedTableBaseExtensions;OrderBy;(System.Data.TypedTableBase,System.Func,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;TypedTableBaseExtensions;OrderByDescending;(System.Data.TypedTableBase,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;TypedTableBaseExtensions;OrderByDescending;(System.Data.TypedTableBase,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Data;TypedTableBaseExtensions;OrderByDescending;(System.Data.TypedTableBase,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;TypedTableBaseExtensions;OrderByDescending;(System.Data.TypedTableBase,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;TypedTableBaseExtensions;OrderByDescending;(System.Data.TypedTableBase,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Data;TypedTableBaseExtensions;OrderByDescending;(System.Data.TypedTableBase,System.Func,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;TypedTableBaseExtensions;Select;(System.Data.TypedTableBase,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;TypedTableBaseExtensions;Select;(System.Data.TypedTableBase,System.Func);Argument[1].ReturnValue;ReturnValue.Element;value;manual | -| System.Data;TypedTableBaseExtensions;Select;(System.Data.TypedTableBase,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;TypedTableBaseExtensions;Where;(System.Data.TypedTableBase,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Data;TypedTableBaseExtensions;Where;(System.Data.TypedTableBase,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Data;TypedTableBaseExtensions;Where;(System.Data.TypedTableBase,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Data;UniqueConstraint;UniqueConstraint;(System.Data.DataColumn);Argument[0];Argument[this];taint;df-generated | | System.Data;UniqueConstraint;UniqueConstraint;(System.Data.DataColumn,System.Boolean);Argument[0];Argument[this];taint;df-generated | | System.Data;UniqueConstraint;UniqueConstraint;(System.Data.DataColumn[]);Argument[0].Element;Argument[this];taint;df-generated | @@ -8480,13 +7670,9 @@ | System.Diagnostics.CodeAnalysis;RequiresUnreferencedCodeAttribute;RequiresUnreferencedCodeAttribute;(System.String);Argument[0];Argument[this].Property[System.Diagnostics.CodeAnalysis.RequiresUnreferencedCodeAttribute.Message];value;dfc-generated | | System.Diagnostics.Contracts;Contract;Exists;(System.Int32,System.Int32,System.Predicate);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Diagnostics.Contracts;Contract;Exists;(System.Collections.Generic.IEnumerable,System.Predicate);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | -| System.Diagnostics.Contracts;Contract;Exists;(System.Collections.Generic.IEnumerable,System.Predicate);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | -| System.Diagnostics.Contracts;Contract;Exists;(System.Collections.Generic.IEnumerable,System.Predicate);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Diagnostics.Contracts;Contract;Exists;(System.Collections.Generic.IEnumerable,System.Predicate);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Diagnostics.Contracts;Contract;ForAll;(System.Int32,System.Int32,System.Predicate);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Diagnostics.Contracts;Contract;ForAll;(System.Collections.Generic.IEnumerable,System.Predicate);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | -| System.Diagnostics.Contracts;Contract;ForAll;(System.Collections.Generic.IEnumerable,System.Predicate);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | -| System.Diagnostics.Contracts;Contract;ForAll;(System.Collections.Generic.IEnumerable,System.Predicate);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Diagnostics.Contracts;Contract;ForAll;(System.Collections.Generic.IEnumerable,System.Predicate);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Diagnostics.Contracts;Contract;add_ContractFailed;(System.EventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Diagnostics.Contracts;Contract;remove_ContractFailed;(System.EventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | @@ -8574,10 +7760,8 @@ | System.Diagnostics.Tracing;EventListener;EnableEvents;(System.Diagnostics.Tracing.EventSource,System.Diagnostics.Tracing.EventLevel);Argument[this];Argument[0];taint;df-generated | | System.Diagnostics.Tracing;EventListener;EnableEvents;(System.Diagnostics.Tracing.EventSource,System.Diagnostics.Tracing.EventLevel,System.Diagnostics.Tracing.EventKeywords);Argument[this];Argument[0];taint;df-generated | | System.Diagnostics.Tracing;EventListener;EnableEvents;(System.Diagnostics.Tracing.EventSource,System.Diagnostics.Tracing.EventLevel,System.Diagnostics.Tracing.EventKeywords,System.Collections.Generic.IDictionary);Argument[3];Argument[0].SyntheticField[System.Diagnostics.Tracing.EventSource.m_deferredCommands].Property[System.Diagnostics.Tracing.EventCommandEventArgs.Arguments];value;dfc-generated | -| System.Diagnostics.Tracing;EventListener;add_EventSourceCreated;(System.EventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Diagnostics.Tracing;EventListener;add_EventSourceCreated;(System.EventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Diagnostics.Tracing;EventListener;add_EventSourceCreated;(System.EventHandler);Argument[this];Argument[0].Parameter[0];value;dfc-generated | -| System.Diagnostics.Tracing;EventListener;add_EventSourceCreated;(System.EventHandler);Argument[this];Argument[0].Parameter[0];value;hq-generated | | System.Diagnostics.Tracing;EventListener;add_EventWritten;(System.EventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Diagnostics.Tracing;EventListener;remove_EventSourceCreated;(System.EventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Diagnostics.Tracing;EventListener;remove_EventWritten;(System.EventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | @@ -8587,12 +7771,9 @@ | System.Diagnostics.Tracing;EventSource;GetTrait;(System.String);Argument[this].SyntheticField[System.Diagnostics.Tracing.EventSource.m_traits].Element;ReturnValue;value;dfc-generated | | System.Diagnostics.Tracing;EventSource;SendCommand;(System.Diagnostics.Tracing.EventSource,System.Diagnostics.Tracing.EventCommand,System.Collections.Generic.IDictionary);Argument[2];Argument[0].SyntheticField[System.Diagnostics.Tracing.EventSource.m_deferredCommands].Property[System.Diagnostics.Tracing.EventCommandEventArgs.Arguments];value;dfc-generated | | System.Diagnostics.Tracing;EventSource;ToString;();Argument[this];ReturnValue;taint;df-generated | -| System.Diagnostics.Tracing;EventSource;add_EventCommandExecuted;(System.EventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Diagnostics.Tracing;EventSource;add_EventCommandExecuted;(System.EventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Diagnostics.Tracing;EventSource;add_EventCommandExecuted;(System.EventHandler);Argument[this].SyntheticField[System.Diagnostics.Tracing.EventSource.m_deferredCommands];Argument[0].Parameter[1];value;dfc-generated | -| System.Diagnostics.Tracing;EventSource;add_EventCommandExecuted;(System.EventHandler);Argument[this].SyntheticField[System.Diagnostics.Tracing.EventSource.m_deferredCommands];Argument[0].Parameter[1];value;hq-generated | | System.Diagnostics.Tracing;EventSource;add_EventCommandExecuted;(System.EventHandler);Argument[this];Argument[0].Parameter[0];value;dfc-generated | -| System.Diagnostics.Tracing;EventSource;add_EventCommandExecuted;(System.EventHandler);Argument[this];Argument[0].Parameter[0];value;hq-generated | | System.Diagnostics.Tracing;EventSource;get_ConstructionException;();Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics.Tracing;EventSource;get_Guid;();Argument[this].SyntheticField[System.Diagnostics.Tracing.EventSource.m_guid];ReturnValue;value;dfc-generated | | System.Diagnostics.Tracing;EventSource;get_Name;();Argument[this].SyntheticField[System.Diagnostics.Tracing.EventSource.m_name];ReturnValue;value;dfc-generated | @@ -8701,16 +7882,10 @@ | System.Diagnostics;DistributedContextPropagator+PropagatorGetterCallback;BeginInvoke;(System.Object,System.String,System.String,System.Collections.Generic.IEnumerable,System.AsyncCallback,System.Object);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | System.Diagnostics;DistributedContextPropagator+PropagatorSetterCallback;BeginInvoke;(System.Object,System.String,System.String,System.AsyncCallback,System.Object);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Diagnostics;DistributedContextPropagator;ExtractBaggage;(System.Object,System.Diagnostics.DistributedContextPropagator+PropagatorGetterCallback);Argument[0];Argument[1].Parameter[0];value;dfc-generated | -| System.Diagnostics;DistributedContextPropagator;ExtractBaggage;(System.Object,System.Diagnostics.DistributedContextPropagator+PropagatorGetterCallback);Argument[0];Argument[1].Parameter[0];value;hq-generated | -| System.Diagnostics;DistributedContextPropagator;ExtractBaggage;(System.Object,System.Diagnostics.DistributedContextPropagator+PropagatorGetterCallback);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Diagnostics;DistributedContextPropagator;ExtractBaggage;(System.Object,System.Diagnostics.DistributedContextPropagator+PropagatorGetterCallback);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Diagnostics;DistributedContextPropagator;ExtractTraceIdAndState;(System.Object,System.Diagnostics.DistributedContextPropagator+PropagatorGetterCallback,System.String,System.String);Argument[0];Argument[1].Parameter[0];value;dfc-generated | -| System.Diagnostics;DistributedContextPropagator;ExtractTraceIdAndState;(System.Object,System.Diagnostics.DistributedContextPropagator+PropagatorGetterCallback,System.String,System.String);Argument[0];Argument[1].Parameter[0];value;hq-generated | -| System.Diagnostics;DistributedContextPropagator;ExtractTraceIdAndState;(System.Object,System.Diagnostics.DistributedContextPropagator+PropagatorGetterCallback,System.String,System.String);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Diagnostics;DistributedContextPropagator;ExtractTraceIdAndState;(System.Object,System.Diagnostics.DistributedContextPropagator+PropagatorGetterCallback,System.String,System.String);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Diagnostics;DistributedContextPropagator;Inject;(System.Diagnostics.Activity,System.Object,System.Diagnostics.DistributedContextPropagator+PropagatorSetterCallback);Argument[1];Argument[2].Parameter[0];value;dfc-generated | -| System.Diagnostics;DistributedContextPropagator;Inject;(System.Diagnostics.Activity,System.Object,System.Diagnostics.DistributedContextPropagator+PropagatorSetterCallback);Argument[1];Argument[2].Parameter[0];value;hq-generated | -| System.Diagnostics;DistributedContextPropagator;Inject;(System.Diagnostics.Activity,System.Object,System.Diagnostics.DistributedContextPropagator+PropagatorSetterCallback);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Diagnostics;DistributedContextPropagator;Inject;(System.Diagnostics.Activity,System.Object,System.Diagnostics.DistributedContextPropagator+PropagatorSetterCallback);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Diagnostics;EntryWrittenEventHandler;BeginInvoke;(System.Object,System.Diagnostics.EntryWrittenEventArgs,System.AsyncCallback,System.Object);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Diagnostics;EventLog;add_EntryWritten;(System.Diagnostics.EntryWrittenEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | @@ -8734,7 +7909,6 @@ | System.Diagnostics;FileVersionInfo;get_SpecialBuild;();Argument[this];ReturnValue;taint;df-generated | | System.Diagnostics;InitializingSwitchEventArgs;InitializingSwitchEventArgs;(System.Diagnostics.Switch);Argument[0];Argument[this].Property[System.Diagnostics.InitializingSwitchEventArgs.Switch];value;dfc-generated | | System.Diagnostics;InitializingTraceSourceEventArgs;InitializingTraceSourceEventArgs;(System.Diagnostics.TraceSource);Argument[0];Argument[this].Property[System.Diagnostics.InitializingTraceSourceEventArgs.TraceSource];value;dfc-generated | -| System.Diagnostics;MonitoringDescriptionAttribute;get_Description;();Argument[this].Property[System.ComponentModel.DescriptionAttribute.DescriptionValue];ReturnValue;value;dfc-generated | | System.Diagnostics;MonitoringDescriptionAttribute;get_Description;();Argument[this].Property[System.ComponentModel.DescriptionAttribute.Description];Argument[this].Property[System.ComponentModel.DescriptionAttribute.DescriptionValue];value;dfc-generated | | System.Diagnostics;MonitoringDescriptionAttribute;get_Description;();Argument[this].Property[System.ComponentModel.DescriptionAttribute.Description];ReturnValue;value;dfc-generated | | System.Diagnostics;Process;GetProcessById;(System.Int32,System.String);Argument[1];ReturnValue.SyntheticField[System.Diagnostics.Process._machineName];value;dfc-generated | @@ -8837,12 +8011,9 @@ | System.Drawing.Printing;MarginsConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Drawing.Printing;MarginsConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Drawing.Printing;MarginsConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.Drawing.Printing;MarginsConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Drawing.Printing;MarginsConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.Drawing.Printing;MarginsConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Drawing.Printing;MarginsConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.Drawing.Printing;MarginsConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.Drawing.Printing;MarginsConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Drawing.Printing;PrintDocument;add_BeginPrint;(System.Drawing.Printing.PrintEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Drawing.Printing;PrintDocument;add_EndPrint;(System.Drawing.Printing.PrintEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Drawing.Printing;PrintDocument;add_PrintPage;(System.Drawing.Printing.PrintPageEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | @@ -8861,14 +8032,7 @@ | System.Drawing;ColorConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Drawing;ColorConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Drawing;ColorConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.Drawing;ColorConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;df-generated | | System.Drawing;ColorConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;dfc-generated | -| System.Drawing;ColorConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | -| System.Drawing;ColorConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.Drawing;ColorConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | -| System.Drawing;ColorConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | -| System.Drawing;ColorConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.Drawing;ColorConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Drawing;ColorConverter;GetStandardValues;(System.ComponentModel.ITypeDescriptorContext);Argument[this];ReturnValue;taint;df-generated | | System.Drawing;ColorTranslator;ToHtml;(System.Drawing.Color);Argument[0].Property[System.Drawing.Color.Name];ReturnValue;value;dfc-generated | | System.Drawing;ColorTranslator;ToHtml;(System.Drawing.Color);Argument[0].SyntheticField[System.Drawing.Color.name];ReturnValue;value;dfc-generated | @@ -8876,19 +8040,14 @@ | System.Drawing;FontConverter+FontNameConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Drawing;FontConverter+FontNameConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | | System.Drawing;FontConverter+FontNameConverter;GetStandardValues;(System.ComponentModel.ITypeDescriptorContext);Argument[this];ReturnValue;taint;df-generated | -| System.Drawing;FontConverter+FontUnitConverter;GetStandardValues;(System.ComponentModel.ITypeDescriptorContext);Argument[this].Property[System.ComponentModel.EnumConverter.Values];ReturnValue;value;df-generated | | System.Drawing;FontConverter+FontUnitConverter;GetStandardValues;(System.ComponentModel.ITypeDescriptorContext);Argument[this].Property[System.ComponentModel.EnumConverter.Values];ReturnValue;value;dfc-generated | | System.Drawing;FontConverter+FontUnitConverter;GetStandardValues;(System.ComponentModel.ITypeDescriptorContext);Argument[this];ReturnValue;taint;df-generated | -| System.Drawing;FontConverter+FontUnitConverter;GetStandardValues;(System.ComponentModel.ITypeDescriptorContext);Argument[this];ReturnValue;taint;dfc-generated | | System.Drawing;FontConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Drawing;FontConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Drawing;FontConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.Drawing;FontConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Drawing;FontConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.Drawing;FontConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Drawing;FontConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.Drawing;FontConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.Drawing;FontConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Drawing;FontConverter;GetProperties;(System.ComponentModel.ITypeDescriptorContext,System.Object,System.Attribute[]);Argument[1];ReturnValue;taint;df-generated | | System.Drawing;Graphics+DrawImageAbort;BeginInvoke;(System.IntPtr,System.AsyncCallback,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Drawing;Graphics+EnumerateMetafileProc;BeginInvoke;(System.Drawing.Imaging.EmfPlusRecordType,System.Int32,System.Int32,System.IntPtr,System.Drawing.Imaging.PlayRecordCallback,System.AsyncCallback,System.Object);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | @@ -8941,12 +8100,9 @@ | System.Drawing;IconConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Drawing;IconConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Drawing;IconConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.Drawing;IconConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Drawing;IconConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.Drawing;IconConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Drawing;IconConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.Drawing;IconConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.Drawing;IconConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Drawing;Image+GetThumbnailImageAbort;BeginInvoke;(System.AsyncCallback,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Drawing;Image;GetThumbnailImage;(System.Int32,System.Int32,System.Drawing.Image+GetThumbnailImageAbort,System.IntPtr);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Drawing;ImageAnimator;Animate;(System.Drawing.Image,System.EventHandler);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | @@ -8954,72 +8110,38 @@ | System.Drawing;ImageConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Drawing;ImageConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Drawing;ImageConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.Drawing;ImageConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Drawing;ImageConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.Drawing;ImageConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Drawing;ImageConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.Drawing;ImageConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.Drawing;ImageConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Drawing;ImageConverter;GetProperties;(System.ComponentModel.ITypeDescriptorContext,System.Object,System.Attribute[]);Argument[1];ReturnValue;taint;df-generated | | System.Drawing;ImageFormatConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Drawing;ImageFormatConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Drawing;ImageFormatConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.Drawing;ImageFormatConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Drawing;ImageFormatConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.Drawing;ImageFormatConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Drawing;ImageFormatConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.Drawing;ImageFormatConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.Drawing;ImageFormatConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Drawing;ImageFormatConverter;GetStandardValues;(System.ComponentModel.ITypeDescriptorContext);Argument[this];ReturnValue;taint;df-generated | | System.Drawing;PointConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Drawing;PointConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Drawing;PointConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.Drawing;PointConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;df-generated | | System.Drawing;PointConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;dfc-generated | -| System.Drawing;PointConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | -| System.Drawing;PointConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.Drawing;PointConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | -| System.Drawing;PointConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | -| System.Drawing;PointConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.Drawing;PointConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Drawing;PointConverter;GetProperties;(System.ComponentModel.ITypeDescriptorContext,System.Object,System.Attribute[]);Argument[1];ReturnValue;taint;df-generated | | System.Drawing;Rectangle;Inflate;(System.Drawing.Rectangle,System.Int32,System.Int32);Argument[0];ReturnValue;value;dfc-generated | | System.Drawing;RectangleConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Drawing;RectangleConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Drawing;RectangleConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.Drawing;RectangleConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;df-generated | | System.Drawing;RectangleConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;dfc-generated | -| System.Drawing;RectangleConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | -| System.Drawing;RectangleConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.Drawing;RectangleConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | -| System.Drawing;RectangleConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | -| System.Drawing;RectangleConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.Drawing;RectangleConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Drawing;RectangleConverter;GetProperties;(System.ComponentModel.ITypeDescriptorContext,System.Object,System.Attribute[]);Argument[1];ReturnValue;taint;df-generated | | System.Drawing;RectangleF;Inflate;(System.Drawing.RectangleF,System.Single,System.Single);Argument[0];ReturnValue;value;dfc-generated | | System.Drawing;SizeConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Drawing;SizeConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Drawing;SizeConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.Drawing;SizeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;df-generated | | System.Drawing;SizeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;dfc-generated | -| System.Drawing;SizeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | -| System.Drawing;SizeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.Drawing;SizeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | -| System.Drawing;SizeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | -| System.Drawing;SizeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.Drawing;SizeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Drawing;SizeConverter;GetProperties;(System.ComponentModel.ITypeDescriptorContext,System.Object,System.Attribute[]);Argument[1];ReturnValue;taint;df-generated | | System.Drawing;SizeFConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | | System.Drawing;SizeFConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | | System.Drawing;SizeFConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System.Drawing;SizeFConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;df-generated | | System.Drawing;SizeFConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[1].Property[System.Globalization.CultureInfo.TextInfo].Property[System.Globalization.TextInfo.ListSeparator];ReturnValue;taint;dfc-generated | -| System.Drawing;SizeFConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | -| System.Drawing;SizeFConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.Drawing;SizeFConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | -| System.Drawing;SizeFConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | -| System.Drawing;SizeFConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.Drawing;SizeFConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Drawing;SizeFConverter;GetProperties;(System.ComponentModel.ITypeDescriptorContext,System.Object,System.Attribute[]);Argument[1];ReturnValue;taint;df-generated | | System.Dynamic;BinaryOperationBinder;FallbackBinaryOperation;(System.Dynamic.DynamicMetaObject,System.Dynamic.DynamicMetaObject,System.Dynamic.DynamicMetaObject);Argument[2];ReturnValue;value;dfc-generated | | System.Dynamic;BindingRestrictions;Combine;(System.Collections.Generic.IList);Argument[0].Element;ReturnValue;taint;df-generated | @@ -9076,18 +8198,11 @@ | System.Formats.Asn1;AsnReader;TryReadCharacterStringBytes;(System.Span,System.Formats.Asn1.Asn1Tag,System.Int32);Argument[this];Argument[0];taint;df-generated | | System.Formats.Asn1;AsnReader;TryReadOctetString;(System.Span,System.Int32,System.Nullable);Argument[this];Argument[0];taint;df-generated | | System.Formats.Asn1;AsnWriter;Encode;(System.Func,TReturn>);Argument[0].ReturnValue;ReturnValue;value;dfc-generated | -| System.Formats.Asn1;AsnWriter;Encode;(System.Func,TReturn>);Argument[0].ReturnValue;ReturnValue;value;hq-generated | -| System.Formats.Asn1;AsnWriter;Encode;(System.Func,TReturn>);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Formats.Asn1;AsnWriter;Encode;(System.Func,TReturn>);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Formats.Asn1;AsnWriter;Encode;(TState,System.Func,TReturn>);Argument[0];Argument[1].Parameter[0];value;dfc-generated | -| System.Formats.Asn1;AsnWriter;Encode;(TState,System.Func,TReturn>);Argument[0];Argument[1].Parameter[0];value;hq-generated | | System.Formats.Asn1;AsnWriter;Encode;(TState,System.Func,TReturn>);Argument[1].ReturnValue;ReturnValue;value;dfc-generated | -| System.Formats.Asn1;AsnWriter;Encode;(TState,System.Func,TReturn>);Argument[1].ReturnValue;ReturnValue;value;hq-generated | -| System.Formats.Asn1;AsnWriter;Encode;(TState,System.Func,TReturn>);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Formats.Asn1;AsnWriter;Encode;(TState,System.Func,TReturn>);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Formats.Asn1;AsnWriter;Encode;(TState,System.Action>);Argument[0];Argument[1].Parameter[0];value;dfc-generated | -| System.Formats.Asn1;AsnWriter;Encode;(TState,System.Action>);Argument[0];Argument[1].Parameter[0];value;hq-generated | -| System.Formats.Asn1;AsnWriter;Encode;(TState,System.Action>);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Formats.Asn1;AsnWriter;Encode;(TState,System.Action>);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Formats.Asn1;AsnWriter;PushOctetString;(System.Nullable);Argument[this];ReturnValue;taint;df-generated | | System.Formats.Asn1;AsnWriter;PushSequence;(System.Nullable);Argument[this];ReturnValue;taint;df-generated | @@ -9195,9 +8310,7 @@ | System.Globalization;TextElementEnumerator;GetTextElement;();Argument[this].SyntheticField[System.Globalization.TextElementEnumerator._currentTextElementSubstr];ReturnValue;value;dfc-generated | | System.Globalization;TextElementEnumerator;GetTextElement;();Argument[this].SyntheticField[System.Globalization.TextElementEnumerator._str];Argument[this].SyntheticField[System.Globalization.TextElementEnumerator._currentTextElementSubstr];value;dfc-generated | | System.Globalization;TextElementEnumerator;GetTextElement;();Argument[this].SyntheticField[System.Globalization.TextElementEnumerator._str];ReturnValue;value;dfc-generated | -| System.Globalization;TextElementEnumerator;get_Current;();Argument[this].SyntheticField[System.Globalization.TextElementEnumerator._currentTextElementSubstr];ReturnValue;value;df-generated | | System.Globalization;TextElementEnumerator;get_Current;();Argument[this].SyntheticField[System.Globalization.TextElementEnumerator._currentTextElementSubstr];ReturnValue;value;dfc-generated | -| System.Globalization;TextElementEnumerator;get_Current;();Argument[this].SyntheticField[System.Globalization.TextElementEnumerator._str];ReturnValue;value;df-generated | | System.Globalization;TextElementEnumerator;get_Current;();Argument[this].SyntheticField[System.Globalization.TextElementEnumerator._str];ReturnValue;value;dfc-generated | | System.Globalization;TextInfo;ReadOnly;(System.Globalization.TextInfo);Argument[0];ReturnValue;value;dfc-generated | | System.Globalization;TextInfo;ToLower;(System.String);Argument[0];ReturnValue;value;dfc-generated | @@ -9239,10 +8352,8 @@ | System.IO.Enumeration;FileSystemEnumerable;FileSystemEnumerable;(System.String,System.IO.Enumeration.FileSystemEnumerable+FindTransform,System.IO.EnumerationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.IO.Enumeration;FileSystemEnumerable;set_ShouldIncludePredicate;(System.IO.Enumeration.FileSystemEnumerable+FindPredicate);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.IO.Enumeration;FileSystemEnumerable;set_ShouldRecursePredicate;(System.IO.Enumeration.FileSystemEnumerable+FindPredicate);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.IO.Enumeration;FileSystemEnumerator;get_Current;();Argument[this].Property[System.IO.Enumeration.FileSystemEnumerator`1.Current];ReturnValue;value;df-generated | | System.IO.Enumeration;FileSystemEnumerator;get_Current;();Argument[this].Property[System.IO.Enumeration.FileSystemEnumerator`1.Current];ReturnValue;value;dfc-generated | | System.IO.Enumeration;FileSystemEnumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.IO.Enumeration;FileSystemEnumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.IO.Enumeration;FileSystemName;TranslateWin32Expression;(System.String);Argument[0];ReturnValue;value;dfc-generated | | System.IO.IsolatedStorage;IsolatedStorage;get_ApplicationIdentity;();Argument[this];ReturnValue;taint;df-generated | | System.IO.IsolatedStorage;IsolatedStorage;get_AssemblyIdentity;();Argument[this];ReturnValue;taint;df-generated | @@ -9267,10 +8378,8 @@ | System.IO.Pipelines;PipeReader;Create;(System.IO.Stream,System.IO.Pipelines.StreamPipeReaderOptions);Argument[0];ReturnValue;taint;df-generated | | System.IO.Pipelines;PipeReader;Create;(System.IO.Stream,System.IO.Pipelines.StreamPipeReaderOptions);Argument[1];ReturnValue;taint;df-generated | | System.IO.Pipelines;PipeReader;OnWriterCompleted;(System.Action,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.IO.Pipelines;PipeScheduler;Schedule;(System.Action,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.IO.Pipelines;PipeScheduler;Schedule;(System.Action,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.IO.Pipelines;PipeScheduler;Schedule;(System.Action,System.Object);Argument[1];Argument[0].Parameter[0];value;dfc-generated | -| System.IO.Pipelines;PipeScheduler;Schedule;(System.Action,System.Object);Argument[1];Argument[0].Parameter[0];value;hq-generated | | System.IO.Pipelines;PipeWriter;AsStream;(System.Boolean);Argument[this];ReturnValue;taint;df-generated | | System.IO.Pipelines;PipeWriter;Create;(System.IO.Stream,System.IO.Pipelines.StreamPipeWriterOptions);Argument[0];ReturnValue;taint;df-generated | | System.IO.Pipelines;PipeWriter;Create;(System.IO.Stream,System.IO.Pipelines.StreamPipeWriterOptions);Argument[1];ReturnValue;taint;df-generated | @@ -9401,7 +8510,6 @@ | System.IO;FileInfo;get_Directory;();Argument[this];ReturnValue;taint;df-generated | | System.IO;FileInfo;get_DirectoryName;();Argument[this].Field[System.IO.FileSystemInfo.FullPath];ReturnValue;value;dfc-generated | | System.IO;FileLoadException;get_Message;();Argument[this].Property[System.IO.FileLoadException.FileName];Argument[this].SyntheticField[System.Exception._message];taint;dfc-generated | -| System.IO;FileLoadException;get_Message;();Argument[this].SyntheticField[System.Exception._message];ReturnValue;value;dfc-generated | | System.IO;FileNotFoundException;get_Message;();Argument[this].SyntheticField[System.Exception._message];ReturnValue;value;dfc-generated | | System.IO;FileStream;FileStream;(Microsoft.Win32.SafeHandles.SafeFileHandle,System.IO.FileAccess,System.Int32);Argument[this];Argument[this].SyntheticField[System.IO.FileStream._strategy].SyntheticField[System.IO.Strategies.DerivedFileStreamStrategy._fileStream];value;dfc-generated | | System.IO;FileStream;FileStream;(Microsoft.Win32.SafeHandles.SafeFileHandle,System.IO.FileAccess,System.Int32,System.Boolean);Argument[this];Argument[this].SyntheticField[System.IO.FileStream._strategy].SyntheticField[System.IO.Strategies.DerivedFileStreamStrategy._fileStream];value;dfc-generated | @@ -9453,7 +8561,6 @@ | System.IO;MemoryStream;MemoryStream;(System.Byte[],System.Int32,System.Int32,System.Boolean,System.Boolean);Argument[0].Element;Argument[this];taint;manual | | System.IO;MemoryStream;ToArray;();Argument[this];ReturnValue;taint;manual | | System.IO;MemoryStream;TryGetBuffer;(System.ArraySegment);Argument[this];Argument[0].Element;taint;df-generated | -| System.IO;MemoryStream;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);Argument[0].Property[System.ReadOnlyMemory`1.Span].Element;Argument[this];taint;df-generated | | System.IO;MemoryStream;WriteAsync;(System.ReadOnlyMemory,System.Threading.CancellationToken);Argument[0].Property[System.ReadOnlyMemory`1.Span].Element;Argument[this];taint;dfc-generated | | System.IO;MemoryStream;WriteTo;(System.IO.Stream);Argument[this];Argument[0];taint;df-generated | | System.IO;Path;ChangeExtension;(System.String,System.String);Argument[0];ReturnValue;value;dfc-generated | @@ -9522,10 +8629,8 @@ | System.IO;RenamedEventArgs;get_OldFullPath;();Argument[this].SyntheticField[System.IO.RenamedEventArgs._oldFullPath];ReturnValue;value;dfc-generated | | System.IO;RenamedEventArgs;get_OldName;();Argument[this].SyntheticField[System.IO.RenamedEventArgs._oldName];ReturnValue;value;dfc-generated | | System.IO;RenamedEventHandler;BeginInvoke;(System.Object,System.IO.RenamedEventArgs,System.AsyncCallback,System.Object);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| System.IO;Stream;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.IO;Stream;BeginRead;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[this];Argument[0];taint;manual | | System.IO;Stream;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[0].Element;Argument[this];taint;manual | -| System.IO;Stream;BeginWrite;(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.IO;Stream;CopyTo;(System.IO.Stream);Argument[this];Argument[0];taint;manual | | System.IO;Stream;CopyTo;(System.IO.Stream,System.Int32);Argument[this];Argument[0];taint;manual | | System.IO;Stream;CopyToAsync;(System.IO.Stream);Argument[this];Argument[0];taint;manual | @@ -9714,7 +8819,6 @@ | System.Linq.Expressions;DynamicExpression;MakeDynamic;(System.Type,System.Runtime.CompilerServices.CallSiteBinder,System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Linq.Expressions.Expression);Argument[5];ReturnValue;taint;df-generated | | System.Linq.Expressions;DynamicExpression;Update;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;value;dfc-generated | | System.Linq.Expressions;DynamicExpression;get_Arguments;();Argument[this];ReturnValue;taint;df-generated | -| System.Linq.Expressions;ElementInit;GetArgument;(System.Int32);Argument[this].Property[System.Linq.Expressions.ElementInit.Arguments].Element;ReturnValue;value;df-generated | | System.Linq.Expressions;ElementInit;GetArgument;(System.Int32);Argument[this].Property[System.Linq.Expressions.ElementInit.Arguments].Element;ReturnValue;value;dfc-generated | | System.Linq.Expressions;ElementInit;ToString;();Argument[this];ReturnValue;taint;df-generated | | System.Linq.Expressions;ElementInit;Update;(System.Collections.Generic.IEnumerable);Argument[0];ReturnValue.Property[System.Linq.Expressions.ElementInit.Arguments];value;dfc-generated | @@ -10080,10 +9184,7 @@ | System.Linq.Expressions;ExpressionVisitor;Visit;(System.Collections.ObjectModel.ReadOnlyCollection);Argument[0];ReturnValue;value;df-generated | | System.Linq.Expressions;ExpressionVisitor;Visit;(System.Linq.Expressions.Expression);Argument[0];ReturnValue;value;dfc-generated | | System.Linq.Expressions;ExpressionVisitor;Visit;(System.Collections.ObjectModel.ReadOnlyCollection,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | -| System.Linq.Expressions;ExpressionVisitor;Visit;(System.Collections.ObjectModel.ReadOnlyCollection,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | | System.Linq.Expressions;ExpressionVisitor;Visit;(System.Collections.ObjectModel.ReadOnlyCollection,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| System.Linq.Expressions;ExpressionVisitor;Visit;(System.Collections.ObjectModel.ReadOnlyCollection,System.Func);Argument[0];ReturnValue;value;hq-generated | -| System.Linq.Expressions;ExpressionVisitor;Visit;(System.Collections.ObjectModel.ReadOnlyCollection,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq.Expressions;ExpressionVisitor;Visit;(System.Collections.ObjectModel.ReadOnlyCollection,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq.Expressions;ExpressionVisitor;VisitAndConvert;(System.Collections.ObjectModel.ReadOnlyCollection,System.String);Argument[0].Element;Argument[this];taint;df-generated | | System.Linq.Expressions;ExpressionVisitor;VisitAndConvert;(System.Collections.ObjectModel.ReadOnlyCollection,System.String);Argument[0];ReturnValue;value;df-generated | @@ -10141,7 +9242,6 @@ | System.Linq.Expressions;GotoExpression;Update;(System.Linq.Expressions.LabelTarget,System.Linq.Expressions.Expression);Argument[1];ReturnValue.Property[System.Linq.Expressions.GotoExpression.Value];value;dfc-generated | | System.Linq.Expressions;GotoExpression;Update;(System.Linq.Expressions.LabelTarget,System.Linq.Expressions.Expression);Argument[this];ReturnValue;value;dfc-generated | | System.Linq.Expressions;IArgumentProvider;GetArgument;(System.Int32);Argument[this];ReturnValue;taint;df-generated | -| System.Linq.Expressions;IndexExpression;GetArgument;(System.Int32);Argument[this].SyntheticField[System.Linq.Expressions.IndexExpression._arguments].Element;ReturnValue;value;df-generated | | System.Linq.Expressions;IndexExpression;GetArgument;(System.Int32);Argument[this].SyntheticField[System.Linq.Expressions.IndexExpression._arguments].Element;ReturnValue;value;dfc-generated | | System.Linq.Expressions;IndexExpression;Update;(System.Linq.Expressions.Expression,System.Collections.Generic.IEnumerable);Argument[0];ReturnValue.Property[System.Linq.Expressions.IndexExpression.Object];value;dfc-generated | | System.Linq.Expressions;IndexExpression;Update;(System.Linq.Expressions.Expression,System.Collections.Generic.IEnumerable);Argument[1];ReturnValue.SyntheticField[System.Linq.Expressions.IndexExpression._arguments];value;dfc-generated | @@ -10185,7 +9285,6 @@ | System.Linq.Expressions;NewArrayExpression;Update;(System.Collections.Generic.IEnumerable);Argument[this];ReturnValue;value;dfc-generated | | System.Linq.Expressions;NewExpression;Accept;(System.Linq.Expressions.ExpressionVisitor);Argument[this].Property[System.Linq.Expressions.NewExpression.Constructor];ReturnValue.Property[System.Linq.Expressions.NewExpression.Constructor];value;dfc-generated | | System.Linq.Expressions;NewExpression;Accept;(System.Linq.Expressions.ExpressionVisitor);Argument[this].Property[System.Linq.Expressions.NewExpression.Members];ReturnValue.Property[System.Linq.Expressions.NewExpression.Members];value;dfc-generated | -| System.Linq.Expressions;NewExpression;GetArgument;(System.Int32);Argument[this].SyntheticField[System.Linq.Expressions.NewExpression._arguments].Element;ReturnValue;value;df-generated | | System.Linq.Expressions;NewExpression;GetArgument;(System.Int32);Argument[this].SyntheticField[System.Linq.Expressions.NewExpression._arguments].Element;ReturnValue;value;dfc-generated | | System.Linq.Expressions;NewExpression;Update;(System.Collections.Generic.IEnumerable);Argument[0];ReturnValue.SyntheticField[System.Linq.Expressions.NewExpression._arguments];value;dfc-generated | | System.Linq.Expressions;NewExpression;Update;(System.Collections.Generic.IEnumerable);Argument[this].Property[System.Linq.Expressions.NewExpression.Constructor];ReturnValue.Property[System.Linq.Expressions.NewExpression.Constructor];value;dfc-generated | @@ -10214,112 +9313,62 @@ | System.Linq.Expressions;UnaryExpression;Update;(System.Linq.Expressions.Expression);Argument[this].Property[System.Linq.Expressions.UnaryExpression.Method];ReturnValue.Property[System.Linq.Expressions.UnaryExpression.Method];value;dfc-generated | | System.Linq.Expressions;UnaryExpression;Update;(System.Linq.Expressions.Expression);Argument[this];ReturnValue;value;dfc-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func>,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[2].Parameter[0];value;dfc-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func>,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[2].Parameter[0];value;hq-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func>,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[3].Parameter[0];value;dfc-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func>,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[3].Parameter[0];value;hq-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func>,System.Func>,System.Threading.CancellationToken);Argument[2].ReturnValue;Argument[3].Parameter[0];taint;dfc-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func>,System.Func>,System.Threading.CancellationToken);Argument[2].ReturnValue;Argument[3].Parameter[0];taint;hq-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func>,System.Func>,System.Threading.CancellationToken);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func>,System.Func>,System.Threading.CancellationToken);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func>,System.Func>,System.Threading.CancellationToken);Argument[3].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];taint;dfc-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func>,System.Func>,System.Threading.CancellationToken);Argument[3].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];taint;hq-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func>,System.Func>,System.Threading.CancellationToken);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func>,System.Func>,System.Threading.CancellationToken);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func>,System.Func>,System.Threading.CancellationToken);Argument[4];Argument[2].Parameter[2];value;dfc-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func>,System.Func>,System.Threading.CancellationToken);Argument[4];Argument[2].Parameter[2];value;hq-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func>,System.Func>,System.Threading.CancellationToken);Argument[4];Argument[3].Parameter[1];value;dfc-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func>,System.Func>,System.Threading.CancellationToken);Argument[4];Argument[3].Parameter[1];value;hq-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func,System.Func,System.Threading.CancellationToken);Argument[1];Argument[2].Parameter[0];value;dfc-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func,System.Func,System.Threading.CancellationToken);Argument[1];Argument[2].Parameter[0];value;hq-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func,System.Func,System.Threading.CancellationToken);Argument[1];Argument[3].Parameter[0];value;dfc-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func,System.Func,System.Threading.CancellationToken);Argument[1];Argument[3].Parameter[0];value;hq-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func,System.Func,System.Threading.CancellationToken);Argument[2].ReturnValue;Argument[3].Parameter[0];value;dfc-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func,System.Func,System.Threading.CancellationToken);Argument[2].ReturnValue;Argument[3].Parameter[0];value;hq-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func,System.Func,System.Threading.CancellationToken);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func,System.Func,System.Threading.CancellationToken);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func,System.Func,System.Threading.CancellationToken);Argument[3].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;dfc-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func,System.Func,System.Threading.CancellationToken);Argument[3].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;hq-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func,System.Func,System.Threading.CancellationToken);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func,System.Func,System.Threading.CancellationToken);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[2].Parameter[0];value;dfc-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[2].Parameter[0];value;hq-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func>,System.Threading.CancellationToken);Argument[1];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;dfc-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func>,System.Threading.CancellationToken);Argument[1];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;hq-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func>,System.Threading.CancellationToken);Argument[2].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];taint;dfc-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func>,System.Threading.CancellationToken);Argument[2].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];taint;hq-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func>,System.Threading.CancellationToken);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func>,System.Threading.CancellationToken);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func>,System.Threading.CancellationToken);Argument[3];Argument[2].Parameter[2];value;dfc-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func>,System.Threading.CancellationToken);Argument[3];Argument[2].Parameter[2];value;hq-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func,System.Threading.CancellationToken);Argument[1];Argument[2].Parameter[0];value;dfc-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func,System.Threading.CancellationToken);Argument[1];Argument[2].Parameter[0];value;hq-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func,System.Threading.CancellationToken);Argument[1];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;dfc-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func,System.Threading.CancellationToken);Argument[1];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;hq-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func,System.Threading.CancellationToken);Argument[2].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;dfc-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func,System.Threading.CancellationToken);Argument[2].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;hq-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func,System.Threading.CancellationToken);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,TAccumulate,System.Func,System.Threading.CancellationToken);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];taint;dfc-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];taint;hq-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[2];Argument[1].Parameter[2];value;dfc-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[2];Argument[1].Parameter[2];value;hq-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Threading.CancellationToken);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;dfc-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Threading.CancellationToken);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;hq-generated | -| System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;AggregateAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[1].ReturnValue;Argument[2].Parameter[0];taint;dfc-generated | -| System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[1].ReturnValue;Argument[2].Parameter[0];taint;hq-generated | -| System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[2].ReturnValue;Argument[3].Parameter[0];taint;dfc-generated | -| System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[2].ReturnValue;Argument[3].Parameter[0];taint;hq-generated | -| System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,TAccumulate,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,TAccumulate,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,TAccumulate,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[3].Parameter[0];value;dfc-generated | -| System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,TAccumulate,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[3].Parameter[0];value;hq-generated | -| System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,TAccumulate,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,TAccumulate,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].ReturnValue;Argument[2].Parameter[0];value;dfc-generated | -| System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].ReturnValue;Argument[2].Parameter[0];value;hq-generated | -| System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2].ReturnValue;Argument[3].Parameter[0];value;dfc-generated | -| System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2].ReturnValue;Argument[3].Parameter[0];value;hq-generated | -| System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,TAccumulate,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,TAccumulate,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,TAccumulate,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[3].Parameter[0];value;dfc-generated | -| System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,TAccumulate,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[3].Parameter[0];value;hq-generated | -| System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,TAccumulate,System.Func,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;AggregateBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,TAccumulate,System.Func,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;AllAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;AllAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;AllAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;AllAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[2];Argument[1].Parameter[1];value;dfc-generated | -| System.Linq;AsyncEnumerable;AllAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[2];Argument[1].Parameter[1];value;hq-generated | | System.Linq;AsyncEnumerable;AnyAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;AnyAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;AnyAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;AnyAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[2];Argument[1].Parameter[1];value;dfc-generated | -| System.Linq;AsyncEnumerable;AnyAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[2];Argument[1].Parameter[1];value;hq-generated | | System.Linq;AsyncEnumerable;Append;(System.Collections.Generic.IAsyncEnumerable,TSource);Argument[1];ReturnValue.Element;value;dfc-generated | | System.Linq;AsyncEnumerable;Cast;(System.Collections.Generic.IAsyncEnumerable);Argument[0];ReturnValue;value;dfc-generated | | System.Linq;AsyncEnumerable;Concat;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable);Argument[0];ReturnValue;value;dfc-generated | | System.Linq;AsyncEnumerable;Concat;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable);Argument[1];ReturnValue;value;dfc-generated | | System.Linq;AsyncEnumerable;CountAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;CountAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;CountAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;CountAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[2];Argument[1].Parameter[1];value;dfc-generated | -| System.Linq;AsyncEnumerable;CountAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[2];Argument[1].Parameter[1];value;hq-generated | | System.Linq;AsyncEnumerable;CountBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;CountBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;DefaultIfEmpty;(System.Collections.Generic.IAsyncEnumerable,TSource);Argument[1];ReturnValue.Element;value;dfc-generated | @@ -10328,146 +9377,84 @@ | System.Linq;AsyncEnumerable;ExceptBy;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;ExceptBy;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;FirstAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;FirstAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;FirstAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;FirstAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[2];Argument[1].Parameter[1];value;dfc-generated | -| System.Linq;AsyncEnumerable;FirstAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[2];Argument[1].Parameter[1];value;hq-generated | | System.Linq;AsyncEnumerable;FirstOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;FirstOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,TSource,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;FirstOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,TSource,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;FirstOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,TSource,System.Threading.CancellationToken);Argument[2];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;dfc-generated | -| System.Linq;AsyncEnumerable;FirstOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,TSource,System.Threading.CancellationToken);Argument[2];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;hq-generated | -| System.Linq;AsyncEnumerable;FirstOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;FirstOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;FirstOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[2];Argument[1].Parameter[1];value;dfc-generated | -| System.Linq;AsyncEnumerable;FirstOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[2];Argument[1].Parameter[1];value;hq-generated | -| System.Linq;AsyncEnumerable;FirstOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,TSource,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;FirstOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,TSource,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;FirstOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,TSource,System.Threading.CancellationToken);Argument[2];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;dfc-generated | -| System.Linq;AsyncEnumerable;FirstOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,TSource,System.Threading.CancellationToken);Argument[2];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;hq-generated | | System.Linq;AsyncEnumerable;FirstOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,TSource,System.Threading.CancellationToken);Argument[3];Argument[1].Parameter[1];value;dfc-generated | -| System.Linq;AsyncEnumerable;FirstOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,TSource,System.Threading.CancellationToken);Argument[3];Argument[1].Parameter[1];value;hq-generated | | System.Linq;AsyncEnumerable;FirstOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,TSource,System.Threading.CancellationToken);Argument[1];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;dfc-generated | -| System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func,System.Threading.CancellationToken,System.Threading.Tasks.ValueTask>,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func,System.Threading.CancellationToken,System.Threading.Tasks.ValueTask>,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func,System.Threading.CancellationToken,System.Threading.Tasks.ValueTask>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func,System.Threading.CancellationToken,System.Threading.Tasks.ValueTask>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func,System.Threading.CancellationToken,System.Threading.Tasks.ValueTask>,System.Collections.Generic.IEqualityComparer);Argument[3].ReturnValue;ReturnValue.Element;taint;dfc-generated | -| System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func,System.Threading.CancellationToken,System.Threading.Tasks.ValueTask>,System.Collections.Generic.IEqualityComparer);Argument[3].ReturnValue;ReturnValue.Element;taint;hq-generated | -| System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func,System.Threading.CancellationToken,System.Threading.Tasks.ValueTask>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func,System.Threading.CancellationToken,System.Threading.Tasks.ValueTask>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[3].ReturnValue;ReturnValue.Element;value;dfc-generated | -| System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[3].ReturnValue;ReturnValue.Element;value;hq-generated | -| System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func,System.Threading.CancellationToken,System.Threading.Tasks.ValueTask>,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func,System.Threading.CancellationToken,System.Threading.Tasks.ValueTask>,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func,System.Threading.CancellationToken,System.Threading.Tasks.ValueTask>,System.Collections.Generic.IEqualityComparer);Argument[2].ReturnValue;ReturnValue.Element;taint;dfc-generated | -| System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func,System.Threading.CancellationToken,System.Threading.Tasks.ValueTask>,System.Collections.Generic.IEqualityComparer);Argument[2].ReturnValue;ReturnValue.Element;taint;hq-generated | -| System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func,System.Threading.CancellationToken,System.Threading.Tasks.ValueTask>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func,System.Threading.CancellationToken,System.Threading.Tasks.ValueTask>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[2].ReturnValue;ReturnValue.Element;value;dfc-generated | -| System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[2].ReturnValue;ReturnValue.Element;value;hq-generated | -| System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;GroupBy;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;GroupJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func,System.Threading.CancellationToken,System.Threading.Tasks.ValueTask>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;GroupJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func,System.Threading.CancellationToken,System.Threading.Tasks.ValueTask>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;GroupJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func,System.Threading.CancellationToken,System.Threading.Tasks.ValueTask>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;GroupJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func,System.Threading.CancellationToken,System.Threading.Tasks.ValueTask>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;GroupJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func,System.Threading.CancellationToken,System.Threading.Tasks.ValueTask>,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;taint;dfc-generated | -| System.Linq;AsyncEnumerable;GroupJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func,System.Threading.CancellationToken,System.Threading.Tasks.ValueTask>,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;taint;hq-generated | -| System.Linq;AsyncEnumerable;GroupJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func,System.Threading.CancellationToken,System.Threading.Tasks.ValueTask>,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;GroupJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func,System.Threading.CancellationToken,System.Threading.Tasks.ValueTask>,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;GroupJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;GroupJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;GroupJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;GroupJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;GroupJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;value;dfc-generated | -| System.Linq;AsyncEnumerable;GroupJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;value;hq-generated | -| System.Linq;AsyncEnumerable;GroupJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;GroupJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;InfiniteSequence;(T,T);Argument[0];ReturnValue.Element;value;dfc-generated | | System.Linq;AsyncEnumerable;IntersectBy;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;IntersectBy;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;Join;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;Join;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;Join;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;Join;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;Join;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;taint;dfc-generated | -| System.Linq;AsyncEnumerable;Join;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;taint;hq-generated | -| System.Linq;AsyncEnumerable;Join;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;Join;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;Join;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;Join;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;Join;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;Join;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;Join;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;value;dfc-generated | -| System.Linq;AsyncEnumerable;Join;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;value;hq-generated | -| System.Linq;AsyncEnumerable;Join;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;Join;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;LastAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;LastAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;LastAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;LastAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[2];Argument[1].Parameter[1];value;dfc-generated | -| System.Linq;AsyncEnumerable;LastAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[2];Argument[1].Parameter[1];value;hq-generated | | System.Linq;AsyncEnumerable;LastOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;LastOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,TSource,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;LastOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,TSource,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;LastOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,TSource,System.Threading.CancellationToken);Argument[2];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;dfc-generated | -| System.Linq;AsyncEnumerable;LastOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,TSource,System.Threading.CancellationToken);Argument[2];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;hq-generated | -| System.Linq;AsyncEnumerable;LastOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;LastOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;LastOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[2];Argument[1].Parameter[1];value;dfc-generated | -| System.Linq;AsyncEnumerable;LastOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[2];Argument[1].Parameter[1];value;hq-generated | -| System.Linq;AsyncEnumerable;LastOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,TSource,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;LastOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,TSource,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;LastOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,TSource,System.Threading.CancellationToken);Argument[2];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;dfc-generated | -| System.Linq;AsyncEnumerable;LastOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,TSource,System.Threading.CancellationToken);Argument[2];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;hq-generated | | System.Linq;AsyncEnumerable;LastOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,TSource,System.Threading.CancellationToken);Argument[3];Argument[1].Parameter[1];value;dfc-generated | -| System.Linq;AsyncEnumerable;LastOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,TSource,System.Threading.CancellationToken);Argument[3];Argument[1].Parameter[1];value;hq-generated | | System.Linq;AsyncEnumerable;LastOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,TSource,System.Threading.CancellationToken);Argument[1];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;dfc-generated | -| System.Linq;AsyncEnumerable;LeftJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;LeftJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;LeftJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;LeftJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;LeftJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;taint;dfc-generated | -| System.Linq;AsyncEnumerable;LeftJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;taint;hq-generated | -| System.Linq;AsyncEnumerable;LeftJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;LeftJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;LeftJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;LeftJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;LeftJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;LeftJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;LeftJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;value;dfc-generated | -| System.Linq;AsyncEnumerable;LeftJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;value;hq-generated | -| System.Linq;AsyncEnumerable;LeftJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;LeftJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;LongCountAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;LongCountAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;LongCountAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;LongCountAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[2];Argument[1].Parameter[1];value;dfc-generated | -| System.Linq;AsyncEnumerable;LongCountAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[2];Argument[1].Parameter[1];value;hq-generated | -| System.Linq;AsyncEnumerable;MaxByAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Collections.Generic.IComparer,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;MaxByAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Collections.Generic.IComparer,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;MaxByAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Collections.Generic.IComparer,System.Threading.CancellationToken);Argument[3];Argument[1].Parameter[1];value;dfc-generated | -| System.Linq;AsyncEnumerable;MaxByAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Collections.Generic.IComparer,System.Threading.CancellationToken);Argument[3];Argument[1].Parameter[1];value;hq-generated | | System.Linq;AsyncEnumerable;MaxByAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Collections.Generic.IComparer,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;MinByAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Collections.Generic.IComparer,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;MinByAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Collections.Generic.IComparer,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;MinByAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Collections.Generic.IComparer,System.Threading.CancellationToken);Argument[3];Argument[1].Parameter[1];value;dfc-generated | -| System.Linq;AsyncEnumerable;MinByAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Collections.Generic.IComparer,System.Threading.CancellationToken);Argument[3];Argument[1].Parameter[1];value;hq-generated | | System.Linq;AsyncEnumerable;MinByAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Collections.Generic.IComparer,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;Order;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IComparer);Argument[1];ReturnValue;taint;df-generated | | System.Linq;AsyncEnumerable;OrderBy;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | @@ -10477,117 +9464,65 @@ | System.Linq;AsyncEnumerable;OrderDescending;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IComparer);Argument[1];ReturnValue;taint;df-generated | | System.Linq;AsyncEnumerable;Prepend;(System.Collections.Generic.IAsyncEnumerable,TSource);Argument[1];ReturnValue.Element;value;dfc-generated | | System.Linq;AsyncEnumerable;Repeat;(TResult,System.Int32);Argument[0];ReturnValue.Element;value;dfc-generated | -| System.Linq;AsyncEnumerable;RightJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;RightJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;RightJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;RightJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;RightJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;taint;dfc-generated | -| System.Linq;AsyncEnumerable;RightJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;taint;hq-generated | -| System.Linq;AsyncEnumerable;RightJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;RightJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;RightJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;RightJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;RightJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;RightJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;RightJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;value;dfc-generated | -| System.Linq;AsyncEnumerable;RightJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;value;hq-generated | -| System.Linq;AsyncEnumerable;RightJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;RightJoin;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;Select;(System.Collections.Generic.IAsyncEnumerable,System.Func>);Argument[1].ReturnValue;ReturnValue.Element;taint;dfc-generated | -| System.Linq;AsyncEnumerable;Select;(System.Collections.Generic.IAsyncEnumerable,System.Func>);Argument[1].ReturnValue;ReturnValue.Element;taint;hq-generated | -| System.Linq;AsyncEnumerable;Select;(System.Collections.Generic.IAsyncEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;Select;(System.Collections.Generic.IAsyncEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;Select;(System.Collections.Generic.IAsyncEnumerable,System.Func);Argument[1].ReturnValue;ReturnValue.Element;value;dfc-generated | -| System.Linq;AsyncEnumerable;Select;(System.Collections.Generic.IAsyncEnumerable,System.Func);Argument[1].ReturnValue;ReturnValue.Element;value;hq-generated | -| System.Linq;AsyncEnumerable;Select;(System.Collections.Generic.IAsyncEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;Select;(System.Collections.Generic.IAsyncEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;Select;(System.Collections.Generic.IAsyncEnumerable,System.Func>);Argument[1].ReturnValue;ReturnValue.Element;taint;dfc-generated | -| System.Linq;AsyncEnumerable;Select;(System.Collections.Generic.IAsyncEnumerable,System.Func>);Argument[1].ReturnValue;ReturnValue.Element;taint;hq-generated | -| System.Linq;AsyncEnumerable;Select;(System.Collections.Generic.IAsyncEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;Select;(System.Collections.Generic.IAsyncEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;Select;(System.Collections.Generic.IAsyncEnumerable,System.Func);Argument[1].ReturnValue;ReturnValue.Element;value;dfc-generated | -| System.Linq;AsyncEnumerable;Select;(System.Collections.Generic.IAsyncEnumerable,System.Func);Argument[1].ReturnValue;ReturnValue.Element;value;hq-generated | -| System.Linq;AsyncEnumerable;Select;(System.Collections.Generic.IAsyncEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;Select;(System.Collections.Generic.IAsyncEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>);Argument[2].ReturnValue;ReturnValue.Element;taint;dfc-generated | -| System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>);Argument[2].ReturnValue;ReturnValue.Element;taint;hq-generated | -| System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func);Argument[2].ReturnValue;ReturnValue.Element;value;dfc-generated | -| System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func);Argument[2].ReturnValue;ReturnValue.Element;value;hq-generated | -| System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func);Argument[1].ReturnValue.Element;Argument[2].Parameter[1];value;dfc-generated | -| System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func);Argument[1].ReturnValue.Element;Argument[2].Parameter[1];value;hq-generated | -| System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func);Argument[2].ReturnValue;ReturnValue.Element;value;dfc-generated | -| System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func);Argument[2].ReturnValue;ReturnValue.Element;value;hq-generated | -| System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>);Argument[2].ReturnValue;ReturnValue.Element;taint;dfc-generated | -| System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>);Argument[2].ReturnValue;ReturnValue.Element;taint;hq-generated | -| System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func);Argument[1].ReturnValue.Element;Argument[2].Parameter[1];value;dfc-generated | -| System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func);Argument[1].ReturnValue.Element;Argument[2].Parameter[1];value;hq-generated | -| System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func);Argument[2].ReturnValue;ReturnValue.Element;value;dfc-generated | -| System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func);Argument[2].ReturnValue;ReturnValue.Element;value;hq-generated | -| System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>>,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>>,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>>,System.Func>);Argument[2].ReturnValue;ReturnValue.Element;taint;dfc-generated | -| System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>>,System.Func>);Argument[2].ReturnValue;ReturnValue.Element;taint;hq-generated | -| System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>>,System.Func>);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>>,System.Func>);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>>,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>>,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>>,System.Func>);Argument[2].ReturnValue;ReturnValue.Element;taint;dfc-generated | -| System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>>,System.Func>);Argument[2].ReturnValue;ReturnValue.Element;taint;hq-generated | -| System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>>,System.Func>);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>>,System.Func>);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>);Argument[1].ReturnValue.Element;ReturnValue.Element;value;dfc-generated | -| System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>);Argument[1].ReturnValue.Element;ReturnValue.Element;value;hq-generated | -| System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>);Argument[1].ReturnValue.Element;ReturnValue.Element;value;dfc-generated | -| System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>);Argument[1].ReturnValue.Element;ReturnValue.Element;value;hq-generated | -| System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>>);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;SelectMany;(System.Collections.Generic.IAsyncEnumerable,System.Func>>);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;Sequence;(T,T,T);Argument[0];ReturnValue.Element;value;dfc-generated | | System.Linq;AsyncEnumerable;SingleAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;SingleAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;SingleAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;SingleAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[2];Argument[1].Parameter[1];value;dfc-generated | -| System.Linq;AsyncEnumerable;SingleAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[2];Argument[1].Parameter[1];value;hq-generated | | System.Linq;AsyncEnumerable;SingleOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;SingleOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,TSource,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;SingleOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,TSource,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;SingleOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,TSource,System.Threading.CancellationToken);Argument[2];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;dfc-generated | -| System.Linq;AsyncEnumerable;SingleOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,TSource,System.Threading.CancellationToken);Argument[2];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;hq-generated | -| System.Linq;AsyncEnumerable;SingleOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;SingleOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;SingleOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[2];Argument[1].Parameter[1];value;dfc-generated | -| System.Linq;AsyncEnumerable;SingleOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Threading.CancellationToken);Argument[2];Argument[1].Parameter[1];value;hq-generated | -| System.Linq;AsyncEnumerable;SingleOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,TSource,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;SingleOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,TSource,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;SingleOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,TSource,System.Threading.CancellationToken);Argument[2];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;dfc-generated | -| System.Linq;AsyncEnumerable;SingleOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,TSource,System.Threading.CancellationToken);Argument[2];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;hq-generated | | System.Linq;AsyncEnumerable;SingleOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,TSource,System.Threading.CancellationToken);Argument[3];Argument[1].Parameter[1];value;dfc-generated | -| System.Linq;AsyncEnumerable;SingleOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,TSource,System.Threading.CancellationToken);Argument[3];Argument[1].Parameter[1];value;hq-generated | | System.Linq;AsyncEnumerable;SingleOrDefaultAsync;(System.Collections.Generic.IAsyncEnumerable,TSource,System.Threading.CancellationToken);Argument[1];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;dfc-generated | | System.Linq;AsyncEnumerable;Skip;(System.Collections.Generic.IAsyncEnumerable,System.Int32);Argument[0];ReturnValue;value;dfc-generated | | System.Linq;AsyncEnumerable;SkipLast;(System.Collections.Generic.IAsyncEnumerable,System.Int32);Argument[0];ReturnValue;value;dfc-generated | @@ -10600,51 +9535,31 @@ | System.Linq;AsyncEnumerable;TakeWhile;(System.Collections.Generic.IAsyncEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;TakeWhile;(System.Collections.Generic.IAsyncEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;ThenBy;(System.Linq.IOrderedAsyncEnumerable,System.Func>,System.Collections.Generic.IComparer);Argument[0];ReturnValue;value;dfc-generated | -| System.Linq;AsyncEnumerable;ThenBy;(System.Linq.IOrderedAsyncEnumerable,System.Func>,System.Collections.Generic.IComparer);Argument[0];ReturnValue;value;hq-generated | -| System.Linq;AsyncEnumerable;ThenBy;(System.Linq.IOrderedAsyncEnumerable,System.Func>,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;ThenBy;(System.Linq.IOrderedAsyncEnumerable,System.Func>,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;ThenBy;(System.Linq.IOrderedAsyncEnumerable,System.Func,System.Collections.Generic.IComparer);Argument[0];ReturnValue;value;dfc-generated | -| System.Linq;AsyncEnumerable;ThenBy;(System.Linq.IOrderedAsyncEnumerable,System.Func,System.Collections.Generic.IComparer);Argument[0];ReturnValue;value;hq-generated | -| System.Linq;AsyncEnumerable;ThenBy;(System.Linq.IOrderedAsyncEnumerable,System.Func,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;ThenBy;(System.Linq.IOrderedAsyncEnumerable,System.Func,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;ThenByDescending;(System.Linq.IOrderedAsyncEnumerable,System.Func>,System.Collections.Generic.IComparer);Argument[0];ReturnValue;value;dfc-generated | -| System.Linq;AsyncEnumerable;ThenByDescending;(System.Linq.IOrderedAsyncEnumerable,System.Func>,System.Collections.Generic.IComparer);Argument[0];ReturnValue;value;hq-generated | -| System.Linq;AsyncEnumerable;ThenByDescending;(System.Linq.IOrderedAsyncEnumerable,System.Func>,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;ThenByDescending;(System.Linq.IOrderedAsyncEnumerable,System.Func>,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;ThenByDescending;(System.Linq.IOrderedAsyncEnumerable,System.Func,System.Collections.Generic.IComparer);Argument[0];ReturnValue;value;dfc-generated | -| System.Linq;AsyncEnumerable;ThenByDescending;(System.Linq.IOrderedAsyncEnumerable,System.Func,System.Collections.Generic.IComparer);Argument[0];ReturnValue;value;hq-generated | -| System.Linq;AsyncEnumerable;ThenByDescending;(System.Linq.IOrderedAsyncEnumerable,System.Func,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;ThenByDescending;(System.Linq.IOrderedAsyncEnumerable,System.Func,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;ToAsyncEnumerable;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue.Element;value;dfc-generated | -| System.Linq;AsyncEnumerable;ToDictionaryAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;ToDictionaryAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;ToDictionaryAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;ToDictionaryAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;ToDictionaryAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[4];Argument[1].Parameter[1];value;dfc-generated | -| System.Linq;AsyncEnumerable;ToDictionaryAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[4];Argument[1].Parameter[1];value;hq-generated | | System.Linq;AsyncEnumerable;ToDictionaryAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[4];Argument[2].Parameter[1];value;dfc-generated | -| System.Linq;AsyncEnumerable;ToDictionaryAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[4];Argument[2].Parameter[1];value;hq-generated | | System.Linq;AsyncEnumerable;ToDictionaryAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;ToDictionaryAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;ToDictionaryAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;ToDictionaryAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;ToDictionaryAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[3];Argument[1].Parameter[1];value;dfc-generated | -| System.Linq;AsyncEnumerable;ToDictionaryAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[3];Argument[1].Parameter[1];value;hq-generated | | System.Linq;AsyncEnumerable;ToDictionaryAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;ToLookupAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;ToLookupAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;ToLookupAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;ToLookupAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;ToLookupAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[4];Argument[1].Parameter[1];value;dfc-generated | -| System.Linq;AsyncEnumerable;ToLookupAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[4];Argument[1].Parameter[1];value;hq-generated | | System.Linq;AsyncEnumerable;ToLookupAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[4];Argument[2].Parameter[1];value;dfc-generated | -| System.Linq;AsyncEnumerable;ToLookupAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Func>,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[4];Argument[2].Parameter[1];value;hq-generated | | System.Linq;AsyncEnumerable;ToLookupAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;ToLookupAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| System.Linq;AsyncEnumerable;ToLookupAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;ToLookupAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;ToLookupAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[3];Argument[1].Parameter[1];value;dfc-generated | -| System.Linq;AsyncEnumerable;ToLookupAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[3];Argument[1].Parameter[1];value;hq-generated | | System.Linq;AsyncEnumerable;ToLookupAsync;(System.Collections.Generic.IAsyncEnumerable,System.Func,System.Collections.Generic.IEqualityComparer,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;UnionBy;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;UnionBy;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | @@ -10653,76 +9568,44 @@ | System.Linq;AsyncEnumerable;Where;(System.Collections.Generic.IAsyncEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;Where;(System.Collections.Generic.IAsyncEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;Zip;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>);Argument[2].ReturnValue;ReturnValue.Element;taint;dfc-generated | -| System.Linq;AsyncEnumerable;Zip;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>);Argument[2].ReturnValue;ReturnValue.Element;taint;hq-generated | -| System.Linq;AsyncEnumerable;Zip;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;Zip;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func>);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;AsyncEnumerable;Zip;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func);Argument[2].ReturnValue;ReturnValue.Element;value;dfc-generated | -| System.Linq;AsyncEnumerable;Zip;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func);Argument[2].ReturnValue;ReturnValue.Element;value;hq-generated | -| System.Linq;AsyncEnumerable;Zip;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;AsyncEnumerable;Zip;(System.Collections.Generic.IAsyncEnumerable,System.Collections.Generic.IAsyncEnumerable,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;Aggregate;(System.Collections.Generic.IEnumerable,TAccumulate,System.Func,System.Func);Argument[0].Element;Argument[2].Parameter[1];value;manual | | System.Linq;Enumerable;Aggregate;(System.Collections.Generic.IEnumerable,TAccumulate,System.Func,System.Func);Argument[1];Argument[2].Parameter[0];value;manual | | System.Linq;Enumerable;Aggregate;(System.Collections.Generic.IEnumerable,TAccumulate,System.Func,System.Func);Argument[2].ReturnValue;Argument[3].Parameter[0];value;manual | -| System.Linq;Enumerable;Aggregate;(System.Collections.Generic.IEnumerable,TAccumulate,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Aggregate;(System.Collections.Generic.IEnumerable,TAccumulate,System.Func,System.Func);Argument[3].ReturnValue;ReturnValue;value;manual | -| System.Linq;Enumerable;Aggregate;(System.Collections.Generic.IEnumerable,TAccumulate,System.Func,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Aggregate;(System.Collections.Generic.IEnumerable,TAccumulate,System.Func);Argument[0].Element;Argument[2].Parameter[1];value;manual | | System.Linq;Enumerable;Aggregate;(System.Collections.Generic.IEnumerable,TAccumulate,System.Func);Argument[1];Argument[2].Parameter[0];value;manual | | System.Linq;Enumerable;Aggregate;(System.Collections.Generic.IEnumerable,TAccumulate,System.Func);Argument[2].ReturnValue;ReturnValue;value;manual | -| System.Linq;Enumerable;Aggregate;(System.Collections.Generic.IEnumerable,TAccumulate,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Aggregate;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[1];value;manual | | System.Linq;Enumerable;Aggregate;(System.Collections.Generic.IEnumerable,System.Func);Argument[1].ReturnValue;ReturnValue;value;manual | -| System.Linq;Enumerable;Aggregate;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;AggregateBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;AggregateBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | | System.Linq;Enumerable;AggregateBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[3].Parameter[1];value;dfc-generated | -| System.Linq;Enumerable;AggregateBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[3].Parameter[1];value;hq-generated | | System.Linq;Enumerable;AggregateBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].ReturnValue;Argument[2].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;AggregateBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].ReturnValue;Argument[2].Parameter[0];value;hq-generated | -| System.Linq;Enumerable;AggregateBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;AggregateBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;AggregateBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2].ReturnValue;Argument[3].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;AggregateBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2].ReturnValue;Argument[3].Parameter[0];value;hq-generated | -| System.Linq;Enumerable;AggregateBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;AggregateBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| System.Linq;Enumerable;AggregateBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;AggregateBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;AggregateBy;(System.Collections.Generic.IEnumerable,System.Func,TAccumulate,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;AggregateBy;(System.Collections.Generic.IEnumerable,System.Func,TAccumulate,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | | System.Linq;Enumerable;AggregateBy;(System.Collections.Generic.IEnumerable,System.Func,TAccumulate,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[3].Parameter[1];value;dfc-generated | -| System.Linq;Enumerable;AggregateBy;(System.Collections.Generic.IEnumerable,System.Func,TAccumulate,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[3].Parameter[1];value;hq-generated | -| System.Linq;Enumerable;AggregateBy;(System.Collections.Generic.IEnumerable,System.Func,TAccumulate,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;AggregateBy;(System.Collections.Generic.IEnumerable,System.Func,TAccumulate,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;AggregateBy;(System.Collections.Generic.IEnumerable,System.Func,TAccumulate,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[3].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;AggregateBy;(System.Collections.Generic.IEnumerable,System.Func,TAccumulate,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[3].Parameter[0];value;hq-generated | -| System.Linq;Enumerable;AggregateBy;(System.Collections.Generic.IEnumerable,System.Func,TAccumulate,System.Func,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;AggregateBy;(System.Collections.Generic.IEnumerable,System.Func,TAccumulate,System.Func,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;All;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;All;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Any;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Any;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Append;(System.Collections.Generic.IEnumerable,TSource);Argument[1];ReturnValue;taint;df-generated | | System.Linq;Enumerable;AsEnumerable;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;Average;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Average;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Average;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Average;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Average;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Average;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Average;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Average;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Average;(System.Collections.Generic.IEnumerable,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Average;(System.Collections.Generic.IEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Average;(System.Collections.Generic.IEnumerable,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Average;(System.Collections.Generic.IEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Average;(System.Collections.Generic.IEnumerable,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Average;(System.Collections.Generic.IEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Average;(System.Collections.Generic.IEnumerable,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Average;(System.Collections.Generic.IEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Average;(System.Collections.Generic.IEnumerable,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Average;(System.Collections.Generic.IEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Average;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Average;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Cast;(System.Collections.IEnumerable);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;Chunk;(System.Collections.Generic.IEnumerable,System.Int32);Argument[0].Element;ReturnValue.Element.Element;value;dfc-generated | | System.Linq;Enumerable;Concat;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue.Element;value;manual | @@ -10730,10 +9613,7 @@ | System.Linq;Enumerable;Contains;(System.Collections.Generic.IEnumerable,TSource,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2];taint;df-generated | | System.Linq;Enumerable;Contains;(System.Collections.Generic.IEnumerable,TSource,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[2];taint;df-generated | | System.Linq;Enumerable;Count;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Count;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;CountBy;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;CountBy;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | -| System.Linq;Enumerable;CountBy;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;CountBy;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;DefaultIfEmpty;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;DefaultIfEmpty;(System.Collections.Generic.IEnumerable,TSource);Argument[0].Element;ReturnValue.Element;value;manual | @@ -10741,16 +9621,10 @@ | System.Linq;Enumerable;Distinct;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;Distinct;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;DistinctBy;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;DistinctBy;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | | System.Linq;Enumerable;DistinctBy;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;ReturnValue.Element;value;dfc-generated | -| System.Linq;Enumerable;DistinctBy;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;ReturnValue.Element;value;hq-generated | -| System.Linq;Enumerable;DistinctBy;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;DistinctBy;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;DistinctBy;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;DistinctBy;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | | System.Linq;Enumerable;DistinctBy;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;ReturnValue.Element;value;dfc-generated | -| System.Linq;Enumerable;DistinctBy;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;ReturnValue.Element;value;hq-generated | -| System.Linq;Enumerable;DistinctBy;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;DistinctBy;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;ElementAt;(System.Collections.Generic.IEnumerable,System.Index);Argument[0].Element;ReturnValue;value;dfc-generated | | System.Linq;Enumerable;ElementAt;(System.Collections.Generic.IEnumerable,System.Int32);Argument[0].Element;ReturnValue;value;manual | @@ -10759,91 +9633,57 @@ | System.Linq;Enumerable;Except;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;Except;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;ExceptBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;ExceptBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;hq-generated | | System.Linq;Enumerable;ExceptBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;ReturnValue.Element;value;dfc-generated | -| System.Linq;Enumerable;ExceptBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;ReturnValue.Element;value;hq-generated | -| System.Linq;Enumerable;ExceptBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;ExceptBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;ExceptBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;ExceptBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;hq-generated | | System.Linq;Enumerable;ExceptBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;ReturnValue.Element;value;dfc-generated | -| System.Linq;Enumerable;ExceptBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;ReturnValue.Element;value;hq-generated | -| System.Linq;Enumerable;ExceptBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;ExceptBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;First;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue;value;manual | | System.Linq;Enumerable;First;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;First;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;ReturnValue;value;manual | -| System.Linq;Enumerable;First;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;FirstOrDefault;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue;value;manual | | System.Linq;Enumerable;FirstOrDefault;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;FirstOrDefault;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;ReturnValue;value;manual | -| System.Linq;Enumerable;FirstOrDefault;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;FirstOrDefault;(System.Collections.Generic.IEnumerable,System.Func,TSource);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;FirstOrDefault;(System.Collections.Generic.IEnumerable,System.Func,TSource);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | | System.Linq;Enumerable;FirstOrDefault;(System.Collections.Generic.IEnumerable,System.Func,TSource);Argument[0].Element;ReturnValue;value;dfc-generated | -| System.Linq;Enumerable;FirstOrDefault;(System.Collections.Generic.IEnumerable,System.Func,TSource);Argument[0].Element;ReturnValue;value;hq-generated | -| System.Linq;Enumerable;FirstOrDefault;(System.Collections.Generic.IEnumerable,System.Func,TSource);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;FirstOrDefault;(System.Collections.Generic.IEnumerable,System.Func,TSource);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;FirstOrDefault;(System.Collections.Generic.IEnumerable,System.Func,TSource);Argument[2];ReturnValue;value;dfc-generated | -| System.Linq;Enumerable;FirstOrDefault;(System.Collections.Generic.IEnumerable,System.Func,TSource);Argument[2];ReturnValue;value;hq-generated | | System.Linq;Enumerable;FirstOrDefault;(System.Collections.Generic.IEnumerable,TSource);Argument[1];ReturnValue;value;dfc-generated | | System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | -| System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);Argument[2].ReturnValue;Argument[3].Parameter[1].Element;value;manual | -| System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);Argument[3].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | -| System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[2].ReturnValue;Argument[3].Parameter[1].Element;value;manual | -| System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[3].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;manual | -| System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[2].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | -| System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | -| System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,TResult>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,TResult>);Argument[0];Argument[2].Parameter[1];value;manual | | System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,TResult>);Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | -| System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,TResult>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,TResult>);Argument[2].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,TResult>);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | -| System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | -| System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;GroupBy;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;GroupJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Enumerable;GroupJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;Enumerable;GroupJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;Enumerable;GroupJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);Argument[1].Element;Argument[4].Parameter[1];value;manual | -| System.Linq;Enumerable;GroupJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);Argument[2];Argument[2].Parameter[delegate-self];value;manual | -| System.Linq;Enumerable;GroupJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;GroupJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);Argument[4].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;GroupJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;GroupJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Enumerable;GroupJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;Enumerable;GroupJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;Enumerable;GroupJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[1].Element;Argument[4].Parameter[1];value;manual | -| System.Linq;Enumerable;GroupJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;manual | -| System.Linq;Enumerable;GroupJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;GroupJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;GroupJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Index;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue.Element.Field[System.ValueTuple`2.Item2];value;dfc-generated | | System.Linq;Enumerable;InfiniteSequence;(T,T);Argument[0];ReturnValue.Element;value;dfc-generated | | System.Linq;Enumerable;Intersect;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue.Element;value;manual | @@ -10851,105 +9691,63 @@ | System.Linq;Enumerable;Intersect;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;Intersect;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);Argument[1].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;IntersectBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;IntersectBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;hq-generated | | System.Linq;Enumerable;IntersectBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;ReturnValue.Element;value;dfc-generated | -| System.Linq;Enumerable;IntersectBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;ReturnValue.Element;value;hq-generated | -| System.Linq;Enumerable;IntersectBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;IntersectBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;IntersectBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;IntersectBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;hq-generated | | System.Linq;Enumerable;IntersectBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;ReturnValue.Element;value;dfc-generated | -| System.Linq;Enumerable;IntersectBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;ReturnValue.Element;value;hq-generated | -| System.Linq;Enumerable;IntersectBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;IntersectBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;Join;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Enumerable;Join;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;Enumerable;Join;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;Enumerable;Join;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[1].Element;Argument[4].Parameter[1];value;manual | -| System.Linq;Enumerable;Join;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;manual | -| System.Linq;Enumerable;Join;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Join;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[4].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;Join;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Join;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Enumerable;Join;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;Enumerable;Join;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;Enumerable;Join;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].Element;Argument[4].Parameter[1];value;manual | -| System.Linq;Enumerable;Join;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;manual | -| System.Linq;Enumerable;Join;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Join;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;Join;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Last;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue;value;manual | | System.Linq;Enumerable;Last;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;Last;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;ReturnValue;value;manual | -| System.Linq;Enumerable;Last;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;LastOrDefault;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue;value;manual | | System.Linq;Enumerable;LastOrDefault;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;LastOrDefault;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;ReturnValue;value;manual | -| System.Linq;Enumerable;LastOrDefault;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | -| System.Linq;Enumerable;LastOrDefault;(System.Collections.Generic.IEnumerable,System.Func,TSource);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;LastOrDefault;(System.Collections.Generic.IEnumerable,System.Func,TSource);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;LastOrDefault;(System.Collections.Generic.IEnumerable,System.Func,TSource);Argument[2];ReturnValue;value;dfc-generated | -| System.Linq;Enumerable;LastOrDefault;(System.Collections.Generic.IEnumerable,System.Func,TSource);Argument[2];ReturnValue;value;hq-generated | | System.Linq;Enumerable;LastOrDefault;(System.Collections.Generic.IEnumerable,TSource);Argument[1];ReturnValue;value;dfc-generated | | System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;hq-generated | | System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[0].Element;Argument[4].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[0].Element;Argument[4].Parameter[0];value;hq-generated | | System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[1].Element;Argument[3].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[1].Element;Argument[3].Parameter[0];value;hq-generated | -| System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[4].ReturnValue;ReturnValue.Element;value;dfc-generated | -| System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[4].ReturnValue;ReturnValue.Element;value;hq-generated | -| System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[4];Argument[4].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;hq-generated | | System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[4].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[4].Parameter[0];value;hq-generated | | System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].Element;Argument[3].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].Element;Argument[3].Parameter[0];value;hq-generated | -| System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;value;dfc-generated | -| System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;value;hq-generated | -| System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;LeftJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;LongCount;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;LongCount;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable>);Argument[0].Element;ReturnValue;value;dfc-generated | | System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable>);Argument[0].Element;ReturnValue;value;dfc-generated | | System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable>);Argument[0].Element;ReturnValue;value;dfc-generated | | System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable>);Argument[0].Element;ReturnValue;value;dfc-generated | | System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IComparer);Argument[0].Element;Argument[1];taint;df-generated | | System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IComparer);Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Max;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;MaxBy;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;MaxBy;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable>);Argument[0].Element;ReturnValue;value;dfc-generated | @@ -10957,30 +9755,19 @@ | System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable>);Argument[0].Element;ReturnValue;value;dfc-generated | | System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable>);Argument[0].Element;ReturnValue;value;dfc-generated | | System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IComparer);Argument[0].Element;Argument[1];taint;df-generated | | System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IComparer);Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Min;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;MinBy;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;MinBy;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;OfType;(System.Collections.IEnumerable);Argument[0].Element;ReturnValue.Element;value;manual | @@ -10988,16 +9775,12 @@ | System.Linq;Enumerable;Order;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IComparer);Argument[0].Element;ReturnValue.Element;value;dfc-generated | | System.Linq;Enumerable;OrderBy;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;OrderBy;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;OrderBy;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;OrderBy;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;OrderBy;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;OrderBy;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;OrderByDescending;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;OrderByDescending;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;OrderByDescending;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;OrderByDescending;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;OrderByDescending;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;OrderByDescending;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;OrderDescending;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue.Element;value;dfc-generated | | System.Linq;Enumerable;OrderDescending;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IComparer);Argument[0].Element;ReturnValue.Element;value;dfc-generated | | System.Linq;Enumerable;Prepend;(System.Collections.Generic.IEnumerable,TSource);Argument[1];ReturnValue;taint;df-generated | @@ -11005,57 +9788,35 @@ | System.Linq;Enumerable;Reverse;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;Reverse;(TSource[]);Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;hq-generated | | System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[1].Element;Argument[3].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[1].Element;Argument[3].Parameter[0];value;hq-generated | | System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[1].Element;Argument[4].Parameter[1];value;dfc-generated | -| System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[1].Element;Argument[4].Parameter[1];value;hq-generated | -| System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[4].ReturnValue;ReturnValue.Element;value;dfc-generated | -| System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[4].ReturnValue;ReturnValue.Element;value;hq-generated | -| System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[4];Argument[4].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;hq-generated | | System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].Element;Argument[3].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].Element;Argument[3].Parameter[0];value;hq-generated | | System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].Element;Argument[4].Parameter[1];value;dfc-generated | -| System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].Element;Argument[4].Parameter[1];value;hq-generated | -| System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | -| System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;value;dfc-generated | -| System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;value;hq-generated | -| System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;RightJoin;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;Select;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;Select;(System.Collections.Generic.IEnumerable,System.Func);Argument[1].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;Select;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Select;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;Select;(System.Collections.Generic.IEnumerable,System.Func);Argument[1].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;Select;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;SelectMany;(System.Collections.Generic.IEnumerable,System.Func>,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;SelectMany;(System.Collections.Generic.IEnumerable,System.Func>,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Enumerable;SelectMany;(System.Collections.Generic.IEnumerable,System.Func>,System.Func);Argument[1].ReturnValue.Element;Argument[2].Parameter[1];value;manual | -| System.Linq;Enumerable;SelectMany;(System.Collections.Generic.IEnumerable,System.Func>,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;SelectMany;(System.Collections.Generic.IEnumerable,System.Func>,System.Func);Argument[2].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;SelectMany;(System.Collections.Generic.IEnumerable,System.Func>,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;SelectMany;(System.Collections.Generic.IEnumerable,System.Func>,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;SelectMany;(System.Collections.Generic.IEnumerable,System.Func>,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Enumerable;SelectMany;(System.Collections.Generic.IEnumerable,System.Func>,System.Func);Argument[1].ReturnValue.Element;Argument[2].Parameter[1];value;manual | -| System.Linq;Enumerable;SelectMany;(System.Collections.Generic.IEnumerable,System.Func>,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;SelectMany;(System.Collections.Generic.IEnumerable,System.Func>,System.Func);Argument[2].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;SelectMany;(System.Collections.Generic.IEnumerable,System.Func>,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;SelectMany;(System.Collections.Generic.IEnumerable,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;SelectMany;(System.Collections.Generic.IEnumerable,System.Func>);Argument[1].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;SelectMany;(System.Collections.Generic.IEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;SelectMany;(System.Collections.Generic.IEnumerable,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;SelectMany;(System.Collections.Generic.IEnumerable,System.Func>);Argument[1].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;SelectMany;(System.Collections.Generic.IEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Sequence;(T,T,T);Argument[0];ReturnValue.Element;value;dfc-generated | | System.Linq;Enumerable;SequenceEqual;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable);Argument[1].Element;Argument[0].Element;taint;df-generated | | System.Linq;Enumerable;SequenceEqual;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2];taint;df-generated | @@ -11065,70 +9826,46 @@ | System.Linq;Enumerable;Single;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue;value;manual | | System.Linq;Enumerable;Single;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;Single;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;ReturnValue;value;manual | -| System.Linq;Enumerable;Single;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;SingleOrDefault;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue;value;manual | | System.Linq;Enumerable;SingleOrDefault;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;SingleOrDefault;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;ReturnValue;value;manual | -| System.Linq;Enumerable;SingleOrDefault;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;SingleOrDefault;(System.Collections.Generic.IEnumerable,System.Func,TSource);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;SingleOrDefault;(System.Collections.Generic.IEnumerable,System.Func,TSource);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | | System.Linq;Enumerable;SingleOrDefault;(System.Collections.Generic.IEnumerable,System.Func,TSource);Argument[0].Element;ReturnValue;value;dfc-generated | -| System.Linq;Enumerable;SingleOrDefault;(System.Collections.Generic.IEnumerable,System.Func,TSource);Argument[0].Element;ReturnValue;value;hq-generated | -| System.Linq;Enumerable;SingleOrDefault;(System.Collections.Generic.IEnumerable,System.Func,TSource);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;SingleOrDefault;(System.Collections.Generic.IEnumerable,System.Func,TSource);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;SingleOrDefault;(System.Collections.Generic.IEnumerable,System.Func,TSource);Argument[2];ReturnValue;value;dfc-generated | -| System.Linq;Enumerable;SingleOrDefault;(System.Collections.Generic.IEnumerable,System.Func,TSource);Argument[2];ReturnValue;value;hq-generated | | System.Linq;Enumerable;SingleOrDefault;(System.Collections.Generic.IEnumerable,TSource);Argument[0].Element;ReturnValue;value;dfc-generated | | System.Linq;Enumerable;SingleOrDefault;(System.Collections.Generic.IEnumerable,TSource);Argument[1];ReturnValue;value;dfc-generated | | System.Linq;Enumerable;Skip;(System.Collections.Generic.IEnumerable,System.Int32);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;SkipLast;(System.Collections.Generic.IEnumerable,System.Int32);Argument[0];ReturnValue;value;df-generated | | System.Linq;Enumerable;SkipWhile;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;SkipWhile;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;SkipWhile;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;SkipWhile;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;SkipWhile;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;SkipWhile;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Sum;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Sum;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Sum;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Sum;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Sum;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Sum;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Sum;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Sum;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Sum;(System.Collections.Generic.IEnumerable,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Sum;(System.Collections.Generic.IEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Sum;(System.Collections.Generic.IEnumerable,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Sum;(System.Collections.Generic.IEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Sum;(System.Collections.Generic.IEnumerable,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Sum;(System.Collections.Generic.IEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Sum;(System.Collections.Generic.IEnumerable,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Sum;(System.Collections.Generic.IEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Sum;(System.Collections.Generic.IEnumerable,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Sum;(System.Collections.Generic.IEnumerable,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Sum;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Enumerable;Sum;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Take;(System.Collections.Generic.IEnumerable,System.Int32);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;Take;(System.Collections.Generic.IEnumerable,System.Range);Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;Enumerable;TakeLast;(System.Collections.Generic.IEnumerable,System.Int32);Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;Enumerable;TakeWhile;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;TakeWhile;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;TakeWhile;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;TakeWhile;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;TakeWhile;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;TakeWhile;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;ThenBy;(System.Linq.IOrderedEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;ThenBy;(System.Linq.IOrderedEnumerable,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;ThenBy;(System.Linq.IOrderedEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;ThenBy;(System.Linq.IOrderedEnumerable,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;ThenBy;(System.Linq.IOrderedEnumerable,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;ThenBy;(System.Linq.IOrderedEnumerable,System.Func,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;ThenByDescending;(System.Linq.IOrderedEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;ThenByDescending;(System.Linq.IOrderedEnumerable,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;ThenByDescending;(System.Linq.IOrderedEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;ThenByDescending;(System.Linq.IOrderedEnumerable,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;ThenByDescending;(System.Linq.IOrderedEnumerable,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;ThenByDescending;(System.Linq.IOrderedEnumerable,System.Func,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;ToArray;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;ToDictionary;(System.Collections.Generic.IEnumerable>);Argument[0].Element.Property[System.Collections.Generic.KeyValuePair`2.Key];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;dfc-generated | | System.Linq;Enumerable;ToDictionary;(System.Collections.Generic.IEnumerable>);Argument[0].Element.Property[System.Collections.Generic.KeyValuePair`2.Value];ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;dfc-generated | @@ -11142,71 +9879,46 @@ | System.Linq;Enumerable;ToDictionary;(System.Collections.Generic.IEnumerable>,System.Collections.Generic.IEqualityComparer);Argument[0].Element.Field[System.ValueTuple`2.Item2];ReturnValue.Element;value;dfc-generated | | System.Linq;Enumerable;ToDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;ToDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;manual | -| System.Linq;Enumerable;ToDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;ToDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[2].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;ToDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;ToDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;ToDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;manual | -| System.Linq;Enumerable;ToDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;ToDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;ToDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;ToDictionary;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;ToDictionary;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;ToDictionary;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;ToDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;ToDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;ToDictionary;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;ToList;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;ToLookup;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;ToLookup;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;manual | -| System.Linq;Enumerable;ToLookup;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;ToLookup;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[2].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;ToLookup;(System.Collections.Generic.IEnumerable,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;ToLookup;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;ToLookup;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;manual | -| System.Linq;Enumerable;ToLookup;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;ToLookup;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;ToLookup;(System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;ToLookup;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;ToLookup;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;ToLookup;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;ToLookup;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;ToLookup;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;ToLookup;(System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Union;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;Union;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable);Argument[1].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;Union;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;Union;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);Argument[1].Element;ReturnValue.Element;value;manual | | System.Linq;Enumerable;UnionBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;UnionBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;hq-generated | | System.Linq;Enumerable;UnionBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;ReturnValue.Element;value;dfc-generated | -| System.Linq;Enumerable;UnionBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;ReturnValue.Element;value;hq-generated | | System.Linq;Enumerable;UnionBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);Argument[1].Element;Argument[2].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;UnionBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);Argument[1].Element;Argument[2].Parameter[0];value;hq-generated | | System.Linq;Enumerable;UnionBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);Argument[1].Element;ReturnValue.Element;value;dfc-generated | -| System.Linq;Enumerable;UnionBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);Argument[1].Element;ReturnValue.Element;value;hq-generated | -| System.Linq;Enumerable;UnionBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;UnionBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;UnionBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;UnionBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;hq-generated | | System.Linq;Enumerable;UnionBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;ReturnValue.Element;value;dfc-generated | -| System.Linq;Enumerable;UnionBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;ReturnValue.Element;value;hq-generated | | System.Linq;Enumerable;UnionBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].Element;Argument[2].Parameter[0];value;dfc-generated | -| System.Linq;Enumerable;UnionBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].Element;Argument[2].Parameter[0];value;hq-generated | | System.Linq;Enumerable;UnionBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].Element;ReturnValue.Element;value;dfc-generated | -| System.Linq;Enumerable;UnionBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].Element;ReturnValue.Element;value;hq-generated | -| System.Linq;Enumerable;UnionBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;Enumerable;UnionBy;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;Enumerable;Where;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;Where;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;Where;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Where;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Enumerable;Where;(System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;Where;(System.Collections.Generic.IEnumerable,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Zip;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Enumerable;Zip;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);Argument[1].Element;Argument[2].Parameter[1];value;manual | | System.Linq;Enumerable;Zip;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);Argument[2].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Enumerable;Zip;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Enumerable;Zip;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue.Element.Field[System.ValueTuple`3.Item1];value;dfc-generated | | System.Linq;Enumerable;Zip;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable);Argument[1].Element;ReturnValue.Element.Field[System.ValueTuple`3.Item2];value;dfc-generated | | System.Linq;Enumerable;Zip;(System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEnumerable);Argument[2].Element;ReturnValue.Element.Field[System.ValueTuple`3.Item3];value;dfc-generated | @@ -11223,32 +9935,18 @@ | System.Linq;IOrderedEnumerable;CreateOrderedEnumerable;(System.Func,System.Collections.Generic.IComparer,System.Boolean);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Linq;IQueryable;get_Provider;();Argument[this];ReturnValue;value;dfc-generated | | System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,System.Func);Argument[1].ReturnValue;Argument[1].Parameter[0];value;dfc-generated | -| System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,System.Func);Argument[1].ReturnValue;Argument[1].Parameter[0];value;hq-generated | | System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,System.Func);Argument[1].ReturnValue;ReturnValue;value;dfc-generated | -| System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,System.Func);Argument[1].ReturnValue;ReturnValue;value;hq-generated | -| System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,TAccumulate,System.Func);Argument[1];Argument[2].Parameter[0];value;dfc-generated | -| System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,TAccumulate,System.Func);Argument[1];Argument[2].Parameter[0];value;hq-generated | | System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,TAccumulate,System.Func);Argument[1];ReturnValue;value;dfc-generated | -| System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,TAccumulate,System.Func);Argument[1];ReturnValue;value;hq-generated | | System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,TAccumulate,System.Func);Argument[2].ReturnValue;Argument[2].Parameter[0];value;dfc-generated | -| System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,TAccumulate,System.Func);Argument[2].ReturnValue;Argument[2].Parameter[0];value;hq-generated | | System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,TAccumulate,System.Func);Argument[2].ReturnValue;ReturnValue;value;dfc-generated | -| System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,TAccumulate,System.Func);Argument[2].ReturnValue;ReturnValue;value;hq-generated | -| System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,TAccumulate,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,TAccumulate,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,TAccumulate,System.Func,System.Func);Argument[1];Argument[2].Parameter[0];value;dfc-generated | -| System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,TAccumulate,System.Func,System.Func);Argument[1];Argument[2].Parameter[0];value;hq-generated | | System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,TAccumulate,System.Func,System.Func);Argument[1];Argument[3].Parameter[0];value;dfc-generated | -| System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,TAccumulate,System.Func,System.Func);Argument[1];Argument[3].Parameter[0];value;hq-generated | | System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,TAccumulate,System.Func,System.Func);Argument[2].ReturnValue;Argument[3].Parameter[0];value;dfc-generated | -| System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,TAccumulate,System.Func,System.Func);Argument[2].ReturnValue;Argument[3].Parameter[0];value;hq-generated | -| System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,TAccumulate,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,TAccumulate,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,TAccumulate,System.Func,System.Func);Argument[3].ReturnValue;ReturnValue;value;dfc-generated | -| System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,TAccumulate,System.Func,System.Func);Argument[3].ReturnValue;ReturnValue;value;hq-generated | -| System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,TAccumulate,System.Func,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Linq;ImmutableArrayExtensions;Aggregate;(System.Collections.Immutable.ImmutableArray,TAccumulate,System.Func,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Linq;ImmutableArrayExtensions;All;(System.Collections.Immutable.ImmutableArray,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;ImmutableArrayExtensions;Any;(System.Collections.Immutable.ImmutableArray,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | @@ -11268,12 +9966,8 @@ | System.Linq;ImmutableArrayExtensions;LastOrDefault;(System.Collections.Immutable.ImmutableArray,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;ImmutableArrayExtensions;Select;(System.Collections.Immutable.ImmutableArray,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;ImmutableArrayExtensions;SelectMany;(System.Collections.Immutable.ImmutableArray,System.Func>,System.Func);Argument[1].ReturnValue.Element;Argument[2].Parameter[1];value;dfc-generated | -| System.Linq;ImmutableArrayExtensions;SelectMany;(System.Collections.Immutable.ImmutableArray,System.Func>,System.Func);Argument[1].ReturnValue.Element;Argument[2].Parameter[1];value;hq-generated | -| System.Linq;ImmutableArrayExtensions;SelectMany;(System.Collections.Immutable.ImmutableArray,System.Func>,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;ImmutableArrayExtensions;SelectMany;(System.Collections.Immutable.ImmutableArray,System.Func>,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;ImmutableArrayExtensions;SelectMany;(System.Collections.Immutable.ImmutableArray,System.Func>,System.Func);Argument[2].ReturnValue;ReturnValue.Element;value;dfc-generated | -| System.Linq;ImmutableArrayExtensions;SelectMany;(System.Collections.Immutable.ImmutableArray,System.Func>,System.Func);Argument[2].ReturnValue;ReturnValue.Element;value;hq-generated | -| System.Linq;ImmutableArrayExtensions;SelectMany;(System.Collections.Immutable.ImmutableArray,System.Func>,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;ImmutableArrayExtensions;SelectMany;(System.Collections.Immutable.ImmutableArray,System.Func>,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;ImmutableArrayExtensions;SequenceEqual;(System.Collections.Immutable.ImmutableArray,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2];taint;df-generated | | System.Linq;ImmutableArrayExtensions;SequenceEqual;(System.Collections.Immutable.ImmutableArray,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);Argument[1].Element;Argument[2];taint;df-generated | @@ -11286,87 +9980,50 @@ | System.Linq;ImmutableArrayExtensions;SingleOrDefault;(System.Collections.Immutable.ImmutableArray,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;ImmutableArrayExtensions;ToArray;(System.Collections.Immutable.ImmutableArray);Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | -| System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | | System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func);Argument[0].Element;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;dfc-generated | -| System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func);Argument[0].Element;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;hq-generated | | System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func);Argument[1].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;dfc-generated | -| System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func);Argument[1].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;hq-generated | -| System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | -| System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | | System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;dfc-generated | -| System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;hq-generated | | System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;dfc-generated | -| System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;hq-generated | -| System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func,System.Func);Argument[1].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;dfc-generated | -| System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func,System.Func);Argument[1].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;hq-generated | -| System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func,System.Func);Argument[2].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;dfc-generated | -| System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func,System.Func);Argument[2].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;hq-generated | -| System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;dfc-generated | -| System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Key];value;hq-generated | -| System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;dfc-generated | -| System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2].ReturnValue;ReturnValue.Element.Property[System.Collections.Generic.KeyValuePair`2.Value];value;hq-generated | -| System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;ImmutableArrayExtensions;ToDictionary;(System.Collections.Immutable.ImmutableArray,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;ImmutableArrayExtensions;Where;(System.Collections.Immutable.ImmutableArray,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Lookup;ApplyResultSelector;(System.Func,TResult>);Argument[0].ReturnValue;ReturnValue.Element;value;dfc-generated | -| System.Linq;Lookup;ApplyResultSelector;(System.Func,TResult>);Argument[0].ReturnValue;ReturnValue.Element;value;hq-generated | -| System.Linq;Lookup;ApplyResultSelector;(System.Func,TResult>);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Linq;Lookup;ApplyResultSelector;(System.Func,TResult>);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Linq;Lookup;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.Generic.IEnumerator`1.Current];value;manual | | System.Linq;Lookup;get_Item;(TKey);Argument[this];ReturnValue;taint;df-generated | | System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Func);Argument[1].ReturnValue;ReturnValue;value;dfc-generated | -| System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Func);Argument[1].ReturnValue;ReturnValue;value;hq-generated | -| System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | -| System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Func);Argument[3].ReturnValue;ReturnValue;value;dfc-generated | -| System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Func);Argument[3].ReturnValue;ReturnValue;value;hq-generated | -| System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Func);Argument[4].ReturnValue;ReturnValue;value;dfc-generated | -| System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Func);Argument[4].ReturnValue;ReturnValue;value;hq-generated | -| System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Func);Argument[4];Argument[4].Parameter[delegate-self];value;dfc-generated | | System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Func);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,TAccumulate,System.Func,System.Func,System.Func);Argument[1];ReturnValue;value;dfc-generated | -| System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,TAccumulate,System.Func,System.Func,System.Func);Argument[1];ReturnValue;value;hq-generated | -| System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,TAccumulate,System.Func,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,TAccumulate,System.Func,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,TAccumulate,System.Func,System.Func,System.Func);Argument[3].ReturnValue;ReturnValue;value;dfc-generated | -| System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,TAccumulate,System.Func,System.Func,System.Func);Argument[3].ReturnValue;ReturnValue;value;hq-generated | -| System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,TAccumulate,System.Func,System.Func,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,TAccumulate,System.Func,System.Func,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,TAccumulate,System.Func,System.Func,System.Func);Argument[4].ReturnValue;ReturnValue;value;dfc-generated | -| System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,TAccumulate,System.Func,System.Func,System.Func);Argument[4].ReturnValue;ReturnValue;value;hq-generated | -| System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,TAccumulate,System.Func,System.Func,System.Func);Argument[4];Argument[4].Parameter[delegate-self];value;dfc-generated | | System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,TAccumulate,System.Func,System.Func,System.Func);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,TAccumulate,System.Func,System.Func);Argument[0].Element;Argument[2].Parameter[1];value;manual | | System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,TAccumulate,System.Func,System.Func);Argument[1];Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,TAccumulate,System.Func,System.Func);Argument[2].ReturnValue;Argument[3].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,TAccumulate,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,TAccumulate,System.Func,System.Func);Argument[3].ReturnValue;ReturnValue;value;manual | -| System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,TAccumulate,System.Func,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,TAccumulate,System.Func);Argument[0].Element;Argument[2].Parameter[1];value;manual | | System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,TAccumulate,System.Func);Argument[1];Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,TAccumulate,System.Func);Argument[2].ReturnValue;ReturnValue;value;manual | -| System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,TAccumulate,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[1];value;manual | | System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,System.Func);Argument[1].ReturnValue;ReturnValue;value;manual | -| System.Linq;ParallelEnumerable;Aggregate;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;All;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;All;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Any;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Any;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;AsEnumerable;(System.Linq.ParallelQuery);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;AsOrdered;(System.Linq.ParallelQuery);Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;ParallelEnumerable;AsOrdered;(System.Linq.ParallelQuery);Argument[0].Element;ReturnValue;taint;df-generated | @@ -11376,32 +10033,21 @@ | System.Linq;ParallelEnumerable;AsSequential;(System.Linq.ParallelQuery);Argument[0];ReturnValue;value;dfc-generated | | System.Linq;ParallelEnumerable;AsUnordered;(System.Linq.ParallelQuery);Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;ParallelEnumerable;Average;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Average;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Average;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Average;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Average;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Average;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Average;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Average;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Average;(System.Linq.ParallelQuery,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Average;(System.Linq.ParallelQuery,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Average;(System.Linq.ParallelQuery,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Average;(System.Linq.ParallelQuery,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Average;(System.Linq.ParallelQuery,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Average;(System.Linq.ParallelQuery,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Average;(System.Linq.ParallelQuery,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Average;(System.Linq.ParallelQuery,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Average;(System.Linq.ParallelQuery,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Average;(System.Linq.ParallelQuery,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Average;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Average;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Cast;(System.Linq.ParallelQuery);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;Concat;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;Concat;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable);Argument[1].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;Concat;(System.Linq.ParallelQuery,System.Linq.ParallelQuery);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;Concat;(System.Linq.ParallelQuery,System.Linq.ParallelQuery);Argument[1].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;Count;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Count;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;DefaultIfEmpty;(System.Linq.ParallelQuery);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;DefaultIfEmpty;(System.Linq.ParallelQuery,TSource);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;DefaultIfEmpty;(System.Linq.ParallelQuery,TSource);Argument[1];ReturnValue.Element;value;manual | @@ -11416,85 +10062,55 @@ | System.Linq;ParallelEnumerable;First;(System.Linq.ParallelQuery);Argument[0].Element;ReturnValue;value;manual | | System.Linq;ParallelEnumerable;First;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;First;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;ReturnValue;value;manual | -| System.Linq;ParallelEnumerable;First;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;FirstOrDefault;(System.Linq.ParallelQuery);Argument[0].Element;ReturnValue;value;manual | | System.Linq;ParallelEnumerable;FirstOrDefault;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;FirstOrDefault;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;ReturnValue;value;manual | -| System.Linq;ParallelEnumerable;FirstOrDefault;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;ForAll;(System.Linq.ParallelQuery,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);Argument[2].ReturnValue;Argument[3].Parameter[1].Element;value;manual | -| System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);Argument[3].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[2].ReturnValue;Argument[3].Parameter[1].Element;value;manual | -| System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[3].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func);Argument[2].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | -| System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,TResult>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,TResult>);Argument[0];Argument[2].Parameter[1];value;manual | | System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,TResult>);Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,TResult>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,TResult>);Argument[2].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,TResult>);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | -| System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;GroupBy;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);Argument[1].Element;Argument[4].Parameter[1];value;manual | -| System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);Argument[2];Argument[2].Parameter[delegate-self];value;manual | -| System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);Argument[4].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>);Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[1].Element;Argument[4].Parameter[1];value;manual | -| System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;manual | -| System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);Argument[1].Element;Argument[4].Parameter[1];value;manual | -| System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);Argument[2];Argument[2].Parameter[delegate-self];value;manual | -| System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);Argument[4].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>);Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[1].Element;Argument[4].Parameter[1];value;manual | -| System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;manual | -| System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;GroupJoin;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,TResult>,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Intersect;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;Intersect;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable);Argument[1].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;Intersect;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);Argument[0].Element;ReturnValue.Element;value;manual | @@ -11507,217 +10123,136 @@ | System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[1].Element;Argument[4].Parameter[1];value;manual | -| System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;manual | -| System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[4].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func);Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].Element;Argument[4].Parameter[1];value;manual | -| System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;manual | -| System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func);Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func);Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func);Argument[1].Element;Argument[4].Parameter[1];value;manual | -| System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;manual | -| System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func);Argument[4].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func);Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1].Element;Argument[4].Parameter[1];value;manual | -| System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;manual | -| System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;Join;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Last;(System.Linq.ParallelQuery);Argument[0].Element;ReturnValue;value;manual | | System.Linq;ParallelEnumerable;Last;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;Last;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;ReturnValue;value;manual | -| System.Linq;ParallelEnumerable;Last;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;LastOrDefault;(System.Linq.ParallelQuery);Argument[0].Element;ReturnValue;value;manual | | System.Linq;ParallelEnumerable;LastOrDefault;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;LastOrDefault;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;ReturnValue;value;manual | -| System.Linq;ParallelEnumerable;LastOrDefault;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;LongCount;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;LongCount;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Max;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Max;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Max;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Max;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Max;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Max;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Max;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Max;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Max;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Max;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Max;(System.Linq.ParallelQuery,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Max;(System.Linq.ParallelQuery,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Max;(System.Linq.ParallelQuery,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Max;(System.Linq.ParallelQuery,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Max;(System.Linq.ParallelQuery,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Max;(System.Linq.ParallelQuery,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Max;(System.Linq.ParallelQuery,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Max;(System.Linq.ParallelQuery,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Max;(System.Linq.ParallelQuery,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Max;(System.Linq.ParallelQuery,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Max;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Max;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Min;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Min;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Min;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Min;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Min;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Min;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Min;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Min;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Min;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Min;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Min;(System.Linq.ParallelQuery,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Min;(System.Linq.ParallelQuery,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Min;(System.Linq.ParallelQuery,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Min;(System.Linq.ParallelQuery,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Min;(System.Linq.ParallelQuery,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Min;(System.Linq.ParallelQuery,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Min;(System.Linq.ParallelQuery,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Min;(System.Linq.ParallelQuery,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Min;(System.Linq.ParallelQuery,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Min;(System.Linq.ParallelQuery,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Min;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Min;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;OfType;(System.Linq.ParallelQuery);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;OrderBy;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;OrderBy;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;OrderBy;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;OrderBy;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;OrderBy;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;OrderBy;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;OrderByDescending;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;OrderByDescending;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;OrderByDescending;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;OrderByDescending;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;OrderByDescending;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;OrderByDescending;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Repeat;(TResult,System.Int32);Argument[0];ReturnValue;taint;df-generated | | System.Linq;ParallelEnumerable;Reverse;(System.Linq.ParallelQuery);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;Select;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;Select;(System.Linq.ParallelQuery,System.Func);Argument[1].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;Select;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Select;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;Select;(System.Linq.ParallelQuery,System.Func);Argument[1].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;Select;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;SelectMany;(System.Linq.ParallelQuery,System.Func>,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;SelectMany;(System.Linq.ParallelQuery,System.Func>,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;SelectMany;(System.Linq.ParallelQuery,System.Func>,System.Func);Argument[1].ReturnValue.Element;Argument[2].Parameter[1];value;manual | -| System.Linq;ParallelEnumerable;SelectMany;(System.Linq.ParallelQuery,System.Func>,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;SelectMany;(System.Linq.ParallelQuery,System.Func>,System.Func);Argument[2].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;SelectMany;(System.Linq.ParallelQuery,System.Func>,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;SelectMany;(System.Linq.ParallelQuery,System.Func>,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;SelectMany;(System.Linq.ParallelQuery,System.Func>,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;SelectMany;(System.Linq.ParallelQuery,System.Func>,System.Func);Argument[1].ReturnValue.Element;Argument[2].Parameter[1];value;manual | -| System.Linq;ParallelEnumerable;SelectMany;(System.Linq.ParallelQuery,System.Func>,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;SelectMany;(System.Linq.ParallelQuery,System.Func>,System.Func);Argument[2].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;SelectMany;(System.Linq.ParallelQuery,System.Func>,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;SelectMany;(System.Linq.ParallelQuery,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;SelectMany;(System.Linq.ParallelQuery,System.Func>);Argument[1].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;SelectMany;(System.Linq.ParallelQuery,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;SelectMany;(System.Linq.ParallelQuery,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;SelectMany;(System.Linq.ParallelQuery,System.Func>);Argument[1].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;SelectMany;(System.Linq.ParallelQuery,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;SequenceEqual;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2];taint;df-generated | | System.Linq;ParallelEnumerable;SequenceEqual;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Collections.Generic.IEqualityComparer);Argument[1].Element;Argument[2];taint;df-generated | | System.Linq;ParallelEnumerable;Single;(System.Linq.ParallelQuery);Argument[0].Element;ReturnValue;value;manual | | System.Linq;ParallelEnumerable;Single;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;Single;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;ReturnValue;value;manual | -| System.Linq;ParallelEnumerable;Single;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;SingleOrDefault;(System.Linq.ParallelQuery);Argument[0].Element;ReturnValue;value;manual | | System.Linq;ParallelEnumerable;SingleOrDefault;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;SingleOrDefault;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;ReturnValue;value;manual | -| System.Linq;ParallelEnumerable;SingleOrDefault;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Skip;(System.Linq.ParallelQuery,System.Int32);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;SkipWhile;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;SkipWhile;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;SkipWhile;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;SkipWhile;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;SkipWhile;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;SkipWhile;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Sum;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Sum;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Sum;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Sum;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Sum;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Sum;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Sum;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Sum;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Sum;(System.Linq.ParallelQuery,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Sum;(System.Linq.ParallelQuery,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Sum;(System.Linq.ParallelQuery,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Sum;(System.Linq.ParallelQuery,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Sum;(System.Linq.ParallelQuery,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Sum;(System.Linq.ParallelQuery,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Sum;(System.Linq.ParallelQuery,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Sum;(System.Linq.ParallelQuery,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Sum;(System.Linq.ParallelQuery,System.Func>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Sum;(System.Linq.ParallelQuery,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Sum;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;Sum;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Take;(System.Linq.ParallelQuery,System.Int32);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;TakeWhile;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;TakeWhile;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;TakeWhile;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;TakeWhile;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;TakeWhile;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;TakeWhile;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;ThenBy;(System.Linq.OrderedParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;ThenBy;(System.Linq.OrderedParallelQuery,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;ThenBy;(System.Linq.OrderedParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;ThenBy;(System.Linq.OrderedParallelQuery,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;ThenBy;(System.Linq.OrderedParallelQuery,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;ThenBy;(System.Linq.OrderedParallelQuery,System.Func,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;ThenByDescending;(System.Linq.OrderedParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;ThenByDescending;(System.Linq.OrderedParallelQuery,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;ThenByDescending;(System.Linq.OrderedParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;ThenByDescending;(System.Linq.OrderedParallelQuery,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;ThenByDescending;(System.Linq.OrderedParallelQuery,System.Func,System.Collections.Generic.IComparer);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;ThenByDescending;(System.Linq.OrderedParallelQuery,System.Func,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;ToArray;(System.Linq.ParallelQuery);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;ToDictionary;(System.Linq.ParallelQuery,System.Func,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;ToDictionary;(System.Linq.ParallelQuery,System.Func,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;ToDictionary;(System.Linq.ParallelQuery,System.Func,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;ToDictionary;(System.Linq.ParallelQuery,System.Func,System.Func);Argument[2].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;ToDictionary;(System.Linq.ParallelQuery,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;ToDictionary;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;ToDictionary;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;ToDictionary;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;ToDictionary;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;ToDictionary;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;ToDictionary;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;ToDictionary;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;ToDictionary;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;ToDictionary;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;ToDictionary;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;ToDictionary;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;ToList;(System.Linq.ParallelQuery);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;ToLookup;(System.Linq.ParallelQuery,System.Func,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;ToLookup;(System.Linq.ParallelQuery,System.Func,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;ToLookup;(System.Linq.ParallelQuery,System.Func,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;ToLookup;(System.Linq.ParallelQuery,System.Func,System.Func);Argument[2].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;ToLookup;(System.Linq.ParallelQuery,System.Func,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;ToLookup;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;ToLookup;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;manual | -| System.Linq;ParallelEnumerable;ToLookup;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;ToLookup;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;ToLookup;(System.Linq.ParallelQuery,System.Func,System.Func,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;ToLookup;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;ToLookup;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;ToLookup;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;ToLookup;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;ToLookup;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IEqualityComparer);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;ToLookup;(System.Linq.ParallelQuery,System.Func,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Union;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;Union;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable);Argument[1].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;Union;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);Argument[0].Element;ReturnValue.Element;value;manual | @@ -11728,10 +10263,8 @@ | System.Linq;ParallelEnumerable;Union;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Collections.Generic.IEqualityComparer);Argument[1].Element;ReturnValue.Element;value;manual | | System.Linq;ParallelEnumerable;Where;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;Where;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;Where;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Where;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;Where;(System.Linq.ParallelQuery,System.Func);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;Where;(System.Linq.ParallelQuery,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;WithCancellation;(System.Linq.ParallelQuery,System.Threading.CancellationToken);Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;ParallelEnumerable;WithDegreeOfParallelism;(System.Linq.ParallelQuery,System.Int32);Argument[0].Element;ReturnValue;taint;df-generated | | System.Linq;ParallelEnumerable;WithExecutionMode;(System.Linq.ParallelQuery,System.Linq.ParallelExecutionMode);Argument[0].Element;ReturnValue;taint;df-generated | @@ -11739,60 +10272,41 @@ | System.Linq;ParallelEnumerable;Zip;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;Zip;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func);Argument[1].Element;Argument[2].Parameter[1];value;manual | | System.Linq;ParallelEnumerable;Zip;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func);Argument[2].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;Zip;(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;ParallelEnumerable;Zip;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;ParallelEnumerable;Zip;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func);Argument[1].Element;Argument[2].Parameter[1];value;manual | | System.Linq;ParallelEnumerable;Zip;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func);Argument[2].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;ParallelEnumerable;Zip;(System.Linq.ParallelQuery,System.Linq.ParallelQuery,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Aggregate;(System.Linq.IQueryable,TAccumulate,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[2].Parameter[1];value;manual | | System.Linq;Queryable;Aggregate;(System.Linq.IQueryable,TAccumulate,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);Argument[1];Argument[2].Parameter[0];value;manual | | System.Linq;Queryable;Aggregate;(System.Linq.IQueryable,TAccumulate,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);Argument[2].ReturnValue;Argument[3].Parameter[0];value;manual | -| System.Linq;Queryable;Aggregate;(System.Linq.IQueryable,TAccumulate,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Aggregate;(System.Linq.IQueryable,TAccumulate,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);Argument[3].ReturnValue;ReturnValue;value;manual | -| System.Linq;Queryable;Aggregate;(System.Linq.IQueryable,TAccumulate,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Aggregate;(System.Linq.IQueryable,TAccumulate,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[2].Parameter[1];value;manual | | System.Linq;Queryable;Aggregate;(System.Linq.IQueryable,TAccumulate,System.Linq.Expressions.Expression>);Argument[1];Argument[2].Parameter[0];value;manual | | System.Linq;Queryable;Aggregate;(System.Linq.IQueryable,TAccumulate,System.Linq.Expressions.Expression>);Argument[2].ReturnValue;ReturnValue;value;manual | -| System.Linq;Queryable;Aggregate;(System.Linq.IQueryable,TAccumulate,System.Linq.Expressions.Expression>);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Aggregate;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[1];value;manual | | System.Linq;Queryable;Aggregate;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1].ReturnValue;ReturnValue;value;manual | -| System.Linq;Queryable;Aggregate;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;AggregateBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;AggregateBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;AggregateBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;AggregateBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,TAccumulate,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;AggregateBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,TAccumulate,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;All;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;All;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Any;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;Any;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;AsQueryable;(System.Collections.IEnumerable);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;AsQueryable;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;Average;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;Average;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Average;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;Average;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Average;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;Average;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Average;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;Average;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Average;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;Average;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Average;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;Average;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Average;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;Average;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Average;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;Average;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Average;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;Average;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Average;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;Average;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Cast;(System.Linq.IQueryable);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;Concat;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;Concat;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable);Argument[1].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;Count;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;Count;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;CountBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;DefaultIfEmpty;(System.Linq.IQueryable);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;DefaultIfEmpty;(System.Linq.IQueryable,TSource);Argument[0].Element;ReturnValue.Element;value;manual | @@ -11810,66 +10324,42 @@ | System.Linq;Queryable;First;(System.Linq.IQueryable);Argument[0].Element;ReturnValue;value;manual | | System.Linq;Queryable;First;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;First;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;ReturnValue;value;manual | -| System.Linq;Queryable;First;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;FirstOrDefault;(System.Linq.IQueryable);Argument[0].Element;ReturnValue;value;manual | | System.Linq;Queryable;FirstOrDefault;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;FirstOrDefault;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;ReturnValue;value;manual | -| System.Linq;Queryable;FirstOrDefault;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;FirstOrDefault;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,TSource);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | -| System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);Argument[2].ReturnValue;Argument[3].Parameter[1].Element;value;manual | -| System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);Argument[3].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | -| System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);Argument[2].ReturnValue;Argument[3].Parameter[1].Element;value;manual | -| System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);Argument[3].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);Argument[2].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | -| System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | -| System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);Argument[2].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);Argument[1].ReturnValue;Argument[2].Parameter[0];value;manual | -| System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | -| System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;GroupBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;GroupJoin;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Queryable;GroupJoin;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;Queryable;GroupJoin;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;Queryable;GroupJoin;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);Argument[1].Element;Argument[4].Parameter[1];value;manual | -| System.Linq;Queryable;GroupJoin;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);Argument[2];Argument[2].Parameter[delegate-self];value;manual | -| System.Linq;Queryable;GroupJoin;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Queryable;GroupJoin;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);Argument[4].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Queryable;GroupJoin;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>);Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;Queryable;GroupJoin;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Queryable;GroupJoin;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;Queryable;GroupJoin;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;Queryable;GroupJoin;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);Argument[1].Element;Argument[4].Parameter[1];value;manual | -| System.Linq;Queryable;GroupJoin;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;manual | -| System.Linq;Queryable;GroupJoin;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Queryable;GroupJoin;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Queryable;GroupJoin;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression,TResult>>,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Intersect;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;Intersect;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable);Argument[1].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;Intersect;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);Argument[0].Element;ReturnValue.Element;value;manual | @@ -11880,26 +10370,18 @@ | System.Linq;Queryable;Join;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;Queryable;Join;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;Queryable;Join;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);Argument[1].Element;Argument[4].Parameter[1];value;manual | -| System.Linq;Queryable;Join;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);Argument[2];Argument[2].Parameter[delegate-self];value;manual | -| System.Linq;Queryable;Join;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Join;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);Argument[4].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Queryable;Join;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Join;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Queryable;Join;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);Argument[0].Element;Argument[4].Parameter[0];value;manual | | System.Linq;Queryable;Join;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);Argument[1].Element;Argument[3].Parameter[0];value;manual | | System.Linq;Queryable;Join;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);Argument[1].Element;Argument[4].Parameter[1];value;manual | -| System.Linq;Queryable;Join;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;manual | -| System.Linq;Queryable;Join;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Join;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);Argument[4].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Queryable;Join;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Last;(System.Linq.IQueryable);Argument[0].Element;ReturnValue;value;manual | | System.Linq;Queryable;Last;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;Last;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;ReturnValue;value;manual | -| System.Linq;Queryable;Last;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;LastOrDefault;(System.Linq.IQueryable);Argument[0].Element;ReturnValue;value;manual | | System.Linq;Queryable;LastOrDefault;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;LastOrDefault;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;ReturnValue;value;manual | -| System.Linq;Queryable;LastOrDefault;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;LastOrDefault;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,TSource);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;LeftJoin;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;LeftJoin;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | @@ -11908,30 +10390,23 @@ | System.Linq;Queryable;LeftJoin;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;LeftJoin;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;LongCount;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;LongCount;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Max;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;Max;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;MaxBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;MaxBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;MaxBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;Min;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;Min;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;MinBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;MinBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;MinBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;OfType;(System.Linq.IQueryable);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;OrderBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;OrderBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Queryable;OrderBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;OrderBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;OrderBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Queryable;OrderBy;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;OrderByDescending;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;OrderByDescending;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Queryable;OrderByDescending;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;OrderByDescending;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;OrderByDescending;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Queryable;OrderByDescending;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Reverse;(System.Linq.IQueryable);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;RightJoin;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;RightJoin;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | @@ -11941,83 +10416,55 @@ | System.Linq;Queryable;RightJoin;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;Select;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;Select;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Queryable;Select;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Select;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;Select;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Queryable;Select;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;SelectMany;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;SelectMany;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Queryable;SelectMany;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>,System.Linq.Expressions.Expression>);Argument[1].ReturnValue.Element;Argument[2].Parameter[1];value;manual | -| System.Linq;Queryable;SelectMany;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;SelectMany;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>,System.Linq.Expressions.Expression>);Argument[2].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Queryable;SelectMany;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>,System.Linq.Expressions.Expression>);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Queryable;SelectMany;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;SelectMany;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Queryable;SelectMany;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>,System.Linq.Expressions.Expression>);Argument[1].ReturnValue.Element;Argument[2].Parameter[1];value;manual | -| System.Linq;Queryable;SelectMany;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;SelectMany;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>,System.Linq.Expressions.Expression>);Argument[2].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Queryable;SelectMany;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>,System.Linq.Expressions.Expression>);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Linq;Queryable;SelectMany;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;SelectMany;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);Argument[1].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Queryable;SelectMany;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;SelectMany;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;SelectMany;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);Argument[1].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Queryable;SelectMany;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Single;(System.Linq.IQueryable);Argument[0].Element;ReturnValue;value;manual | | System.Linq;Queryable;Single;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;Single;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;ReturnValue;value;manual | -| System.Linq;Queryable;Single;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;SingleOrDefault;(System.Linq.IQueryable);Argument[0].Element;ReturnValue;value;manual | | System.Linq;Queryable;SingleOrDefault;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;SingleOrDefault;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;ReturnValue;value;manual | -| System.Linq;Queryable;SingleOrDefault;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;SingleOrDefault;(System.Linq.IQueryable,System.Linq.Expressions.Expression>,TSource);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;Skip;(System.Linq.IQueryable,System.Int32);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;SkipWhile;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;SkipWhile;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Queryable;SkipWhile;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;SkipWhile;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;SkipWhile;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Queryable;SkipWhile;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Sum;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;Sum;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Sum;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;Sum;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Sum;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;Sum;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Sum;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;Sum;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Sum;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;Sum;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Sum;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;Sum;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Sum;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;Sum;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Sum;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;Sum;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Sum;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;Sum;(System.Linq.IQueryable,System.Linq.Expressions.Expression>>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Sum;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | -| System.Linq;Queryable;Sum;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Take;(System.Linq.IQueryable,System.Int32);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;TakeWhile;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;TakeWhile;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Queryable;TakeWhile;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;TakeWhile;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;TakeWhile;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Queryable;TakeWhile;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;ThenBy;(System.Linq.IOrderedQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;ThenBy;(System.Linq.IOrderedQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Queryable;ThenBy;(System.Linq.IOrderedQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;ThenBy;(System.Linq.IOrderedQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;ThenBy;(System.Linq.IOrderedQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Queryable;ThenBy;(System.Linq.IOrderedQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;ThenByDescending;(System.Linq.IOrderedQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;ThenByDescending;(System.Linq.IOrderedQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Queryable;ThenByDescending;(System.Linq.IOrderedQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;ThenByDescending;(System.Linq.IOrderedQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;ThenByDescending;(System.Linq.IOrderedQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Queryable;ThenByDescending;(System.Linq.IOrderedQueryable,System.Linq.Expressions.Expression>,System.Collections.Generic.IComparer);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Union;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;Union;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable);Argument[1].Element;ReturnValue.Element;value;manual | | System.Linq;Queryable;Union;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Collections.Generic.IEqualityComparer);Argument[0].Element;ReturnValue.Element;value;manual | @@ -12026,14 +10473,11 @@ | System.Linq;Queryable;UnionBy;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>,System.Collections.Generic.IEqualityComparer);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Linq;Queryable;Where;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;Where;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Queryable;Where;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Where;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System.Linq;Queryable;Where;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[0].Element;ReturnValue.Element;value;manual | -| System.Linq;Queryable;Where;(System.Linq.IQueryable,System.Linq.Expressions.Expression>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Linq;Queryable;Zip;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>);Argument[0].Element;Argument[2].Parameter[0];value;manual | | System.Linq;Queryable;Zip;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>);Argument[1].Element;Argument[2].Parameter[1];value;manual | | System.Linq;Queryable;Zip;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>);Argument[2].ReturnValue;ReturnValue.Element;value;manual | -| System.Linq;Queryable;Zip;(System.Linq.IQueryable,System.Collections.Generic.IEnumerable,System.Linq.Expressions.Expression>);Argument[2];Argument[2].Parameter[delegate-self];value;manual | | System.Media;SoundPlayer;add_LoadCompleted;(System.ComponentModel.AsyncCompletedEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Media;SoundPlayer;add_SoundLocationChanged;(System.EventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Media;SoundPlayer;add_StreamChanged;(System.EventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | @@ -12058,10 +10502,8 @@ | System.Net.Http.Headers;EntityTagHeaderValue;Clone;();Argument[this].Property[System.Net.Http.Headers.EntityTagHeaderValue.Tag];ReturnValue.Property[System.Net.Http.Headers.EntityTagHeaderValue.Tag];value;dfc-generated | | System.Net.Http.Headers;EntityTagHeaderValue;EntityTagHeaderValue;(System.String,System.Boolean);Argument[0];Argument[this].Property[System.Net.Http.Headers.EntityTagHeaderValue.Tag];value;dfc-generated | | System.Net.Http.Headers;EntityTagHeaderValue;ToString;();Argument[this].Property[System.Net.Http.Headers.EntityTagHeaderValue.Tag];ReturnValue;value;dfc-generated | -| System.Net.Http.Headers;HeaderStringValues+Enumerator;get_Current;();Argument[this].Property[System.Net.Http.Headers.HeaderStringValues+Enumerator.Current];ReturnValue;value;df-generated | | System.Net.Http.Headers;HeaderStringValues+Enumerator;get_Current;();Argument[this].Property[System.Net.Http.Headers.HeaderStringValues+Enumerator.Current];ReturnValue;value;dfc-generated | | System.Net.Http.Headers;HeaderStringValues+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Net.Http.Headers;HeaderStringValues+Enumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Net.Http.Headers;HeaderStringValues;GetEnumerator;();Argument[this];ReturnValue;taint;df-generated | | System.Net.Http.Headers;HeaderStringValues;ToString;();Argument[this];ReturnValue;taint;df-generated | | System.Net.Http.Headers;HttpHeaderValueCollection;ToString;();Argument[this];ReturnValue;taint;df-generated | @@ -12168,9 +10610,7 @@ | System.Net.Http.Metrics;HttpMetricsEnrichmentContext;get_Response;();Argument[this];ReturnValue;taint;df-generated | | System.Net.Http;ByteArrayContent;ByteArrayContent;(System.Byte[]);Argument[0];Argument[this].SyntheticField[System.Net.Http.ByteArrayContent._content];value;dfc-generated | | System.Net.Http;ByteArrayContent;ByteArrayContent;(System.Byte[],System.Int32,System.Int32);Argument[0];Argument[this].SyntheticField[System.Net.Http.ByteArrayContent._content];value;dfc-generated | -| System.Net.Http;ByteArrayContent;CreateContentReadStream;(System.Threading.CancellationToken);Argument[this].SyntheticField[System.Net.Http.ByteArrayContent._content].Element;ReturnValue;taint;df-generated | | System.Net.Http;ByteArrayContent;CreateContentReadStream;(System.Threading.CancellationToken);Argument[this].SyntheticField[System.Net.Http.ByteArrayContent._content].Element;ReturnValue;taint;dfc-generated | -| System.Net.Http;ByteArrayContent;CreateContentReadStreamAsync;();Argument[this].SyntheticField[System.Net.Http.ByteArrayContent._content].Element;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];taint;df-generated | | System.Net.Http;ByteArrayContent;CreateContentReadStreamAsync;();Argument[this].SyntheticField[System.Net.Http.ByteArrayContent._content].Element;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];taint;dfc-generated | | System.Net.Http;DelegatingHandler;DelegatingHandler;(System.Net.Http.HttpMessageHandler);Argument[0];Argument[this];taint;df-generated | | System.Net.Http;HeaderEncodingSelector;BeginInvoke;(System.String,TContext,System.AsyncCallback,System.Object);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | @@ -12205,7 +10645,6 @@ | System.Net.Http;HttpContent;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);Argument[this];Argument[0];taint;df-generated | | System.Net.Http;HttpContent;SerializeToStreamAsync;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);Argument[this];ReturnValue;taint;df-generated | | System.Net.Http;HttpIOException;get_Message;();Argument[this].Property[System.Exception.Message];ReturnValue;taint;dfc-generated | -| System.Net.Http;HttpIOException;get_Message;();Argument[this].SyntheticField[System.Exception._message];ReturnValue;value;dfc-generated | | System.Net.Http;HttpMessageInvoker;HttpMessageInvoker;(System.Net.Http.HttpMessageHandler,System.Boolean);Argument[0];Argument[this];taint;df-generated | | System.Net.Http;HttpMessageInvoker;Send;(System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken);Argument[this];Argument[0];taint;df-generated | | System.Net.Http;HttpMessageInvoker;SendAsync;(System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken);Argument[this];Argument[0];taint;df-generated | @@ -12241,7 +10680,6 @@ | System.Net.Http;SocketsHttpPlaintextStreamFilterContext;get_InitialRequestMessage;();Argument[this];ReturnValue;taint;df-generated | | System.Net.Http;SocketsHttpPlaintextStreamFilterContext;get_NegotiatedHttpVersion;();Argument[this];ReturnValue;taint;df-generated | | System.Net.Http;SocketsHttpPlaintextStreamFilterContext;get_PlaintextStream;();Argument[this];ReturnValue;taint;df-generated | -| System.Net.Http;StreamContent;SerializeToStream;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);Argument[this].SyntheticField[System.Net.Http.StreamContent._content];Argument[0];taint;df-generated | | System.Net.Http;StreamContent;SerializeToStream;(System.IO.Stream,System.Net.TransportContext,System.Threading.CancellationToken);Argument[this].SyntheticField[System.Net.Http.StreamContent._content];Argument[0];taint;dfc-generated | | System.Net.Http;StreamContent;StreamContent;(System.IO.Stream);Argument[0];Argument[this].SyntheticField[System.Net.Http.StreamContent._content];value;dfc-generated | | System.Net.Http;StreamContent;StreamContent;(System.IO.Stream,System.Int32);Argument[0];Argument[this].SyntheticField[System.Net.Http.StreamContent._content];value;dfc-generated | @@ -12249,8 +10687,6 @@ | System.Net.Mail;AlternateView;CreateAlternateViewFromString;(System.String,System.Net.Mime.ContentType);Argument[0];ReturnValue;taint;df-generated | | System.Net.Mail;AlternateView;CreateAlternateViewFromString;(System.String,System.Net.Mime.ContentType);Argument[1];ReturnValue;taint;df-generated | | System.Net.Mail;AlternateView;CreateAlternateViewFromString;(System.String,System.Text.Encoding,System.String);Argument[0];ReturnValue;taint;df-generated | -| System.Net.Mail;AlternateViewCollection;InsertItem;(System.Int32,System.Net.Mail.AlternateView);Argument[1];Argument[this].SyntheticField[System.Collections.ObjectModel.Collection`1.items].Element;value;dfc-generated | -| System.Net.Mail;AlternateViewCollection;SetItem;(System.Int32,System.Net.Mail.AlternateView);Argument[1];Argument[this];taint;df-generated | | System.Net.Mail;Attachment;Attachment;(System.IO.Stream,System.Net.Mime.ContentType);Argument[1];Argument[this];taint;df-generated | | System.Net.Mail;Attachment;Attachment;(System.IO.Stream,System.String);Argument[1];Argument[this];taint;df-generated | | System.Net.Mail;Attachment;Attachment;(System.IO.Stream,System.String,System.String);Argument[1];Argument[this];taint;df-generated | @@ -12272,14 +10708,10 @@ | System.Net.Mail;AttachmentBase;AttachmentBase;(System.String,System.Net.Mime.ContentType);Argument[0];Argument[this].SyntheticField[System.Net.Mail.AttachmentBase._part].SyntheticField[System.Net.Mime.MimePart._stream];taint;dfc-generated | | System.Net.Mail;AttachmentBase;AttachmentBase;(System.String,System.String);Argument[0];Argument[this].SyntheticField[System.Net.Mail.AttachmentBase._part].SyntheticField[System.Net.Mime.MimePart._stream];taint;dfc-generated | | System.Net.Mail;AttachmentBase;get_ContentStream;();Argument[this].SyntheticField[System.Net.Mail.AttachmentBase._part].SyntheticField[System.Net.Mime.MimePart._stream];ReturnValue;value;dfc-generated | -| System.Net.Mail;AttachmentCollection;InsertItem;(System.Int32,System.Net.Mail.Attachment);Argument[1];Argument[this].SyntheticField[System.Collections.ObjectModel.Collection`1.items].Element;value;dfc-generated | -| System.Net.Mail;AttachmentCollection;SetItem;(System.Int32,System.Net.Mail.Attachment);Argument[1];Argument[this];taint;df-generated | | System.Net.Mail;LinkedResource;CreateLinkedResourceFromString;(System.String);Argument[0];ReturnValue;taint;df-generated | | System.Net.Mail;LinkedResource;CreateLinkedResourceFromString;(System.String,System.Net.Mime.ContentType);Argument[0];ReturnValue;taint;df-generated | | System.Net.Mail;LinkedResource;CreateLinkedResourceFromString;(System.String,System.Net.Mime.ContentType);Argument[1];ReturnValue;taint;df-generated | | System.Net.Mail;LinkedResource;CreateLinkedResourceFromString;(System.String,System.Text.Encoding,System.String);Argument[0];ReturnValue;taint;df-generated | -| System.Net.Mail;LinkedResourceCollection;InsertItem;(System.Int32,System.Net.Mail.LinkedResource);Argument[1];Argument[this].SyntheticField[System.Collections.ObjectModel.Collection`1.items].Element;value;dfc-generated | -| System.Net.Mail;LinkedResourceCollection;SetItem;(System.Int32,System.Net.Mail.LinkedResource);Argument[1];Argument[this];taint;df-generated | | System.Net.Mail;MailAddress;MailAddress;(System.String,System.String,System.Text.Encoding);Argument[0];Argument[this].SyntheticField[System.Net.Mail.MailAddress._displayName];taint;dfc-generated | | System.Net.Mail;MailAddress;MailAddress;(System.String,System.String,System.Text.Encoding);Argument[0];Argument[this].SyntheticField[System.Net.Mail.MailAddress._host];taint;dfc-generated | | System.Net.Mail;MailAddress;MailAddress;(System.String,System.String,System.Text.Encoding);Argument[0];Argument[this].SyntheticField[System.Net.Mail.MailAddress._userName];taint;dfc-generated | @@ -12302,8 +10734,6 @@ | System.Net.Mail;MailAddress;get_Host;();Argument[this].SyntheticField[System.Net.Mail.MailAddress._host];ReturnValue;value;dfc-generated | | System.Net.Mail;MailAddress;get_User;();Argument[this].SyntheticField[System.Net.Mail.MailAddress._userName];ReturnValue;value;dfc-generated | | System.Net.Mail;MailAddressCollection;Add;(System.String);Argument[0];Argument[this].Element;value;manual | -| System.Net.Mail;MailAddressCollection;InsertItem;(System.Int32,System.Net.Mail.MailAddress);Argument[1];Argument[this].SyntheticField[System.Collections.ObjectModel.Collection`1.items].Element;value;dfc-generated | -| System.Net.Mail;MailAddressCollection;SetItem;(System.Int32,System.Net.Mail.MailAddress);Argument[1];Argument[this];taint;df-generated | | System.Net.Mail;MailAddressCollection;ToString;();Argument[this].Element;ReturnValue;taint;dfc-generated | | System.Net.Mail;MailMessage;MailMessage;(System.Net.Mail.MailAddress,System.Net.Mail.MailAddress);Argument[0];Argument[this];taint;df-generated | | System.Net.Mail;MailMessage;MailMessage;(System.Net.Mail.MailAddress,System.Net.Mail.MailAddress);Argument[1];Argument[this];taint;df-generated | @@ -12325,7 +10755,6 @@ | System.Net.Mail;SmtpFailedRecipientException;SmtpFailedRecipientException;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[0];Argument[this].SyntheticField[System.Net.Mail.SmtpFailedRecipientException._failedRecipient];taint;dfc-generated | | System.Net.Mail;SmtpFailedRecipientException;SmtpFailedRecipientException;(System.String,System.String,System.Exception);Argument[1];Argument[this].SyntheticField[System.Net.Mail.SmtpFailedRecipientException._failedRecipient];value;dfc-generated | | System.Net.Mail;SmtpFailedRecipientException;get_FailedRecipient;();Argument[this].SyntheticField[System.Net.Mail.SmtpFailedRecipientException._failedRecipient];ReturnValue;value;dfc-generated | -| System.Net.Mail;SmtpFailedRecipientsException;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this].SyntheticField[System.Net.Mail.SmtpFailedRecipientException._failedRecipient];Argument[0];taint;dfc-generated | | System.Net.Mail;SmtpFailedRecipientsException;GetObjectData;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this].SyntheticField[System.Net.Mail.SmtpFailedRecipientsException._innerExceptions];Argument[0];taint;dfc-generated | | System.Net.Mail;SmtpFailedRecipientsException;SmtpFailedRecipientsException;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[0];Argument[this].SyntheticField[System.Net.Mail.SmtpFailedRecipientsException._innerExceptions];taint;dfc-generated | | System.Net.Mail;SmtpFailedRecipientsException;SmtpFailedRecipientsException;(System.String,System.Exception);Argument[1];Argument[this].SyntheticField[System.Net.Mail.SmtpFailedRecipientsException._innerExceptions].Element;value;dfc-generated | @@ -12427,16 +10856,10 @@ | System.Net.Security;SslStream;AuthenticateAsServerAsync;(System.Net.Security.ServerOptionsSelectionCallback,System.Object,System.Threading.CancellationToken);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net.Security;SslStream;AuthenticateAsServerAsync;(System.Net.Security.SslServerAuthenticationOptions,System.Threading.CancellationToken);Argument[0];Argument[this];taint;df-generated | | System.Net.Security;SslStream;BeginAuthenticateAsClient;(System.String,System.AsyncCallback,System.Object);Argument[0];Argument[this].SyntheticField[System.Net.Security.SslStream._sslAuthenticationOptions].SyntheticField[System.Net.Security.SslAuthenticationOptions.TargetHost];value;dfc-generated | -| System.Net.Security;SslStream;BeginAuthenticateAsClient;(System.String,System.AsyncCallback,System.Object);Argument[0];Argument[this].SyntheticField[System.Net.Security.SslStream._sslAuthenticationOptions].SyntheticField[System.Net.Security.SslAuthenticationOptions.TargetHost];value;hq-generated | -| System.Net.Security;SslStream;BeginAuthenticateAsClient;(System.String,System.AsyncCallback,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Net.Security;SslStream;BeginAuthenticateAsClient;(System.String,System.AsyncCallback,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Net.Security;SslStream;BeginAuthenticateAsClient;(System.String,System.Security.Cryptography.X509Certificates.X509CertificateCollection,System.Boolean,System.AsyncCallback,System.Object);Argument[0];Argument[this].SyntheticField[System.Net.Security.SslStream._sslAuthenticationOptions].SyntheticField[System.Net.Security.SslAuthenticationOptions.TargetHost];value;dfc-generated | -| System.Net.Security;SslStream;BeginAuthenticateAsClient;(System.String,System.Security.Cryptography.X509Certificates.X509CertificateCollection,System.Boolean,System.AsyncCallback,System.Object);Argument[0];Argument[this].SyntheticField[System.Net.Security.SslStream._sslAuthenticationOptions].SyntheticField[System.Net.Security.SslAuthenticationOptions.TargetHost];value;hq-generated | -| System.Net.Security;SslStream;BeginAuthenticateAsClient;(System.String,System.Security.Cryptography.X509Certificates.X509CertificateCollection,System.Boolean,System.AsyncCallback,System.Object);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Net.Security;SslStream;BeginAuthenticateAsClient;(System.String,System.Security.Cryptography.X509Certificates.X509CertificateCollection,System.Boolean,System.AsyncCallback,System.Object);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Net.Security;SslStream;BeginAuthenticateAsClient;(System.String,System.Security.Cryptography.X509Certificates.X509CertificateCollection,System.Security.Authentication.SslProtocols,System.Boolean,System.AsyncCallback,System.Object);Argument[0];Argument[this].SyntheticField[System.Net.Security.SslStream._sslAuthenticationOptions].SyntheticField[System.Net.Security.SslAuthenticationOptions.TargetHost];value;dfc-generated | -| System.Net.Security;SslStream;BeginAuthenticateAsClient;(System.String,System.Security.Cryptography.X509Certificates.X509CertificateCollection,System.Security.Authentication.SslProtocols,System.Boolean,System.AsyncCallback,System.Object);Argument[0];Argument[this].SyntheticField[System.Net.Security.SslStream._sslAuthenticationOptions].SyntheticField[System.Net.Security.SslAuthenticationOptions.TargetHost];value;hq-generated | -| System.Net.Security;SslStream;BeginAuthenticateAsClient;(System.String,System.Security.Cryptography.X509Certificates.X509CertificateCollection,System.Security.Authentication.SslProtocols,System.Boolean,System.AsyncCallback,System.Object);Argument[4];Argument[4].Parameter[delegate-self];value;dfc-generated | | System.Net.Security;SslStream;BeginAuthenticateAsClient;(System.String,System.Security.Cryptography.X509Certificates.X509CertificateCollection,System.Security.Authentication.SslProtocols,System.Boolean,System.AsyncCallback,System.Object);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | System.Net.Security;SslStream;BeginAuthenticateAsServer;(System.Security.Cryptography.X509Certificates.X509Certificate,System.AsyncCallback,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Net.Security;SslStream;BeginAuthenticateAsServer;(System.Security.Cryptography.X509Certificates.X509Certificate,System.Boolean,System.Boolean,System.AsyncCallback,System.Object);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | @@ -12542,7 +10965,6 @@ | System.Net.Sockets;SocketAsyncEventArgs;get_ReceiveMessageFromPacketInfo;();Argument[this];ReturnValue;taint;df-generated | | System.Net.Sockets;SocketAsyncEventArgs;remove_Completed;(System.EventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net.Sockets;SocketException;get_Message;();Argument[this].Property[System.Exception.Message];ReturnValue;value;dfc-generated | -| System.Net.Sockets;SocketException;get_Message;();Argument[this].SyntheticField[System.Exception._message];ReturnValue;value;dfc-generated | | System.Net.Sockets;SocketTaskExtensions;ConnectAsync;(System.Net.Sockets.Socket,System.Net.EndPoint);Argument[1];Argument[0];taint;df-generated | | System.Net.Sockets;SocketTaskExtensions;ConnectAsync;(System.Net.Sockets.Socket,System.Net.EndPoint,System.Threading.CancellationToken);Argument[1];Argument[0];taint;df-generated | | System.Net.Sockets;SocketTaskExtensions;SendToAsync;(System.Net.Sockets.Socket,System.ArraySegment,System.Net.Sockets.SocketFlags,System.Net.EndPoint);Argument[3];Argument[0];taint;df-generated | @@ -12633,10 +11055,8 @@ | System.Net;FtpWebResponse;get_WelcomeMessage;();Argument[this];ReturnValue;taint;df-generated | | System.Net;HttpContinueDelegate;BeginInvoke;(System.Int32,System.Net.WebHeaderCollection,System.AsyncCallback,System.Object);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Net;HttpListener+ExtendedProtectionSelector;BeginInvoke;(System.Net.HttpListenerRequest,System.AsyncCallback,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | -| System.Net;HttpListener;BeginGetContext;(System.AsyncCallback,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Net;HttpListener;BeginGetContext;(System.AsyncCallback,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Net;HttpListener;BeginGetContext;(System.AsyncCallback,System.Object);Argument[1];ReturnValue.SyntheticField[System.Net.ListenerAsyncResult._state];value;dfc-generated | -| System.Net;HttpListener;BeginGetContext;(System.AsyncCallback,System.Object);Argument[1];ReturnValue.SyntheticField[System.Net.ListenerAsyncResult._state];value;hq-generated | | System.Net;HttpListener;EndGetContext;(System.IAsyncResult);Argument[0];ReturnValue;taint;df-generated | | System.Net;HttpListener;GetContext;();Argument[this];ReturnValue;taint;df-generated | | System.Net;HttpListener;get_DefaultServiceNames;();Argument[this];ReturnValue;taint;df-generated | @@ -12672,10 +11092,8 @@ | System.Net;HttpListenerResponse;Close;(System.Byte[],System.Boolean);Argument[0].Element;Argument[this];taint;df-generated | | System.Net;HttpListenerResponse;CopyFrom;(System.Net.HttpListenerResponse);Argument[0];Argument[this];taint;df-generated | | System.Net;HttpListenerResponse;get_OutputStream;();Argument[this];ReturnValue;taint;df-generated | -| System.Net;HttpWebRequest;EndGetRequestStream;(System.IAsyncResult);Argument[0].Property[System.Threading.Tasks.Task`1.Result];ReturnValue;value;df-generated | | System.Net;HttpWebRequest;EndGetRequestStream;(System.IAsyncResult);Argument[0].Property[System.Threading.Tasks.Task`1.Result];ReturnValue;value;dfc-generated | | System.Net;HttpWebRequest;EndGetRequestStream;(System.IAsyncResult,System.Net.TransportContext);Argument[0].Property[System.Threading.Tasks.Task`1.Result];ReturnValue;value;dfc-generated | -| System.Net;HttpWebRequest;EndGetResponse;(System.IAsyncResult);Argument[0].Property[System.Threading.Tasks.Task`1.Result];ReturnValue;value;df-generated | | System.Net;HttpWebRequest;EndGetResponse;(System.IAsyncResult);Argument[0].Property[System.Threading.Tasks.Task`1.Result];ReturnValue;value;dfc-generated | | System.Net;HttpWebRequest;GetRequestStream;(System.Net.TransportContext);Argument[this];ReturnValue;taint;df-generated | | System.Net;HttpWebRequest;get_Address;();Argument[this].SyntheticField[System.Net.HttpWebRequest._requestUri];ReturnValue;value;dfc-generated | @@ -12925,11 +11343,8 @@ | System.Reflection.Emit;DynamicMethod;DynamicMethod;(System.String,System.Type,System.Type[],System.Reflection.Module,System.Boolean);Argument[3];Argument[this].SyntheticField[System.Reflection.Emit.DynamicMethod._module];value;dfc-generated | | System.Reflection.Emit;DynamicMethod;DynamicMethod;(System.String,System.Type,System.Type[],System.Type);Argument[0];Argument[this].SyntheticField[System.Reflection.Emit.DynamicMethod._name];value;dfc-generated | | System.Reflection.Emit;DynamicMethod;DynamicMethod;(System.String,System.Type,System.Type[],System.Type,System.Boolean);Argument[0];Argument[this].SyntheticField[System.Reflection.Emit.DynamicMethod._name];value;dfc-generated | -| System.Reflection.Emit;DynamicMethod;get_Module;();Argument[this].SyntheticField[System.Reflection.Emit.DynamicMethod._module];ReturnValue;value;df-generated | | System.Reflection.Emit;DynamicMethod;get_Module;();Argument[this].SyntheticField[System.Reflection.Emit.DynamicMethod._module];ReturnValue;value;dfc-generated | -| System.Reflection.Emit;DynamicMethod;get_Name;();Argument[this].SyntheticField[System.Reflection.Emit.DynamicMethod._name];ReturnValue;value;df-generated | | System.Reflection.Emit;DynamicMethod;get_Name;();Argument[this].SyntheticField[System.Reflection.Emit.DynamicMethod._name];ReturnValue;value;dfc-generated | -| System.Reflection.Emit;DynamicMethod;get_ReturnParameter;();Argument[this];ReturnValue.Field[System.Reflection.ParameterInfo.MemberImpl];value;df-generated | | System.Reflection.Emit;DynamicMethod;get_ReturnParameter;();Argument[this];ReturnValue.Field[System.Reflection.ParameterInfo.MemberImpl];value;dfc-generated | | System.Reflection.Emit;EnumBuilder;get_UnderlyingField;();Argument[this].Property[System.Reflection.Emit.EnumBuilder.UnderlyingFieldCore];ReturnValue;value;dfc-generated | | System.Reflection.Emit;EnumBuilder;get_UnderlyingFieldCore;();Argument[this];ReturnValue;taint;df-generated | @@ -13237,10 +11652,8 @@ | System.Reflection.Metadata.Ecma335;PermissionSetEncoder;AddPermission;(System.String,System.Collections.Immutable.ImmutableArray);Argument[this];ReturnValue;value;dfc-generated | | System.Reflection.Metadata.Ecma335;PermissionSetEncoder;AddPermission;(System.String,System.Reflection.Metadata.BlobBuilder);Argument[this];ReturnValue;value;dfc-generated | | System.Reflection.Metadata.Ecma335;PermissionSetEncoder;PermissionSetEncoder;(System.Reflection.Metadata.BlobBuilder);Argument[0];Argument[this].Property[System.Reflection.Metadata.Ecma335.PermissionSetEncoder.Builder];value;dfc-generated | -| System.Reflection.Metadata.Ecma335;PortablePdbBuilder;PortablePdbBuilder;(System.Reflection.Metadata.Ecma335.MetadataBuilder,System.Collections.Immutable.ImmutableArray,System.Reflection.Metadata.MethodDefinitionHandle,System.Func,System.Reflection.Metadata.BlobContentId>);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Reflection.Metadata.Ecma335;PortablePdbBuilder;PortablePdbBuilder;(System.Reflection.Metadata.Ecma335.MetadataBuilder,System.Collections.Immutable.ImmutableArray,System.Reflection.Metadata.MethodDefinitionHandle,System.Func,System.Reflection.Metadata.BlobContentId>);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Reflection.Metadata.Ecma335;PortablePdbBuilder;PortablePdbBuilder;(System.Reflection.Metadata.Ecma335.MetadataBuilder,System.Collections.Immutable.ImmutableArray,System.Reflection.Metadata.MethodDefinitionHandle,System.Func,System.Reflection.Metadata.BlobContentId>);Argument[3];Argument[this].Property[System.Reflection.Metadata.Ecma335.PortablePdbBuilder.IdProvider];value;dfc-generated | -| System.Reflection.Metadata.Ecma335;PortablePdbBuilder;PortablePdbBuilder;(System.Reflection.Metadata.Ecma335.MetadataBuilder,System.Collections.Immutable.ImmutableArray,System.Reflection.Metadata.MethodDefinitionHandle,System.Func,System.Reflection.Metadata.BlobContentId>);Argument[3];Argument[this].Property[System.Reflection.Metadata.Ecma335.PortablePdbBuilder.IdProvider];value;hq-generated | | System.Reflection.Metadata.Ecma335;PortablePdbBuilder;Serialize;(System.Reflection.Metadata.BlobBuilder);Argument[0];Argument[this];taint;df-generated | | System.Reflection.Metadata.Ecma335;PortablePdbBuilder;Serialize;(System.Reflection.Metadata.BlobBuilder);Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata.Ecma335;ReturnTypeEncoder;ReturnTypeEncoder;(System.Reflection.Metadata.BlobBuilder);Argument[0];Argument[this].Property[System.Reflection.Metadata.Ecma335.ReturnTypeEncoder.Builder];value;dfc-generated | @@ -13250,12 +11663,9 @@ | System.Reflection.Metadata.Ecma335;SignatureDecoder;SignatureDecoder;(System.Reflection.Metadata.ISignatureTypeProvider,System.Reflection.Metadata.MetadataReader,TGenericContext);Argument[0];Argument[this];taint;df-generated | | System.Reflection.Metadata.Ecma335;SignatureDecoder;SignatureDecoder;(System.Reflection.Metadata.ISignatureTypeProvider,System.Reflection.Metadata.MetadataReader,TGenericContext);Argument[1];Argument[this];taint;df-generated | | System.Reflection.Metadata.Ecma335;SignatureDecoder;SignatureDecoder;(System.Reflection.Metadata.ISignatureTypeProvider,System.Reflection.Metadata.MetadataReader,TGenericContext);Argument[2];Argument[this];taint;df-generated | -| System.Reflection.Metadata.Ecma335;SignatureTypeEncoder;Array;(System.Action,System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Reflection.Metadata.Ecma335;SignatureTypeEncoder;Array;(System.Action,System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Reflection.Metadata.Ecma335;SignatureTypeEncoder;Array;(System.Action,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Reflection.Metadata.Ecma335;SignatureTypeEncoder;Array;(System.Action,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Reflection.Metadata.Ecma335;SignatureTypeEncoder;Array;(System.Action,System.Action);Argument[this];Argument[0].Parameter[0];value;dfc-generated | -| System.Reflection.Metadata.Ecma335;SignatureTypeEncoder;Array;(System.Action,System.Action);Argument[this];Argument[0].Parameter[0];value;hq-generated | | System.Reflection.Metadata.Ecma335;SignatureTypeEncoder;Array;(System.Reflection.Metadata.Ecma335.SignatureTypeEncoder,System.Reflection.Metadata.Ecma335.ArrayShapeEncoder);Argument[this];Argument[0];value;dfc-generated | | System.Reflection.Metadata.Ecma335;SignatureTypeEncoder;Pointer;();Argument[this];ReturnValue;value;dfc-generated | | System.Reflection.Metadata.Ecma335;SignatureTypeEncoder;SZArray;();Argument[this];ReturnValue;value;dfc-generated | @@ -13264,7 +11674,6 @@ | System.Reflection.Metadata;AssemblyDefinition;GetCustomAttributes;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;AssemblyDefinition;GetDeclarativeSecurityAttributes;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;AssemblyFile;GetCustomAttributes;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;AssemblyFileHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.AssemblyFileHandleCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Reflection.Metadata;AssemblyFileHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.AssemblyFileHandleCollection+Enumerator.Current];ReturnValue;value;dfc-generated | | System.Reflection.Metadata;AssemblyNameInfo;AssemblyNameInfo;(System.String,System.Version,System.String,System.Reflection.AssemblyNameFlags,System.Collections.Immutable.ImmutableArray);Argument[0];Argument[this].Property[System.Reflection.Metadata.AssemblyNameInfo.Name];value;dfc-generated | | System.Reflection.Metadata;AssemblyNameInfo;AssemblyNameInfo;(System.String,System.Version,System.String,System.Reflection.AssemblyNameFlags,System.Collections.Immutable.ImmutableArray);Argument[1];Argument[this].Property[System.Reflection.Metadata.AssemblyNameInfo.Version];value;dfc-generated | @@ -13272,11 +11681,9 @@ | System.Reflection.Metadata;AssemblyNameInfo;AssemblyNameInfo;(System.String,System.Version,System.String,System.Reflection.AssemblyNameFlags,System.Collections.Immutable.ImmutableArray);Argument[4];Argument[this].Property[System.Reflection.Metadata.AssemblyNameInfo.PublicKeyOrToken];value;dfc-generated | | System.Reflection.Metadata;AssemblyNameInfo;get_FullName;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;AssemblyReference;GetCustomAttributes;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;AssemblyReferenceHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.AssemblyReferenceHandleCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Reflection.Metadata;AssemblyReferenceHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.AssemblyReferenceHandleCollection+Enumerator.Current];ReturnValue;value;dfc-generated | | System.Reflection.Metadata;AssemblyReferenceHandleCollection;GetEnumerator;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;BlobBuilder+Blobs;GetEnumerator;();Argument[this];ReturnValue;value;dfc-generated | -| System.Reflection.Metadata;BlobBuilder+Blobs;get_Current;();Argument[this].Property[System.Reflection.Metadata.BlobBuilder+Blobs.Current];ReturnValue;value;df-generated | | System.Reflection.Metadata;BlobBuilder+Blobs;get_Current;();Argument[this].Property[System.Reflection.Metadata.BlobBuilder+Blobs.Current];ReturnValue;value;dfc-generated | | System.Reflection.Metadata;BlobBuilder;GetBlobs;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;BlobBuilder;LinkPrefix;(System.Reflection.Metadata.BlobBuilder);Argument[0];Argument[this];taint;df-generated | @@ -13296,7 +11703,6 @@ | System.Reflection.Metadata;BlobWriter;BlobWriter;(System.Byte[],System.Int32,System.Int32);Argument[0].Element;Argument[this];taint;df-generated | | System.Reflection.Metadata;BlobWriter;WriteBytes;(System.IO.Stream,System.Int32);Argument[0];Argument[this];taint;df-generated | | System.Reflection.Metadata;BlobWriter;get_Blob;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;CustomAttributeHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.CustomAttributeHandleCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Reflection.Metadata;CustomAttributeHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.CustomAttributeHandleCollection+Enumerator.Current];ReturnValue;value;dfc-generated | | System.Reflection.Metadata;CustomAttributeHandleCollection;GetEnumerator;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;CustomAttributeNamedArgument;CustomAttributeNamedArgument;(System.String,System.Reflection.Metadata.CustomAttributeNamedArgumentKind,TType,System.Object);Argument[0];Argument[this].Property[System.Reflection.Metadata.CustomAttributeNamedArgument`1.Name];value;dfc-generated | @@ -13306,61 +11712,45 @@ | System.Reflection.Metadata;CustomAttributeTypedArgument;CustomAttributeTypedArgument;(TType,System.Object);Argument[1];Argument[this].Property[System.Reflection.Metadata.CustomAttributeTypedArgument`1.Value];value;dfc-generated | | System.Reflection.Metadata;CustomAttributeValue;CustomAttributeValue;(System.Collections.Immutable.ImmutableArray>,System.Collections.Immutable.ImmutableArray>);Argument[0];Argument[this].Property[System.Reflection.Metadata.CustomAttributeValue`1.FixedArguments];value;dfc-generated | | System.Reflection.Metadata;CustomAttributeValue;CustomAttributeValue;(System.Collections.Immutable.ImmutableArray>,System.Collections.Immutable.ImmutableArray>);Argument[1];Argument[this].Property[System.Reflection.Metadata.CustomAttributeValue`1.NamedArguments];value;dfc-generated | -| System.Reflection.Metadata;CustomDebugInformationHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.CustomDebugInformationHandleCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Reflection.Metadata;CustomDebugInformationHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.CustomDebugInformationHandleCollection+Enumerator.Current];ReturnValue;value;dfc-generated | | System.Reflection.Metadata;CustomDebugInformationHandleCollection;GetEnumerator;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;DeclarativeSecurityAttributeHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.DeclarativeSecurityAttributeHandleCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Reflection.Metadata;DeclarativeSecurityAttributeHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.DeclarativeSecurityAttributeHandleCollection+Enumerator.Current];ReturnValue;value;dfc-generated | | System.Reflection.Metadata;DeclarativeSecurityAttributeHandleCollection;GetEnumerator;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;DocumentHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.DocumentHandleCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Reflection.Metadata;DocumentHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.DocumentHandleCollection+Enumerator.Current];ReturnValue;value;dfc-generated | | System.Reflection.Metadata;DocumentHandleCollection;GetEnumerator;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;EventAccessors;get_Others;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;EventDefinition;GetCustomAttributes;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;EventDefinitionHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.EventDefinitionHandleCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Reflection.Metadata;EventDefinitionHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.EventDefinitionHandleCollection+Enumerator.Current];ReturnValue;value;dfc-generated | | System.Reflection.Metadata;EventDefinitionHandleCollection;GetEnumerator;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;ExportedType;GetCustomAttributes;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;ExportedTypeHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.ExportedTypeHandleCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Reflection.Metadata;ExportedTypeHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.ExportedTypeHandleCollection+Enumerator.Current];ReturnValue;value;dfc-generated | | System.Reflection.Metadata;FieldDefinition;GetCustomAttributes;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;FieldDefinitionHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.FieldDefinitionHandleCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Reflection.Metadata;FieldDefinitionHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.FieldDefinitionHandleCollection+Enumerator.Current];ReturnValue;value;dfc-generated | | System.Reflection.Metadata;FieldDefinitionHandleCollection;GetEnumerator;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;GenericParameter;GetCustomAttributes;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;GenericParameterConstraint;GetCustomAttributes;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;GenericParameterConstraintHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.GenericParameterConstraintHandleCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Reflection.Metadata;GenericParameterConstraintHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.GenericParameterConstraintHandleCollection+Enumerator.Current];ReturnValue;value;dfc-generated | -| System.Reflection.Metadata;GenericParameterHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.GenericParameterHandleCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Reflection.Metadata;GenericParameterHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.GenericParameterHandleCollection+Enumerator.Current];ReturnValue;value;dfc-generated | | System.Reflection.Metadata;ImportDefinitionCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;ImportDefinitionCollection;GetEnumerator;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;ImportScopeCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.ImportScopeCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Reflection.Metadata;ImportScopeCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.ImportScopeCollection+Enumerator.Current];ReturnValue;value;dfc-generated | | System.Reflection.Metadata;ImportScopeCollection;GetEnumerator;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;InterfaceImplementation;GetCustomAttributes;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;InterfaceImplementationHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.InterfaceImplementationHandleCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Reflection.Metadata;InterfaceImplementationHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.InterfaceImplementationHandleCollection+Enumerator.Current];ReturnValue;value;dfc-generated | | System.Reflection.Metadata;InterfaceImplementationHandleCollection;GetEnumerator;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;LocalConstantHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.LocalConstantHandleCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Reflection.Metadata;LocalConstantHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.LocalConstantHandleCollection+Enumerator.Current];ReturnValue;value;dfc-generated | | System.Reflection.Metadata;LocalConstantHandleCollection;GetEnumerator;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;LocalScope;GetChildren;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;LocalScope;GetLocalConstants;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;LocalScope;GetLocalVariables;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;LocalScopeHandleCollection+ChildrenEnumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.LocalScopeHandleCollection+ChildrenEnumerator.Current];ReturnValue;value;df-generated | | System.Reflection.Metadata;LocalScopeHandleCollection+ChildrenEnumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.LocalScopeHandleCollection+ChildrenEnumerator.Current];ReturnValue;value;dfc-generated | -| System.Reflection.Metadata;LocalScopeHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.LocalScopeHandleCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Reflection.Metadata;LocalScopeHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.LocalScopeHandleCollection+Enumerator.Current];ReturnValue;value;dfc-generated | | System.Reflection.Metadata;LocalScopeHandleCollection;GetEnumerator;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;LocalVariableHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.LocalVariableHandleCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Reflection.Metadata;LocalVariableHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.LocalVariableHandleCollection+Enumerator.Current];ReturnValue;value;dfc-generated | | System.Reflection.Metadata;LocalVariableHandleCollection;GetEnumerator;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;ManifestResource;GetCustomAttributes;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;ManifestResourceHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.ManifestResourceHandleCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Reflection.Metadata;ManifestResourceHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.ManifestResourceHandleCollection+Enumerator.Current];ReturnValue;value;dfc-generated | | System.Reflection.Metadata;MemberReference;GetCustomAttributes;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;MemberReferenceHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.MemberReferenceHandleCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Reflection.Metadata;MemberReferenceHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.MemberReferenceHandleCollection+Enumerator.Current];ReturnValue;value;dfc-generated | | System.Reflection.Metadata;MetadataReader;GetAssemblyDefinition;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;MetadataReader;GetAssemblyFile;(System.Reflection.Metadata.AssemblyFileHandle);Argument[this];ReturnValue;taint;df-generated | @@ -13432,17 +11822,14 @@ | System.Reflection.Metadata;MethodBodyBlock;get_ExceptionRegions;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;MethodBodyBlock;get_LocalSignature;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;MethodDebugInformation;GetSequencePoints;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;MethodDebugInformationHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.MethodDebugInformationHandleCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Reflection.Metadata;MethodDebugInformationHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.MethodDebugInformationHandleCollection+Enumerator.Current];ReturnValue;value;dfc-generated | | System.Reflection.Metadata;MethodDebugInformationHandleCollection;GetEnumerator;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;MethodDefinition;GetCustomAttributes;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;MethodDefinition;GetDeclarativeSecurityAttributes;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;MethodDefinition;GetParameters;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;MethodDefinitionHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.MethodDefinitionHandleCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Reflection.Metadata;MethodDefinitionHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.MethodDefinitionHandleCollection+Enumerator.Current];ReturnValue;value;dfc-generated | | System.Reflection.Metadata;MethodDefinitionHandleCollection;GetEnumerator;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;MethodImplementation;GetCustomAttributes;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;MethodImplementationHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.MethodImplementationHandleCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Reflection.Metadata;MethodImplementationHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.MethodImplementationHandleCollection+Enumerator.Current];ReturnValue;value;dfc-generated | | System.Reflection.Metadata;MethodImport;get_Module;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;MethodImport;get_Name;();Argument[this];ReturnValue;taint;df-generated | @@ -13461,12 +11848,10 @@ | System.Reflection.Metadata;PEReaderExtensions;GetMetadataReader;(System.Reflection.PortableExecutable.PEReader,System.Reflection.Metadata.MetadataReaderOptions);Argument[0];ReturnValue;taint;df-generated | | System.Reflection.Metadata;PEReaderExtensions;GetMetadataReader;(System.Reflection.PortableExecutable.PEReader,System.Reflection.Metadata.MetadataReaderOptions,System.Reflection.Metadata.MetadataStringDecoder);Argument[2];ReturnValue.Property[System.Reflection.Metadata.MetadataReader.UTF8Decoder];value;dfc-generated | | System.Reflection.Metadata;Parameter;GetCustomAttributes;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;ParameterHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.ParameterHandleCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Reflection.Metadata;ParameterHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.ParameterHandleCollection+Enumerator.Current];ReturnValue;value;dfc-generated | | System.Reflection.Metadata;ParameterHandleCollection;GetEnumerator;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;PropertyAccessors;get_Others;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;PropertyDefinition;GetCustomAttributes;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;PropertyDefinitionHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.PropertyDefinitionHandleCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Reflection.Metadata;PropertyDefinitionHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.PropertyDefinitionHandleCollection+Enumerator.Current];ReturnValue;value;dfc-generated | | System.Reflection.Metadata;PropertyDefinitionHandleCollection;GetEnumerator;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;SequencePointCollection+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | @@ -13479,7 +11864,6 @@ | System.Reflection.Metadata;TypeDefinition;GetInterfaceImplementations;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;TypeDefinition;GetMethods;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;TypeDefinition;GetProperties;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;TypeDefinitionHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.TypeDefinitionHandleCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Reflection.Metadata;TypeDefinitionHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.TypeDefinitionHandleCollection+Enumerator.Current];ReturnValue;value;dfc-generated | | System.Reflection.Metadata;TypeName;GetElementType;();Argument[this].SyntheticField[System.Reflection.Metadata.TypeName._elementOrGenericType];ReturnValue;value;dfc-generated | | System.Reflection.Metadata;TypeName;GetGenericArguments;();Argument[this].SyntheticField[System.Reflection.Metadata.TypeName._genericArguments];ReturnValue;value;dfc-generated | @@ -13504,12 +11888,9 @@ | System.Reflection.Metadata;TypeName;get_FullName;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;TypeName;get_Name;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.Metadata;TypeName;get_Namespace;();Argument[this];ReturnValue;taint;df-generated | -| System.Reflection.Metadata;TypeReferenceHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.TypeReferenceHandleCollection+Enumerator.Current];ReturnValue;value;df-generated | | System.Reflection.Metadata;TypeReferenceHandleCollection+Enumerator;get_Current;();Argument[this].Property[System.Reflection.Metadata.TypeReferenceHandleCollection+Enumerator.Current];ReturnValue;value;dfc-generated | | System.Reflection.Metadata;TypeSpecification;GetCustomAttributes;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.PortableExecutable;DebugDirectoryBuilder;AddEntry;(System.Reflection.PortableExecutable.DebugDirectoryEntryType,System.UInt32,System.UInt32,TData,System.Action);Argument[3];Argument[4].Parameter[1];value;dfc-generated | -| System.Reflection.PortableExecutable;DebugDirectoryBuilder;AddEntry;(System.Reflection.PortableExecutable.DebugDirectoryEntryType,System.UInt32,System.UInt32,TData,System.Action);Argument[3];Argument[4].Parameter[1];value;hq-generated | -| System.Reflection.PortableExecutable;DebugDirectoryBuilder;AddEntry;(System.Reflection.PortableExecutable.DebugDirectoryEntryType,System.UInt32,System.UInt32,TData,System.Action);Argument[4];Argument[4].Parameter[delegate-self];value;dfc-generated | | System.Reflection.PortableExecutable;DebugDirectoryBuilder;AddEntry;(System.Reflection.PortableExecutable.DebugDirectoryEntryType,System.UInt32,System.UInt32,TData,System.Action);Argument[4];Argument[4].Parameter[delegate-self];value;hq-generated | | System.Reflection.PortableExecutable;ManagedPEBuilder;ManagedPEBuilder;(System.Reflection.PortableExecutable.PEHeaderBuilder,System.Reflection.Metadata.Ecma335.MetadataRootBuilder,System.Reflection.Metadata.BlobBuilder,System.Reflection.Metadata.BlobBuilder,System.Reflection.Metadata.BlobBuilder,System.Reflection.PortableExecutable.ResourceSectionBuilder,System.Reflection.PortableExecutable.DebugDirectoryBuilder,System.Int32,System.Reflection.Metadata.MethodDefinitionHandle,System.Reflection.PortableExecutable.CorFlags,System.Func,System.Reflection.Metadata.BlobContentId>);Argument[10];Argument[10].Parameter[delegate-self];value;hq-generated | | System.Reflection.PortableExecutable;ManagedPEBuilder;Sign;(System.Reflection.Metadata.BlobBuilder,System.Func,System.Byte[]>);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | @@ -13517,11 +11898,8 @@ | System.Reflection.PortableExecutable;PEBuilder;GetDirectories;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.PortableExecutable;PEBuilder;GetSections;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection.PortableExecutable;PEBuilder;PEBuilder;(System.Reflection.PortableExecutable.PEHeaderBuilder,System.Func,System.Reflection.Metadata.BlobContentId>);Argument[0];Argument[this].Property[System.Reflection.PortableExecutable.PEBuilder.Header];value;dfc-generated | -| System.Reflection.PortableExecutable;PEBuilder;PEBuilder;(System.Reflection.PortableExecutable.PEHeaderBuilder,System.Func,System.Reflection.Metadata.BlobContentId>);Argument[0];Argument[this].Property[System.Reflection.PortableExecutable.PEBuilder.Header];value;hq-generated | -| System.Reflection.PortableExecutable;PEBuilder;PEBuilder;(System.Reflection.PortableExecutable.PEHeaderBuilder,System.Func,System.Reflection.Metadata.BlobContentId>);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Reflection.PortableExecutable;PEBuilder;PEBuilder;(System.Reflection.PortableExecutable.PEHeaderBuilder,System.Func,System.Reflection.Metadata.BlobContentId>);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Reflection.PortableExecutable;PEBuilder;PEBuilder;(System.Reflection.PortableExecutable.PEHeaderBuilder,System.Func,System.Reflection.Metadata.BlobContentId>);Argument[1];Argument[this].Property[System.Reflection.PortableExecutable.PEBuilder.IdProvider];value;dfc-generated | -| System.Reflection.PortableExecutable;PEBuilder;PEBuilder;(System.Reflection.PortableExecutable.PEHeaderBuilder,System.Func,System.Reflection.Metadata.BlobContentId>);Argument[1];Argument[this].Property[System.Reflection.PortableExecutable.PEBuilder.IdProvider];value;hq-generated | | System.Reflection.PortableExecutable;PEBuilder;Serialize;(System.Reflection.Metadata.BlobBuilder);Argument[0];Argument[this];taint;df-generated | | System.Reflection.PortableExecutable;PEBuilder;Serialize;(System.Reflection.Metadata.BlobBuilder);Argument[this];ReturnValue;taint;df-generated | | System.Reflection.PortableExecutable;PEBuilder;SerializeSection;(System.String,System.Reflection.PortableExecutable.SectionLocation);Argument[this];ReturnValue;taint;df-generated | @@ -13538,10 +11916,7 @@ | System.Reflection.PortableExecutable;PEReader;PEReader;(System.Collections.Immutable.ImmutableArray);Argument[0].Element;Argument[this];taint;df-generated | | System.Reflection.PortableExecutable;PEReader;PEReader;(System.IO.Stream,System.Reflection.PortableExecutable.PEStreamOptions,System.Int32);Argument[0];Argument[this];taint;df-generated | | System.Reflection.PortableExecutable;PEReader;TryOpenAssociatedPortablePdb;(System.String,System.Func,System.Reflection.Metadata.MetadataReaderProvider,System.String);Argument[0];Argument[1].Parameter[0];taint;dfc-generated | -| System.Reflection.PortableExecutable;PEReader;TryOpenAssociatedPortablePdb;(System.String,System.Func,System.Reflection.Metadata.MetadataReaderProvider,System.String);Argument[0];Argument[1].Parameter[0];taint;hq-generated | | System.Reflection.PortableExecutable;PEReader;TryOpenAssociatedPortablePdb;(System.String,System.Func,System.Reflection.Metadata.MetadataReaderProvider,System.String);Argument[0];Argument[3];taint;dfc-generated | -| System.Reflection.PortableExecutable;PEReader;TryOpenAssociatedPortablePdb;(System.String,System.Func,System.Reflection.Metadata.MetadataReaderProvider,System.String);Argument[0];Argument[3];taint;hq-generated | -| System.Reflection.PortableExecutable;PEReader;TryOpenAssociatedPortablePdb;(System.String,System.Func,System.Reflection.Metadata.MetadataReaderProvider,System.String);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Reflection.PortableExecutable;PEReader;TryOpenAssociatedPortablePdb;(System.String,System.Func,System.Reflection.Metadata.MetadataReaderProvider,System.String);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Reflection.PortableExecutable;PEReader;get_PEHeaders;();Argument[this];ReturnValue;taint;df-generated | | System.Reflection;Assembly;CreateQualifiedName;(System.String,System.String);Argument[0];ReturnValue;taint;dfc-generated | @@ -13692,10 +12067,8 @@ | System.Reflection;MethodInvoker;Invoke;(System.Object,System.Span);Argument[0];Argument[this];taint;df-generated | | System.Reflection;MethodInvoker;Invoke;(System.Object,System.Span);Argument[1];Argument[this];taint;df-generated | | System.Reflection;MethodInvoker;Invoke;(System.Object,System.Span);Argument[this];ReturnValue;taint;df-generated | -| System.Reflection;Module;FindTypes;(System.Reflection.TypeFilter,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Reflection;Module;FindTypes;(System.Reflection.TypeFilter,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Reflection;Module;FindTypes;(System.Reflection.TypeFilter,System.Object);Argument[1];Argument[0].Parameter[1];value;dfc-generated | -| System.Reflection;Module;FindTypes;(System.Reflection.TypeFilter,System.Object);Argument[1];Argument[0].Parameter[1];value;hq-generated | | System.Reflection;Module;GetField;(System.String);Argument[this];ReturnValue;taint;df-generated | | System.Reflection;Module;GetField;(System.String,System.Reflection.BindingFlags);Argument[this];ReturnValue;taint;df-generated | | System.Reflection;Module;GetMethod;(System.String);Argument[this];ReturnValue;taint;df-generated | @@ -13756,7 +12129,6 @@ | System.Reflection;ReflectionContext;MapAssembly;(System.Reflection.Assembly);Argument[0];ReturnValue;value;dfc-generated | | System.Reflection;ReflectionContext;MapType;(System.Reflection.TypeInfo);Argument[0];ReturnValue;value;dfc-generated | | System.Reflection;ReflectionTypeLoadException;get_Message;();Argument[this].Property[System.Exception.Message];ReturnValue;value;dfc-generated | -| System.Reflection;ReflectionTypeLoadException;get_Message;();Argument[this].SyntheticField[System.Exception._message];ReturnValue;value;dfc-generated | | System.Reflection;RuntimeReflectionExtensions;GetMethodInfo;(System.Delegate);Argument[0].Property[System.Delegate.Method];ReturnValue;value;dfc-generated | | System.Reflection;RuntimeReflectionExtensions;GetRuntimeBaseDefinition;(System.Reflection.MethodInfo);Argument[0];ReturnValue;value;df-generated | | System.Reflection;RuntimeReflectionExtensions;GetRuntimeInterfaceMap;(System.Reflection.TypeInfo,System.Type);Argument[0];ReturnValue;taint;df-generated | @@ -13814,25 +12186,15 @@ | System.Runtime.CompilerServices;ConditionalWeakTable+CreateValueCallback;BeginInvoke;(TKey,System.AsyncCallback,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Runtime.CompilerServices;ConditionalWeakTable;Clear;();Argument[this].WithoutElement;Argument[this];value;manual | | System.Runtime.CompilerServices;ConditionalWeakTable;GetOrAdd;(TKey,System.Func);Argument[0];Argument[1].Parameter[0];value;dfc-generated | -| System.Runtime.CompilerServices;ConditionalWeakTable;GetOrAdd;(TKey,System.Func);Argument[0];Argument[1].Parameter[0];value;hq-generated | | System.Runtime.CompilerServices;ConditionalWeakTable;GetOrAdd;(TKey,System.Func);Argument[1].ReturnValue;ReturnValue;value;dfc-generated | -| System.Runtime.CompilerServices;ConditionalWeakTable;GetOrAdd;(TKey,System.Func);Argument[1].ReturnValue;ReturnValue;value;hq-generated | -| System.Runtime.CompilerServices;ConditionalWeakTable;GetOrAdd;(TKey,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Runtime.CompilerServices;ConditionalWeakTable;GetOrAdd;(TKey,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Runtime.CompilerServices;ConditionalWeakTable;GetOrAdd;(TKey,TValue);Argument[1];ReturnValue;value;dfc-generated | | System.Runtime.CompilerServices;ConditionalWeakTable;GetOrAdd;(TKey,System.Func,TArg);Argument[0];Argument[1].Parameter[0];value;dfc-generated | -| System.Runtime.CompilerServices;ConditionalWeakTable;GetOrAdd;(TKey,System.Func,TArg);Argument[0];Argument[1].Parameter[0];value;hq-generated | | System.Runtime.CompilerServices;ConditionalWeakTable;GetOrAdd;(TKey,System.Func,TArg);Argument[1].ReturnValue;ReturnValue;value;dfc-generated | -| System.Runtime.CompilerServices;ConditionalWeakTable;GetOrAdd;(TKey,System.Func,TArg);Argument[1].ReturnValue;ReturnValue;value;hq-generated | -| System.Runtime.CompilerServices;ConditionalWeakTable;GetOrAdd;(TKey,System.Func,TArg);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Runtime.CompilerServices;ConditionalWeakTable;GetOrAdd;(TKey,System.Func,TArg);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Runtime.CompilerServices;ConditionalWeakTable;GetOrAdd;(TKey,System.Func,TArg);Argument[2];Argument[1].Parameter[1];value;dfc-generated | -| System.Runtime.CompilerServices;ConditionalWeakTable;GetOrAdd;(TKey,System.Func,TArg);Argument[2];Argument[1].Parameter[1];value;hq-generated | | System.Runtime.CompilerServices;ConditionalWeakTable;GetValue;(TKey,System.Runtime.CompilerServices.ConditionalWeakTable+CreateValueCallback);Argument[0];Argument[1].Parameter[0];value;dfc-generated | -| System.Runtime.CompilerServices;ConditionalWeakTable;GetValue;(TKey,System.Runtime.CompilerServices.ConditionalWeakTable+CreateValueCallback);Argument[0];Argument[1].Parameter[0];value;hq-generated | | System.Runtime.CompilerServices;ConditionalWeakTable;GetValue;(TKey,System.Runtime.CompilerServices.ConditionalWeakTable+CreateValueCallback);Argument[1].ReturnValue;ReturnValue;value;dfc-generated | -| System.Runtime.CompilerServices;ConditionalWeakTable;GetValue;(TKey,System.Runtime.CompilerServices.ConditionalWeakTable+CreateValueCallback);Argument[1].ReturnValue;ReturnValue;value;hq-generated | -| System.Runtime.CompilerServices;ConditionalWeakTable;GetValue;(TKey,System.Runtime.CompilerServices.ConditionalWeakTable+CreateValueCallback);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Runtime.CompilerServices;ConditionalWeakTable;GetValue;(TKey,System.Runtime.CompilerServices.ConditionalWeakTable+CreateValueCallback);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Runtime.CompilerServices;ConfiguredCancelableAsyncEnumerable+Enumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | | System.Runtime.CompilerServices;ConfiguredCancelableAsyncEnumerable;ConfigureAwait;(System.Boolean);Argument[this];ReturnValue;taint;df-generated | @@ -13866,20 +12228,15 @@ | System.Runtime.CompilerServices;ReadOnlyCollectionBuilder;ReadOnlyCollectionBuilder;(System.Collections.Generic.IEnumerable);Argument[0].Element;Argument[this];taint;df-generated | | System.Runtime.CompilerServices;RuntimeHelpers+CleanupCode;BeginInvoke;(System.Object,System.Boolean,System.AsyncCallback,System.Object);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Runtime.CompilerServices;RuntimeHelpers+TryCode;BeginInvoke;(System.Object,System.AsyncCallback,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | -| System.Runtime.CompilerServices;RuntimeHelpers;ExecuteCodeWithGuaranteedCleanup;(System.Runtime.CompilerServices.RuntimeHelpers+TryCode,System.Runtime.CompilerServices.RuntimeHelpers+CleanupCode,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Runtime.CompilerServices;RuntimeHelpers;ExecuteCodeWithGuaranteedCleanup;(System.Runtime.CompilerServices.RuntimeHelpers+TryCode,System.Runtime.CompilerServices.RuntimeHelpers+CleanupCode,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Runtime.CompilerServices;RuntimeHelpers;ExecuteCodeWithGuaranteedCleanup;(System.Runtime.CompilerServices.RuntimeHelpers+TryCode,System.Runtime.CompilerServices.RuntimeHelpers+CleanupCode,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Runtime.CompilerServices;RuntimeHelpers;ExecuteCodeWithGuaranteedCleanup;(System.Runtime.CompilerServices.RuntimeHelpers+TryCode,System.Runtime.CompilerServices.RuntimeHelpers+CleanupCode,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Runtime.CompilerServices;RuntimeHelpers;ExecuteCodeWithGuaranteedCleanup;(System.Runtime.CompilerServices.RuntimeHelpers+TryCode,System.Runtime.CompilerServices.RuntimeHelpers+CleanupCode,System.Object);Argument[2];Argument[0].Parameter[0];value;dfc-generated | -| System.Runtime.CompilerServices;RuntimeHelpers;ExecuteCodeWithGuaranteedCleanup;(System.Runtime.CompilerServices.RuntimeHelpers+TryCode,System.Runtime.CompilerServices.RuntimeHelpers+CleanupCode,System.Object);Argument[2];Argument[0].Parameter[0];value;hq-generated | | System.Runtime.CompilerServices;RuntimeHelpers;ExecuteCodeWithGuaranteedCleanup;(System.Runtime.CompilerServices.RuntimeHelpers+TryCode,System.Runtime.CompilerServices.RuntimeHelpers+CleanupCode,System.Object);Argument[2];Argument[1].Parameter[0];value;dfc-generated | -| System.Runtime.CompilerServices;RuntimeHelpers;ExecuteCodeWithGuaranteedCleanup;(System.Runtime.CompilerServices.RuntimeHelpers+TryCode,System.Runtime.CompilerServices.RuntimeHelpers+CleanupCode,System.Object);Argument[2];Argument[1].Parameter[0];value;hq-generated | | System.Runtime.CompilerServices;RuntimeWrappedException;RuntimeWrappedException;(System.Object);Argument[0];Argument[this].SyntheticField[System.Runtime.CompilerServices.RuntimeWrappedException._wrappedException];value;dfc-generated | | System.Runtime.CompilerServices;RuntimeWrappedException;get_WrappedException;();Argument[this].SyntheticField[System.Runtime.CompilerServices.RuntimeWrappedException._wrappedException];ReturnValue;value;dfc-generated | | System.Runtime.CompilerServices;StrongBox;StrongBox;(T);Argument[0];Argument[this].Field[System.Runtime.CompilerServices.StrongBox`1.Value];value;dfc-generated | | System.Runtime.CompilerServices;SwitchExpressionException;get_Message;();Argument[this].Property[System.Exception.Message];ReturnValue;value;dfc-generated | | System.Runtime.CompilerServices;SwitchExpressionException;get_Message;();Argument[this].Property[System.Runtime.CompilerServices.SwitchExpressionException.UnmatchedValue];ReturnValue;taint;dfc-generated | -| System.Runtime.CompilerServices;SwitchExpressionException;get_Message;();Argument[this].SyntheticField[System.Exception._message];ReturnValue;value;dfc-generated | | System.Runtime.CompilerServices;TaskAwaiter;GetResult;();Argument[this].SyntheticField[m_task_task_awaiter].Property[System.Threading.Tasks.Task`1.Result];ReturnValue;value;manual | | System.Runtime.CompilerServices;TupleElementNamesAttribute;TupleElementNamesAttribute;(System.String[]);Argument[0];Argument[this].SyntheticField[System.Runtime.CompilerServices.TupleElementNamesAttribute._transformNames];value;dfc-generated | | System.Runtime.CompilerServices;TupleElementNamesAttribute;get_TransformNames;();Argument[this].SyntheticField[System.Runtime.CompilerServices.TupleElementNamesAttribute._transformNames];ReturnValue;value;dfc-generated | @@ -14179,12 +12536,9 @@ | System.Security.Authentication.ExtendedProtection;ExtendedProtectionPolicy;ToString;();Argument[this].SyntheticField[System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy._customServiceNames].Element;ReturnValue;taint;dfc-generated | | System.Security.Authentication.ExtendedProtection;ExtendedProtectionPolicy;get_CustomChannelBinding;();Argument[this].SyntheticField[System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy._customChannelBinding];ReturnValue;value;dfc-generated | | System.Security.Authentication.ExtendedProtection;ExtendedProtectionPolicy;get_CustomServiceNames;();Argument[this].SyntheticField[System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy._customServiceNames];ReturnValue;value;dfc-generated | -| System.Security.Authentication.ExtendedProtection;ExtendedProtectionPolicyTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | | System.Security.Authentication.ExtendedProtection;ExtendedProtectionPolicyTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System.Security.Authentication.ExtendedProtection;ExtendedProtectionPolicyTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | | System.Security.Authentication.ExtendedProtection;ExtendedProtectionPolicyTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | | System.Security.Authentication.ExtendedProtection;ExtendedProtectionPolicyTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System.Security.Authentication.ExtendedProtection;ExtendedProtectionPolicyTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System.Security.Authentication.ExtendedProtection;ServiceNameCollection;Merge;(System.Collections.IEnumerable);Argument[0].Element;ReturnValue.Property[System.Collections.ReadOnlyCollectionBase.InnerList].Element;value;dfc-generated | | System.Security.Authentication.ExtendedProtection;ServiceNameCollection;Merge;(System.Collections.IEnumerable);Argument[0].Property[System.Collections.ReadOnlyCollectionBase.InnerList].Element;ReturnValue.Property[System.Collections.ReadOnlyCollectionBase.InnerList].Element;value;dfc-generated | | System.Security.Authentication.ExtendedProtection;ServiceNameCollection;Merge;(System.String);Argument[0];ReturnValue.Property[System.Collections.ReadOnlyCollectionBase.InnerList].Element;value;dfc-generated | @@ -14212,12 +12566,9 @@ | System.Security.Claims;ClaimsIdentity;FindFirst;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Security.Claims;ClaimsIdentity;FindFirst;(System.String);Argument[this].Property[System.Security.Claims.ClaimsIdentity.Claims].Element;ReturnValue;value;dfc-generated | | System.Security.Claims;ClaimsIdentity;FindFirst;(System.String);Argument[this].SyntheticField[System.Security.Claims.ClaimsIdentity._instanceClaims].Element;ReturnValue;value;dfc-generated | -| System.Security.Claims;ClaimsIdentity;HasClaim;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Security.Claims;ClaimsIdentity;HasClaim;(System.Predicate);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Security.Claims;ClaimsIdentity;HasClaim;(System.Predicate);Argument[this].Property[System.Security.Claims.ClaimsIdentity.Claims].Element;Argument[0].Parameter[0];value;dfc-generated | -| System.Security.Claims;ClaimsIdentity;HasClaim;(System.Predicate);Argument[this].Property[System.Security.Claims.ClaimsIdentity.Claims].Element;Argument[0].Parameter[0];value;hq-generated | | System.Security.Claims;ClaimsIdentity;HasClaim;(System.Predicate);Argument[this].SyntheticField[System.Security.Claims.ClaimsIdentity._instanceClaims].Element;Argument[0].Parameter[0];value;dfc-generated | -| System.Security.Claims;ClaimsIdentity;HasClaim;(System.Predicate);Argument[this].SyntheticField[System.Security.Claims.ClaimsIdentity._instanceClaims].Element;Argument[0].Parameter[0];value;hq-generated | | System.Security.Claims;ClaimsIdentity;get_AuthenticationType;();Argument[this].SyntheticField[System.Security.Claims.ClaimsIdentity._authenticationType];ReturnValue;value;dfc-generated | | System.Security.Claims;ClaimsIdentity;get_Claims;();Argument[this].SyntheticField[System.Security.Claims.ClaimsIdentity._instanceClaims].Element;ReturnValue.Element;value;dfc-generated | | System.Security.Claims;ClaimsIdentity;get_Claims;();Argument[this].SyntheticField[System.Security.Claims.ClaimsIdentity._instanceClaims];ReturnValue;value;dfc-generated | @@ -14333,10 +12684,8 @@ | System.Security.Cryptography.X509Certificates;X509ChainElementCollection;CopyTo;(System.Security.Cryptography.X509Certificates.X509ChainElement[],System.Int32);Argument[this].Element;Argument[0].Element;value;manual | | System.Security.Cryptography.X509Certificates;X509ChainElementCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Security.Cryptography.X509Certificates.X509ChainElementEnumerator.Current];value;manual | | System.Security.Cryptography.X509Certificates;X509ChainElementCollection;get_Item;(System.Int32);Argument[this];ReturnValue;taint;df-generated | -| System.Security.Cryptography.X509Certificates;X509ChainElementEnumerator;get_Current;();Argument[this].Property[System.Security.Cryptography.X509Certificates.X509ChainElementEnumerator.Current];ReturnValue;value;df-generated | | System.Security.Cryptography.X509Certificates;X509ChainElementEnumerator;get_Current;();Argument[this].Property[System.Security.Cryptography.X509Certificates.X509ChainElementEnumerator.Current];ReturnValue;value;dfc-generated | | System.Security.Cryptography.X509Certificates;X509ChainElementEnumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Security.Cryptography.X509Certificates;X509ChainElementEnumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Security.Cryptography.X509Certificates;X509ChainPolicy;Clone;();Argument[this];ReturnValue;taint;df-generated | | System.Security.Cryptography.X509Certificates;X509EnhancedKeyUsageExtension;CopyFrom;(System.Security.Cryptography.AsnEncodedData);Argument[0].SyntheticField[System.Security.Cryptography.AsnEncodedData._rawData].Element;Argument[this].SyntheticField[System.Security.Cryptography.AsnEncodedData._rawData].Element;value;dfc-generated | | System.Security.Cryptography.X509Certificates;X509EnhancedKeyUsageExtension;CopyFrom;(System.Security.Cryptography.AsnEncodedData);Argument[0].SyntheticField[System.Security.Cryptography.AsnEncodedData._rawData];Argument[this].SyntheticField[System.Security.Cryptography.AsnEncodedData._rawData];value;dfc-generated | @@ -14348,10 +12697,8 @@ | System.Security.Cryptography.X509Certificates;X509ExtensionCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Security.Cryptography.X509Certificates.X509ExtensionEnumerator.Current];value;manual | | System.Security.Cryptography.X509Certificates;X509ExtensionCollection;get_Item;(System.Int32);Argument[this];ReturnValue;taint;df-generated | | System.Security.Cryptography.X509Certificates;X509ExtensionCollection;get_Item;(System.String);Argument[this];ReturnValue;taint;df-generated | -| System.Security.Cryptography.X509Certificates;X509ExtensionEnumerator;get_Current;();Argument[this].Property[System.Security.Cryptography.X509Certificates.X509ExtensionEnumerator.Current];ReturnValue;value;df-generated | | System.Security.Cryptography.X509Certificates;X509ExtensionEnumerator;get_Current;();Argument[this].Property[System.Security.Cryptography.X509Certificates.X509ExtensionEnumerator.Current];ReturnValue;value;dfc-generated | | System.Security.Cryptography.X509Certificates;X509ExtensionEnumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Security.Cryptography.X509Certificates;X509ExtensionEnumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Security.Cryptography.X509Certificates;X509KeyUsageExtension;CopyFrom;(System.Security.Cryptography.AsnEncodedData);Argument[0].SyntheticField[System.Security.Cryptography.AsnEncodedData._rawData].Element;Argument[this].SyntheticField[System.Security.Cryptography.AsnEncodedData._rawData].Element;value;dfc-generated | | System.Security.Cryptography.X509Certificates;X509KeyUsageExtension;CopyFrom;(System.Security.Cryptography.AsnEncodedData);Argument[0].SyntheticField[System.Security.Cryptography.AsnEncodedData._rawData];Argument[this].SyntheticField[System.Security.Cryptography.AsnEncodedData._rawData];value;dfc-generated | | System.Security.Cryptography.X509Certificates;X509SignatureGenerator;CreateForECDsa;(System.Security.Cryptography.ECDsa);Argument[0];ReturnValue;taint;df-generated | @@ -14414,7 +12761,6 @@ | System.Security.Cryptography.Xml;KeyInfoClause;LoadXml;(System.Xml.XmlElement);Argument[0].Element;Argument[this];taint;df-generated | | System.Security.Cryptography.Xml;KeyInfoEncryptedKey;GetXml;();Argument[this].SyntheticField[System.Security.Cryptography.Xml.KeyInfoEncryptedKey._encryptedKey].SyntheticField[System.Security.Cryptography.Xml.EncryptedType._cachedXml];ReturnValue;value;dfc-generated | | System.Security.Cryptography.Xml;KeyInfoEncryptedKey;KeyInfoEncryptedKey;(System.Security.Cryptography.Xml.EncryptedKey);Argument[0];Argument[this];taint;df-generated | -| System.Security.Cryptography.Xml;KeyInfoEncryptedKey;LoadXml;(System.Xml.XmlElement);Argument[0];Argument[this].SyntheticField[System.Security.Cryptography.Xml.KeyInfoEncryptedKey._encryptedKey].SyntheticField[System.Security.Cryptography.Xml.EncryptedType._cachedXml];value;df-generated | | System.Security.Cryptography.Xml;KeyInfoEncryptedKey;LoadXml;(System.Xml.XmlElement);Argument[0];Argument[this].SyntheticField[System.Security.Cryptography.Xml.KeyInfoEncryptedKey._encryptedKey].SyntheticField[System.Security.Cryptography.Xml.EncryptedType._cachedXml];value;dfc-generated | | System.Security.Cryptography.Xml;KeyInfoName;KeyInfoName;(System.String);Argument[0];Argument[this];taint;df-generated | | System.Security.Cryptography.Xml;KeyInfoNode;KeyInfoNode;(System.Xml.XmlElement);Argument[0].Element;Argument[this];taint;df-generated | @@ -14471,17 +12817,13 @@ | System.Security.Cryptography.Xml;TransformChain;GetEnumerator;();Argument[this].SyntheticField[System.Security.Cryptography.Xml.TransformChain._transforms].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;dfc-generated | | System.Security.Cryptography.Xml;TransformChain;get_Item;(System.Int32);Argument[this].SyntheticField[System.Security.Cryptography.Xml.TransformChain._transforms].Element;ReturnValue;value;dfc-generated | | System.Security.Cryptography.Xml;XmlDecryptionTransform;AddExceptUri;(System.String);Argument[0];Argument[this];taint;df-generated | -| System.Security.Cryptography.Xml;XmlDecryptionTransform;GetOutput;();Argument[this].SyntheticField[System.Security.Cryptography.Xml.XmlDecryptionTransform._containingDocument];ReturnValue;value;df-generated | | System.Security.Cryptography.Xml;XmlDecryptionTransform;GetOutput;();Argument[this].SyntheticField[System.Security.Cryptography.Xml.XmlDecryptionTransform._containingDocument];ReturnValue;value;dfc-generated | -| System.Security.Cryptography.Xml;XmlDecryptionTransform;GetOutput;(System.Type);Argument[this].SyntheticField[System.Security.Cryptography.Xml.XmlDecryptionTransform._containingDocument];ReturnValue;value;df-generated | | System.Security.Cryptography.Xml;XmlDecryptionTransform;GetOutput;(System.Type);Argument[this].SyntheticField[System.Security.Cryptography.Xml.XmlDecryptionTransform._containingDocument];ReturnValue;value;dfc-generated | -| System.Security.Cryptography.Xml;XmlDecryptionTransform;LoadInput;(System.Object);Argument[0];Argument[this].SyntheticField[System.Security.Cryptography.Xml.XmlDecryptionTransform._containingDocument];value;df-generated | | System.Security.Cryptography.Xml;XmlDecryptionTransform;LoadInput;(System.Object);Argument[0];Argument[this].SyntheticField[System.Security.Cryptography.Xml.XmlDecryptionTransform._containingDocument];value;dfc-generated | | System.Security.Cryptography.Xml;XmlDsigC14NTransform;GetDigestedOutput;(System.Security.Cryptography.HashAlgorithm);Argument[0].Property[System.Security.Cryptography.HashAlgorithm.Hash].Element;ReturnValue.Element;value;dfc-generated | | System.Security.Cryptography.Xml;XmlDsigExcC14NTransform;GetDigestedOutput;(System.Security.Cryptography.HashAlgorithm);Argument[0].Property[System.Security.Cryptography.HashAlgorithm.Hash].Element;ReturnValue.Element;value;dfc-generated | | System.Security.Cryptography.Xml;XmlDsigExcC14NTransform;XmlDsigExcC14NTransform;(System.Boolean,System.String);Argument[1];Argument[this];taint;df-generated | | System.Security.Cryptography.Xml;XmlDsigXsltTransform;GetInnerXml;();Argument[this].SyntheticField[System.Security.Cryptography.Xml.XmlDsigXsltTransform._xslNodes];ReturnValue;value;dfc-generated | -| System.Security.Cryptography.Xml;XmlDsigXsltTransform;LoadInnerXml;(System.Xml.XmlNodeList);Argument[0];Argument[this].SyntheticField[System.Security.Cryptography.Xml.XmlDsigXsltTransform._xslNodes];value;df-generated | | System.Security.Cryptography.Xml;XmlDsigXsltTransform;LoadInnerXml;(System.Xml.XmlNodeList);Argument[0];Argument[this].SyntheticField[System.Security.Cryptography.Xml.XmlDsigXsltTransform._xslNodes];value;dfc-generated | | System.Security.Cryptography;Aes;DecryptKeyWrapPadded;(System.Byte[]);Argument[0].Element;ReturnValue.Element;value;dfc-generated | | System.Security.Cryptography;Aes;DecryptKeyWrapPadded;(System.ReadOnlySpan);Argument[0].Element;ReturnValue.Element;value;dfc-generated | @@ -14602,10 +12944,8 @@ | System.Security.Cryptography;OidCollection;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Security.Cryptography.OidEnumerator.Current];value;manual | | System.Security.Cryptography;OidCollection;get_Item;(System.Int32);Argument[this];ReturnValue;taint;df-generated | | System.Security.Cryptography;OidCollection;get_Item;(System.String);Argument[this];ReturnValue;taint;df-generated | -| System.Security.Cryptography;OidEnumerator;get_Current;();Argument[this].Property[System.Security.Cryptography.OidEnumerator.Current];ReturnValue;value;df-generated | | System.Security.Cryptography;OidEnumerator;get_Current;();Argument[this].Property[System.Security.Cryptography.OidEnumerator.Current];ReturnValue;value;dfc-generated | | System.Security.Cryptography;OidEnumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Security.Cryptography;OidEnumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Security.Cryptography;PasswordDeriveBytes;PasswordDeriveBytes;(System.Byte[],System.Byte[],System.String,System.Int32,System.Security.Cryptography.CspParameters);Argument[0].Element;Argument[this];taint;df-generated | | System.Security.Cryptography;PasswordDeriveBytes;PasswordDeriveBytes;(System.Byte[],System.Byte[],System.String,System.Int32,System.Security.Cryptography.CspParameters);Argument[1].Element;Argument[this];taint;df-generated | | System.Security.Cryptography;PasswordDeriveBytes;PasswordDeriveBytes;(System.Byte[],System.Byte[],System.String,System.Int32,System.Security.Cryptography.CspParameters);Argument[2];Argument[this];taint;df-generated | @@ -14664,25 +13004,18 @@ | System.Security.Principal;GenericIdentity;GenericIdentity;(System.String);Argument[0];Argument[this].SyntheticField[System.Security.Principal.GenericIdentity.m_name];value;dfc-generated | | System.Security.Principal;GenericIdentity;GenericIdentity;(System.String,System.String);Argument[0];Argument[this].SyntheticField[System.Security.Principal.GenericIdentity.m_name];value;dfc-generated | | System.Security.Principal;GenericIdentity;GenericIdentity;(System.String,System.String);Argument[1];Argument[this].SyntheticField[System.Security.Principal.GenericIdentity.m_type];value;dfc-generated | -| System.Security.Principal;GenericIdentity;get_AuthenticationType;();Argument[this].SyntheticField[System.Security.Claims.ClaimsIdentity._authenticationType];ReturnValue;value;dfc-generated | | System.Security.Principal;GenericIdentity;get_AuthenticationType;();Argument[this].SyntheticField[System.Security.Principal.GenericIdentity.m_type];ReturnValue;value;dfc-generated | | System.Security.Principal;GenericIdentity;get_Claims;();Argument[this].Property[System.Security.Claims.ClaimsIdentity.Claims];ReturnValue;value;dfc-generated | -| System.Security.Principal;GenericIdentity;get_Claims;();Argument[this].SyntheticField[System.Security.Claims.ClaimsIdentity._instanceClaims].Element;ReturnValue.Element;value;dfc-generated | -| System.Security.Principal;GenericIdentity;get_Claims;();Argument[this].SyntheticField[System.Security.Claims.ClaimsIdentity._instanceClaims];ReturnValue;value;dfc-generated | -| System.Security.Principal;GenericIdentity;get_Name;();Argument[this].SyntheticField[System.Security.Principal.GenericIdentity.m_name];ReturnValue;value;df-generated | | System.Security.Principal;GenericIdentity;get_Name;();Argument[this].SyntheticField[System.Security.Principal.GenericIdentity.m_name];ReturnValue;value;dfc-generated | | System.Security.Principal;GenericPrincipal;GenericPrincipal;(System.Security.Principal.IIdentity,System.String[]);Argument[0];Argument[this].SyntheticField[System.Security.Principal.GenericPrincipal.m_identity];value;dfc-generated | -| System.Security.Principal;GenericPrincipal;get_Identity;();Argument[this].SyntheticField[System.Security.Claims.ClaimsPrincipal._identities].Element;ReturnValue;value;dfc-generated | | System.Security.Principal;GenericPrincipal;get_Identity;();Argument[this].SyntheticField[System.Security.Principal.GenericPrincipal.m_identity];ReturnValue;value;dfc-generated | | System.Security.Principal;IIdentity;get_Name;();Argument[this];ReturnValue;taint;df-generated | | System.Security.Principal;WindowsIdentity;RunImpersonated;(Microsoft.Win32.SafeHandles.SafeAccessTokenHandle,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Security.Principal;WindowsIdentity;RunImpersonated;(Microsoft.Win32.SafeHandles.SafeAccessTokenHandle,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Security.Principal;WindowsIdentity;RunImpersonatedAsync;(Microsoft.Win32.SafeHandles.SafeAccessTokenHandle,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Security.Principal;WindowsIdentity;RunImpersonatedAsync;(Microsoft.Win32.SafeHandles.SafeAccessTokenHandle,System.Func>);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | -| System.Security.Principal;WindowsIdentity;get_AuthenticationType;();Argument[this].SyntheticField[System.Security.Claims.ClaimsIdentity._authenticationType];ReturnValue;value;dfc-generated | | System.Security.Principal;WindowsIdentity;get_Claims;();Argument[this].SyntheticField[System.Security.Claims.ClaimsIdentity._instanceClaims].Element;ReturnValue.Element;value;dfc-generated | | System.Security.Principal;WindowsIdentity;get_Claims;();Argument[this].SyntheticField[System.Security.Claims.ClaimsIdentity._instanceClaims];ReturnValue;value;dfc-generated | -| System.Security.Principal;WindowsPrincipal;get_Identity;();Argument[this].SyntheticField[System.Security.Claims.ClaimsPrincipal._identities].Element;ReturnValue;value;dfc-generated | | System.Security;IPermission;Copy;();Argument[this];ReturnValue;value;dfc-generated | | System.Security;IPermission;Intersect;(System.Security.IPermission);Argument[0];ReturnValue;value;dfc-generated | | System.Security;IPermission;Union;(System.Security.IPermission);Argument[this];ReturnValue;taint;df-generated | @@ -14802,15 +13135,11 @@ | System.Text.Json;JsonDocument;Parse;(System.ReadOnlyMemory,System.Text.Json.JsonDocumentOptions);Argument[0];ReturnValue;taint;df-generated | | System.Text.Json;JsonDocument;get_RootElement;();Argument[this];ReturnValue;taint;df-generated | | System.Text.Json;JsonElement+ArrayEnumerator;GetEnumerator;();Argument[this];ReturnValue;value;dfc-generated | -| System.Text.Json;JsonElement+ArrayEnumerator;get_Current;();Argument[this].Property[System.Text.Json.JsonElement+ArrayEnumerator.Current];ReturnValue;value;df-generated | | System.Text.Json;JsonElement+ArrayEnumerator;get_Current;();Argument[this].Property[System.Text.Json.JsonElement+ArrayEnumerator.Current];ReturnValue;value;dfc-generated | | System.Text.Json;JsonElement+ArrayEnumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Text.Json;JsonElement+ArrayEnumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Text.Json;JsonElement+ObjectEnumerator;GetEnumerator;();Argument[this];ReturnValue;value;dfc-generated | -| System.Text.Json;JsonElement+ObjectEnumerator;get_Current;();Argument[this].Property[System.Text.Json.JsonElement+ObjectEnumerator.Current];ReturnValue;value;df-generated | | System.Text.Json;JsonElement+ObjectEnumerator;get_Current;();Argument[this].Property[System.Text.Json.JsonElement+ObjectEnumerator.Current];ReturnValue;value;dfc-generated | | System.Text.Json;JsonElement+ObjectEnumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Text.Json;JsonElement+ObjectEnumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Text.Json;JsonElement;Clone;();Argument[this];ReturnValue;value;dfc-generated | | System.Text.Json;JsonElement;EnumerateArray;();Argument[this];ReturnValue;taint;df-generated | | System.Text.Json;JsonElement;EnumerateObject;();Argument[this];ReturnValue;taint;df-generated | @@ -14836,7 +13165,6 @@ | System.Text.Json;JsonException;JsonException;(System.String,System.String,System.Nullable,System.Nullable,System.Exception);Argument[2];Argument[this].Property[System.Text.Json.JsonException.LineNumber];value;dfc-generated | | System.Text.Json;JsonException;JsonException;(System.String,System.String,System.Nullable,System.Nullable,System.Exception);Argument[3];Argument[this].Property[System.Text.Json.JsonException.BytePositionInLine];value;dfc-generated | | System.Text.Json;JsonException;get_Message;();Argument[this].Property[System.Exception.Message];ReturnValue;value;dfc-generated | -| System.Text.Json;JsonException;get_Message;();Argument[this].SyntheticField[System.Exception._message];ReturnValue;value;dfc-generated | | System.Text.Json;JsonException;get_Message;();Argument[this].SyntheticField[System.Text.Json.JsonException._message];ReturnValue;value;dfc-generated | | System.Text.Json;JsonNamingPolicy;ConvertName;(System.String);Argument[0];ReturnValue;value;dfc-generated | | System.Text.Json;JsonReaderState;JsonReaderState;(System.Text.Json.JsonReaderOptions);Argument[0];Argument[this].SyntheticField[System.Text.Json.JsonReaderState._readerOptions];value;dfc-generated | @@ -14894,10 +13222,8 @@ | System.Text.RegularExpressions;Regex+ValueMatchEnumerator;GetEnumerator;();Argument[this];ReturnValue;value;dfc-generated | | System.Text.RegularExpressions;Regex+ValueMatchEnumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | | System.Text.RegularExpressions;Regex+ValueSplitEnumerator;GetEnumerator;();Argument[this];ReturnValue;value;dfc-generated | -| System.Text.RegularExpressions;Regex+ValueSplitEnumerator;get_Current;();Argument[this].Property[System.Text.RegularExpressions.Regex+ValueSplitEnumerator.Current];ReturnValue;value;df-generated | | System.Text.RegularExpressions;Regex+ValueSplitEnumerator;get_Current;();Argument[this].Property[System.Text.RegularExpressions.Regex+ValueSplitEnumerator.Current];ReturnValue;value;dfc-generated | | System.Text.RegularExpressions;Regex+ValueSplitEnumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Text.RegularExpressions;Regex+ValueSplitEnumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Text.RegularExpressions;Regex;Count;(System.String);Argument[0];Argument[this];taint;df-generated | | System.Text.RegularExpressions;Regex;EnumerateMatches;(System.ReadOnlySpan);Argument[0];ReturnValue;taint;df-generated | | System.Text.RegularExpressions;Regex;EnumerateMatches;(System.ReadOnlySpan);Argument[this];ReturnValue;taint;df-generated | @@ -14961,28 +13287,16 @@ | System.Text.RegularExpressions;Regex;Replace;(System.String,System.String,System.String,System.Text.RegularExpressions.RegexOptions);Argument[0];ReturnValue;value;dfc-generated | | System.Text.RegularExpressions;Regex;Replace;(System.String,System.String,System.String,System.Text.RegularExpressions.RegexOptions,System.TimeSpan);Argument[0];ReturnValue;value;dfc-generated | | System.Text.RegularExpressions;Regex;Replace;(System.String,System.String,System.Text.RegularExpressions.MatchEvaluator);Argument[0];ReturnValue;value;dfc-generated | -| System.Text.RegularExpressions;Regex;Replace;(System.String,System.String,System.Text.RegularExpressions.MatchEvaluator);Argument[0];ReturnValue;value;hq-generated | -| System.Text.RegularExpressions;Regex;Replace;(System.String,System.String,System.Text.RegularExpressions.MatchEvaluator);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Text.RegularExpressions;Regex;Replace;(System.String,System.String,System.Text.RegularExpressions.MatchEvaluator);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Text.RegularExpressions;Regex;Replace;(System.String,System.String,System.Text.RegularExpressions.MatchEvaluator,System.Text.RegularExpressions.RegexOptions);Argument[0];ReturnValue;value;dfc-generated | -| System.Text.RegularExpressions;Regex;Replace;(System.String,System.String,System.Text.RegularExpressions.MatchEvaluator,System.Text.RegularExpressions.RegexOptions);Argument[0];ReturnValue;value;hq-generated | -| System.Text.RegularExpressions;Regex;Replace;(System.String,System.String,System.Text.RegularExpressions.MatchEvaluator,System.Text.RegularExpressions.RegexOptions);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Text.RegularExpressions;Regex;Replace;(System.String,System.String,System.Text.RegularExpressions.MatchEvaluator,System.Text.RegularExpressions.RegexOptions);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Text.RegularExpressions;Regex;Replace;(System.String,System.String,System.Text.RegularExpressions.MatchEvaluator,System.Text.RegularExpressions.RegexOptions,System.TimeSpan);Argument[0];ReturnValue;value;dfc-generated | -| System.Text.RegularExpressions;Regex;Replace;(System.String,System.String,System.Text.RegularExpressions.MatchEvaluator,System.Text.RegularExpressions.RegexOptions,System.TimeSpan);Argument[0];ReturnValue;value;hq-generated | -| System.Text.RegularExpressions;Regex;Replace;(System.String,System.String,System.Text.RegularExpressions.MatchEvaluator,System.Text.RegularExpressions.RegexOptions,System.TimeSpan);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Text.RegularExpressions;Regex;Replace;(System.String,System.String,System.Text.RegularExpressions.MatchEvaluator,System.Text.RegularExpressions.RegexOptions,System.TimeSpan);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Text.RegularExpressions;Regex;Replace;(System.String,System.Text.RegularExpressions.MatchEvaluator);Argument[0];ReturnValue;value;dfc-generated | -| System.Text.RegularExpressions;Regex;Replace;(System.String,System.Text.RegularExpressions.MatchEvaluator);Argument[0];ReturnValue;value;hq-generated | -| System.Text.RegularExpressions;Regex;Replace;(System.String,System.Text.RegularExpressions.MatchEvaluator);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Text.RegularExpressions;Regex;Replace;(System.String,System.Text.RegularExpressions.MatchEvaluator);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Text.RegularExpressions;Regex;Replace;(System.String,System.Text.RegularExpressions.MatchEvaluator,System.Int32);Argument[0];ReturnValue;value;dfc-generated | -| System.Text.RegularExpressions;Regex;Replace;(System.String,System.Text.RegularExpressions.MatchEvaluator,System.Int32);Argument[0];ReturnValue;value;hq-generated | -| System.Text.RegularExpressions;Regex;Replace;(System.String,System.Text.RegularExpressions.MatchEvaluator,System.Int32);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Text.RegularExpressions;Regex;Replace;(System.String,System.Text.RegularExpressions.MatchEvaluator,System.Int32);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Text.RegularExpressions;Regex;Replace;(System.String,System.Text.RegularExpressions.MatchEvaluator,System.Int32,System.Int32);Argument[0];ReturnValue;value;dfc-generated | -| System.Text.RegularExpressions;Regex;Replace;(System.String,System.Text.RegularExpressions.MatchEvaluator,System.Int32,System.Int32);Argument[0];ReturnValue;value;hq-generated | -| System.Text.RegularExpressions;Regex;Replace;(System.String,System.Text.RegularExpressions.MatchEvaluator,System.Int32,System.Int32);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Text.RegularExpressions;Regex;Replace;(System.String,System.Text.RegularExpressions.MatchEvaluator,System.Int32,System.Int32);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Text.RegularExpressions;Regex;Split;(System.String);Argument[0];ReturnValue.Element;value;dfc-generated | | System.Text.RegularExpressions;Regex;Split;(System.String,System.Int32);Argument[0];ReturnValue.Element;value;dfc-generated | @@ -15074,13 +13388,10 @@ | System.Text;SpanLineEnumerator;GetEnumerator;();Argument[this];ReturnValue;value;dfc-generated | | System.Text;SpanLineEnumerator;MoveNext;();Argument[this].SyntheticField[System.Text.SpanLineEnumerator._remaining].Element;Argument[this].SyntheticField[System.Text.SpanLineEnumerator._current].Element;value;dfc-generated | | System.Text;SpanLineEnumerator;MoveNext;();Argument[this].SyntheticField[System.Text.SpanLineEnumerator._remaining];Argument[this].SyntheticField[System.Text.SpanLineEnumerator._current];value;dfc-generated | -| System.Text;SpanLineEnumerator;get_Current;();Argument[this].SyntheticField[System.Text.SpanLineEnumerator._current];ReturnValue;value;df-generated | | System.Text;SpanLineEnumerator;get_Current;();Argument[this].SyntheticField[System.Text.SpanLineEnumerator._current];ReturnValue;value;dfc-generated | | System.Text;SpanRuneEnumerator;GetEnumerator;();Argument[this];ReturnValue;value;dfc-generated | -| System.Text;SpanRuneEnumerator;get_Current;();Argument[this].Property[System.Text.SpanRuneEnumerator.Current];ReturnValue;value;df-generated | | System.Text;SpanRuneEnumerator;get_Current;();Argument[this].Property[System.Text.SpanRuneEnumerator.Current];ReturnValue;value;dfc-generated | | System.Text;SpanRuneEnumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | -| System.Text;SpanRuneEnumerator;get_Current;();Argument[this];ReturnValue;taint;dfc-generated | | System.Text;StringBuilder+AppendInterpolatedStringHandler;AppendFormatted;(System.String);Argument[0];Argument[this];taint;df-generated | | System.Text;StringBuilder+AppendInterpolatedStringHandler;AppendFormatted;(T);Argument[0];Argument[this];taint;df-generated | | System.Text;StringBuilder+AppendInterpolatedStringHandler;AppendFormatted;(T,System.String);Argument[0];Argument[this];taint;df-generated | @@ -15240,7 +13551,6 @@ | System.Text;StringRuneEnumerator;get_Current;();Argument[this];ReturnValue;taint;df-generated | | System.Threading.Channels;Channel;CreateBounded;(System.Threading.Channels.BoundedChannelOptions,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.RateLimiting;FixedWindowRateLimiter;FixedWindowRateLimiter;(System.Threading.RateLimiting.FixedWindowRateLimiterOptions);Argument[0].Property[System.Threading.RateLimiting.FixedWindowRateLimiterOptions.Window];Argument[this].SyntheticField[System.Threading.RateLimiting.FixedWindowRateLimiter._options].Property[System.Threading.RateLimiting.FixedWindowRateLimiterOptions.Window];value;dfc-generated | -| System.Threading.RateLimiting;FixedWindowRateLimiter;get_ReplenishmentPeriod;();Argument[this].SyntheticField[System.Threading.RateLimiting.FixedWindowRateLimiter._options].Property[System.Threading.RateLimiting.FixedWindowRateLimiterOptions.Window];ReturnValue;value;df-generated | | System.Threading.RateLimiting;FixedWindowRateLimiter;get_ReplenishmentPeriod;();Argument[this].SyntheticField[System.Threading.RateLimiting.FixedWindowRateLimiter._options].Property[System.Threading.RateLimiting.FixedWindowRateLimiterOptions.Window];ReturnValue;value;dfc-generated | | System.Threading.RateLimiting;MetadataName;MetadataName;(System.String);Argument[0];Argument[this].SyntheticField[System.Threading.RateLimiting.MetadataName`1._name];value;dfc-generated | | System.Threading.RateLimiting;MetadataName;ToString;();Argument[this].SyntheticField[System.Threading.RateLimiting.MetadataName`1._name];ReturnValue;value;dfc-generated | @@ -15258,11 +13568,8 @@ | System.Threading.RateLimiting;RateLimitPartition;GetSlidingWindowLimiter;(TKey,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.RateLimiting;RateLimitPartition;GetTokenBucketLimiter;(TKey,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.RateLimiting;RateLimitPartition;RateLimitPartition;(TKey,System.Func);Argument[0];Argument[this].Property[System.Threading.RateLimiting.RateLimitPartition`1.PartitionKey];value;dfc-generated | -| System.Threading.RateLimiting;RateLimitPartition;RateLimitPartition;(TKey,System.Func);Argument[0];Argument[this].Property[System.Threading.RateLimiting.RateLimitPartition`1.PartitionKey];value;hq-generated | -| System.Threading.RateLimiting;RateLimitPartition;RateLimitPartition;(TKey,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading.RateLimiting;RateLimitPartition;RateLimitPartition;(TKey,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.RateLimiting;RateLimitPartition;RateLimitPartition;(TKey,System.Func);Argument[1];Argument[this].Property[System.Threading.RateLimiting.RateLimitPartition`1.Factory];value;dfc-generated | -| System.Threading.RateLimiting;RateLimitPartition;RateLimitPartition;(TKey,System.Func);Argument[1];Argument[this].Property[System.Threading.RateLimiting.RateLimitPartition`1.Factory];value;hq-generated | | System.Threading.RateLimiting;RateLimiter;AttemptAcquire;(System.Int32);Argument[this];ReturnValue;taint;df-generated | | System.Threading.RateLimiting;RateLimiter;AttemptAcquireCore;(System.Int32);Argument[this];ReturnValue;taint;df-generated | | System.Threading.RateLimiting;RateLimiter;CreateChained;(System.Threading.RateLimiting.RateLimiter[]);Argument[0].Element;ReturnValue;taint;df-generated | @@ -15270,7 +13577,6 @@ | System.Threading.RateLimiting;ReplenishingRateLimiter;get_ReplenishmentPeriod;();Argument[this];ReturnValue;taint;df-generated | | System.Threading.RateLimiting;SlidingWindowRateLimiter;SlidingWindowRateLimiter;(System.Threading.RateLimiting.SlidingWindowRateLimiterOptions);Argument[0];Argument[this];taint;df-generated | | System.Threading.RateLimiting;TokenBucketRateLimiter;TokenBucketRateLimiter;(System.Threading.RateLimiting.TokenBucketRateLimiterOptions);Argument[0].Property[System.Threading.RateLimiting.TokenBucketRateLimiterOptions.ReplenishmentPeriod];Argument[this].SyntheticField[System.Threading.RateLimiting.TokenBucketRateLimiter._options].Property[System.Threading.RateLimiting.TokenBucketRateLimiterOptions.ReplenishmentPeriod];value;dfc-generated | -| System.Threading.RateLimiting;TokenBucketRateLimiter;get_ReplenishmentPeriod;();Argument[this].SyntheticField[System.Threading.RateLimiting.TokenBucketRateLimiter._options].Property[System.Threading.RateLimiting.TokenBucketRateLimiterOptions.ReplenishmentPeriod];ReturnValue;value;df-generated | | System.Threading.RateLimiting;TokenBucketRateLimiter;get_ReplenishmentPeriod;();Argument[this].SyntheticField[System.Threading.RateLimiting.TokenBucketRateLimiter._options].Property[System.Threading.RateLimiting.TokenBucketRateLimiterOptions.ReplenishmentPeriod];ReturnValue;value;dfc-generated | | System.Threading.Tasks.Dataflow;ActionBlock;ActionBlock;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks.Dataflow;ActionBlock;ActionBlock;(System.Action,System.Threading.Tasks.Dataflow.ExecutionDataflowBlockOptions);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | @@ -15375,9 +13681,7 @@ | System.Threading.Tasks.Dataflow;WriteOnceBlock;ReleaseReservation;(System.Threading.Tasks.Dataflow.DataflowMessageHeader,System.Threading.Tasks.Dataflow.ITargetBlock);Argument[this];Argument[1];taint;df-generated | | System.Threading.Tasks.Dataflow;WriteOnceBlock;ToString;();Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks.Dataflow;WriteOnceBlock;TryReceive;(System.Predicate,T);Argument[this].SyntheticField[System.Threading.Tasks.Dataflow.WriteOnceBlock`1._value];Argument[0].Parameter[0];value;dfc-generated | -| System.Threading.Tasks.Dataflow;WriteOnceBlock;TryReceive;(System.Predicate,T);Argument[this].SyntheticField[System.Threading.Tasks.Dataflow.WriteOnceBlock`1._value];Argument[0].Parameter[0];value;hq-generated | | System.Threading.Tasks.Dataflow;WriteOnceBlock;TryReceive;(System.Predicate,T);Argument[this].SyntheticField[System.Threading.Tasks.Dataflow.WriteOnceBlock`1._value];Argument[1];value;dfc-generated | -| System.Threading.Tasks.Dataflow;WriteOnceBlock;TryReceive;(System.Predicate,T);Argument[this].SyntheticField[System.Threading.Tasks.Dataflow.WriteOnceBlock`1._value];Argument[1];value;hq-generated | | System.Threading.Tasks.Dataflow;WriteOnceBlock;TryReceiveAll;(System.Collections.Generic.IList);Argument[this].SyntheticField[System.Threading.Tasks.Dataflow.WriteOnceBlock`1._value];Argument[0].Element;value;dfc-generated | | System.Threading.Tasks.Dataflow;WriteOnceBlock;WriteOnceBlock;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks.Dataflow;WriteOnceBlock;WriteOnceBlock;(System.Func,System.Threading.Tasks.Dataflow.DataflowBlockOptions);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | @@ -15459,15 +13763,10 @@ | System.Threading.Tasks;ParallelLoopState;get_LowestBreakIteration;();Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks;Task;ConfigureAwait;(System.Boolean);Argument[this];ReturnValue;taint;df-generated | | System.Threading.Tasks;Task;ConfigureAwait;(System.Threading.Tasks.ConfigureAwaitOptions);Argument[this];ReturnValue;taint;df-generated | -| System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Object);Argument[1];Argument[0].Parameter[1];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Object,System.Threading.CancellationToken);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Object,System.Threading.CancellationToken);Argument[1];Argument[0].Parameter[1];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[1];Argument[0].Parameter[1];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Object,System.Threading.Tasks.TaskContinuationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Object,System.Threading.Tasks.TaskContinuationOptions);Argument[1];Argument[0].Parameter[1];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Object,System.Threading.Tasks.TaskScheduler);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Object,System.Threading.Tasks.TaskScheduler);Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Threading.CancellationToken);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | @@ -15475,30 +13774,20 @@ | System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Threading.Tasks.TaskContinuationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Threading.Tasks.TaskScheduler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object);Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,System.Threading.CancellationToken);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,System.Threading.CancellationToken);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,System.Threading.CancellationToken);Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,System.Threading.Tasks.TaskContinuationOptions);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,System.Threading.Tasks.TaskContinuationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,System.Threading.Tasks.TaskContinuationOptions);Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,System.Threading.Tasks.TaskScheduler);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,System.Threading.Tasks.TaskScheduler);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,System.Threading.Tasks.TaskScheduler);Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Threading.CancellationToken);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Threading.CancellationToken);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Threading.Tasks.TaskContinuationOptions);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Threading.Tasks.TaskContinuationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Threading.Tasks.TaskScheduler);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Threading.Tasks.TaskScheduler);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;Delay;(System.Int32,System.Threading.CancellationToken);Argument[1];ReturnValue;taint;df-generated | | System.Threading.Tasks;Task;Delay;(System.TimeSpan,System.Threading.CancellationToken);Argument[1];ReturnValue;taint;df-generated | | System.Threading.Tasks;Task;Delay;(System.TimeSpan,System.TimeProvider,System.Threading.CancellationToken);Argument[2];ReturnValue;taint;df-generated | @@ -15510,24 +13799,16 @@ | System.Threading.Tasks;Task;Run;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;Task;Run;(System.Func,System.Threading.CancellationToken);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;Task;Run;(System.Func>);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;Run;(System.Func>);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;Run;(System.Func>,System.Threading.CancellationToken);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;Run;(System.Func>,System.Threading.CancellationToken);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;Run;(System.Func);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;Run;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;Run;(System.Func,System.Threading.CancellationToken);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;Run;(System.Func,System.Threading.CancellationToken);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;Task;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;Task;Task;(System.Action,System.Threading.CancellationToken);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;Task;Task;(System.Action,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;Task;Task;(System.Action,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading.Tasks;Task;Task;(System.Action,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;Task;(System.Action,System.Object);Argument[1];Argument[0].Parameter[0];value;manual | -| System.Threading.Tasks;Task;Task;(System.Action,System.Object,System.Threading.CancellationToken);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;Task;(System.Action,System.Object,System.Threading.CancellationToken);Argument[1];Argument[0].Parameter[0];value;manual | -| System.Threading.Tasks;Task;Task;(System.Action,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;Task;(System.Action,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[0].Parameter[0];value;manual | -| System.Threading.Tasks;Task;Task;(System.Action,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;Task;(System.Action,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task;WaitAsync;(System.Threading.CancellationToken);Argument[0];ReturnValue;taint;df-generated | | System.Threading.Tasks;Task;WaitAsync;(System.Threading.CancellationToken);Argument[this];ReturnValue;value;df-generated | @@ -15551,91 +13832,62 @@ | System.Threading.Tasks;Task;WhenAny;(System.Threading.Tasks.Task,System.Threading.Tasks.Task);Argument[1].Element.Property[System.Threading.Tasks.Task`1.Result];ReturnValue.Property[System.Threading.Tasks.Task`1.Result].Element;value;manual | | System.Threading.Tasks;Task;WhenAny;(System.Threading.Tasks.Task[]);Argument[0].Element.Property[System.Threading.Tasks.Task`1.Result];ReturnValue.Property[System.Threading.Tasks.Task`1.Result].Element;value;manual | | System.Threading.Tasks;Task;WhenEach;(System.ReadOnlySpan);Argument[0].Element;ReturnValue.Element;value;dfc-generated | -| System.Threading.Tasks;Task;get_AsyncState;();Argument[this].SyntheticField[System.Threading.Tasks.Task.m_stateObject];ReturnValue;value;df-generated | | System.Threading.Tasks;Task;get_AsyncState;();Argument[this].SyntheticField[System.Threading.Tasks.Task.m_stateObject];ReturnValue;value;dfc-generated | | System.Threading.Tasks;Task;ConfigureAwait;(System.Boolean);Argument[this];ReturnValue.SyntheticField[m_configuredTaskAwaiter].SyntheticField[m_task_configured_task_awaitable];value;manual | | System.Threading.Tasks;Task;ConfigureAwait;(System.Threading.Tasks.ConfigureAwaitOptions);Argument[this];ReturnValue;taint;df-generated | -| System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Object>,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Object>,System.Object);Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Object>,System.Object);Argument[this];Argument[0].Parameter[0];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Object>,System.Object,System.Threading.CancellationToken);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Object>,System.Object,System.Threading.CancellationToken);Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Object>,System.Object,System.Threading.CancellationToken);Argument[this];Argument[0].Parameter[0];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Object>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Object>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Object>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[this];Argument[0].Parameter[0];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Object>,System.Object,System.Threading.Tasks.TaskContinuationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Object>,System.Object,System.Threading.Tasks.TaskContinuationOptions);Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Object>,System.Object,System.Threading.Tasks.TaskContinuationOptions);Argument[this];Argument[0].Parameter[0];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Object>,System.Object,System.Threading.Tasks.TaskScheduler);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Object>,System.Object,System.Threading.Tasks.TaskScheduler);Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Action,System.Object>,System.Object,System.Threading.Tasks.TaskScheduler);Argument[this];Argument[0].Parameter[0];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Action>);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Action>);Argument[this];Argument[0].Parameter[0];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Action>,System.Threading.CancellationToken);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Action>,System.Threading.CancellationToken);Argument[this];Argument[0].Parameter[0];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Action>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Action>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[this];Argument[0].Parameter[0];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Action>,System.Threading.Tasks.TaskContinuationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Action>,System.Threading.Tasks.TaskContinuationOptions);Argument[this];Argument[0].Parameter[0];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Action>,System.Threading.Tasks.TaskScheduler);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Action>,System.Threading.Tasks.TaskScheduler);Argument[this];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,TNewResult>,System.Object);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,TNewResult>,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,TNewResult>,System.Object);Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,TNewResult>,System.Object);Argument[this];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.CancellationToken);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.CancellationToken);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.CancellationToken);Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.CancellationToken);Argument[this];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[this];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.Tasks.TaskContinuationOptions);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.Tasks.TaskContinuationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.Tasks.TaskContinuationOptions);Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.Tasks.TaskContinuationOptions);Argument[this];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.Tasks.TaskScheduler);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.Tasks.TaskScheduler);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.Tasks.TaskScheduler);Argument[1];Argument[0].Parameter[1];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,System.Object,TNewResult>,System.Object,System.Threading.Tasks.TaskScheduler);Argument[this];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,TNewResult>);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Func,TNewResult>);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,TNewResult>);Argument[this];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,TNewResult>,System.Threading.CancellationToken);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Func,TNewResult>,System.Threading.CancellationToken);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,TNewResult>,System.Threading.CancellationToken);Argument[this];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,TNewResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Func,TNewResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,TNewResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[this];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,TNewResult>,System.Threading.Tasks.TaskContinuationOptions);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Func,TNewResult>,System.Threading.Tasks.TaskContinuationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,TNewResult>,System.Threading.Tasks.TaskContinuationOptions);Argument[this];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,TNewResult>,System.Threading.Tasks.TaskScheduler);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;ContinueWith;(System.Func,TNewResult>,System.Threading.Tasks.TaskScheduler);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;ContinueWith;(System.Func,TNewResult>,System.Threading.Tasks.TaskScheduler);Argument[this];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task;GetAwaiter;();Argument[this];ReturnValue.SyntheticField[m_task_task_awaiter];value;manual | | System.Threading.Tasks;Task;Task;(System.Func,System.Object);Argument[0].ReturnValue;Argument[this].Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;Task;(System.Func,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;Task;(System.Func,System.Object);Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task;Task;(System.Func,System.Object,System.Threading.CancellationToken);Argument[0].ReturnValue;Argument[this].Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;Task;(System.Func,System.Object,System.Threading.CancellationToken);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;Task;(System.Func,System.Object,System.Threading.CancellationToken);Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task;Task;(System.Func,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[this].Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;Task;(System.Func,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;Task;(System.Func,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task;Task;(System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[this].Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;Task;(System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;Task;(System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;Task;Task;(System.Func);Argument[0].ReturnValue;Argument[this].Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;Task;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;Task;(System.Func,System.Threading.CancellationToken);Argument[0].ReturnValue;Argument[this].Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;Task;(System.Func,System.Threading.CancellationToken);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;Task;(System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[this].Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;Task;(System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;Task;(System.Func,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[this].Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;Task;Task;(System.Func,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;Task;WaitAsync;(System.Threading.CancellationToken);Argument[this];ReturnValue;value;df-generated | | System.Threading.Tasks;Task;WaitAsync;(System.TimeSpan);Argument[this];ReturnValue;value;df-generated | | System.Threading.Tasks;Task;WaitAsync;(System.TimeSpan,System.Threading.CancellationToken);Argument[this];ReturnValue;value;df-generated | @@ -15664,243 +13916,131 @@ | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Action,System.Threading.Tasks.TaskContinuationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func[],TResult>);Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func[],TResult>);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func[],TResult>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.CancellationToken);Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.CancellationToken);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.Tasks.TaskContinuationOptions);Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.Tasks.TaskContinuationOptions);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.Tasks.TaskContinuationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Action[]>);Argument[0];Argument[1].Parameter[0];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Action[]>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Action[]>,System.Threading.CancellationToken);Argument[0];Argument[1].Parameter[0];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Action[]>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Action[]>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[0];Argument[1].Parameter[0];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Action[]>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Action[]>,System.Threading.Tasks.TaskContinuationOptions);Argument[0];Argument[1].Parameter[0];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Action[]>,System.Threading.Tasks.TaskContinuationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func,System.Threading.Tasks.TaskContinuationOptions);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func,System.Threading.Tasks.TaskContinuationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Action,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Action,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Action,System.Threading.Tasks.TaskContinuationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,TResult>);Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,TResult>);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,TResult>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.CancellationToken);Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.CancellationToken);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.Tasks.TaskContinuationOptions);Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.Tasks.TaskContinuationOptions);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.Tasks.TaskContinuationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Action>);Argument[0];Argument[1].Parameter[0];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Action>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Action>,System.Threading.CancellationToken);Argument[0];Argument[1].Parameter[0];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Action>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Action>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[0];Argument[1].Parameter[0];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Action>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Action>,System.Threading.Tasks.TaskContinuationOptions);Argument[0];Argument[1].Parameter[0];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Action>,System.Threading.Tasks.TaskContinuationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,System.Threading.Tasks.TaskContinuationOptions);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,System.Threading.Tasks.TaskContinuationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,System.Object);Argument[0].ReturnValue;Argument[1].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,System.Object);Argument[0].ReturnValue;Argument[1].Parameter[0];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,System.Object);Argument[2];Argument[0].Parameter[1];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,System.Object);Argument[2];Argument[0].Parameter[1];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[1].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[1].Parameter[0];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[2];Argument[0].Parameter[1];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[2];Argument[0].Parameter[1];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.IAsyncResult,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.IAsyncResult,System.Action,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.IAsyncResult,System.Action,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[0].ReturnValue;Argument[1].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[0].ReturnValue;Argument[1].Parameter[0];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[2];Argument[0].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[2];Argument[0].Parameter[0];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[3];Argument[0].Parameter[1];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[3];Argument[0].Parameter[1];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[4];Argument[0].Parameter[2];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[4];Argument[0].Parameter[2];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[5];Argument[0].Parameter[4];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[5];Argument[0].Parameter[4];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[1].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[1].Parameter[0];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[2];Argument[0].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[2];Argument[0].Parameter[0];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[3];Argument[0].Parameter[1];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[3];Argument[0].Parameter[1];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[4];Argument[0].Parameter[2];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[4];Argument[0].Parameter[2];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[5];Argument[0].Parameter[4];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[5];Argument[0].Parameter[4];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object);Argument[0].ReturnValue;Argument[1].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object);Argument[0].ReturnValue;Argument[1].Parameter[0];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object);Argument[2];Argument[0].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object);Argument[2];Argument[0].Parameter[0];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object);Argument[3];Argument[0].Parameter[1];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object);Argument[3];Argument[0].Parameter[1];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object);Argument[4];Argument[0].Parameter[2];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object);Argument[4];Argument[0].Parameter[2];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object);Argument[5];Argument[0].Parameter[4];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object);Argument[5];Argument[0].Parameter[4];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[1].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[1].Parameter[0];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[2];Argument[0].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[2];Argument[0].Parameter[0];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[3];Argument[0].Parameter[1];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[3];Argument[0].Parameter[1];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[4];Argument[0].Parameter[2];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[4];Argument[0].Parameter[2];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[5];Argument[0].Parameter[4];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[5];Argument[0].Parameter[4];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object);Argument[0].ReturnValue;Argument[1].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object);Argument[0].ReturnValue;Argument[1].Parameter[0];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object);Argument[2];Argument[0].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object);Argument[2];Argument[0].Parameter[0];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object);Argument[3];Argument[0].Parameter[1];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object);Argument[3];Argument[0].Parameter[1];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object);Argument[4];Argument[0].Parameter[3];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object);Argument[4];Argument[0].Parameter[3];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[1].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[1].Parameter[0];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[2];Argument[0].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[2];Argument[0].Parameter[0];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[3];Argument[0].Parameter[1];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[3];Argument[0].Parameter[1];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[4];Argument[0].Parameter[3];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[4];Argument[0].Parameter[3];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,System.Object);Argument[0].ReturnValue;Argument[1].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,System.Object);Argument[0].ReturnValue;Argument[1].Parameter[0];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,System.Object);Argument[2];Argument[0].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,System.Object);Argument[2];Argument[0].Parameter[0];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,System.Object);Argument[3];Argument[0].Parameter[1];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,System.Object);Argument[3];Argument[0].Parameter[1];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,System.Object);Argument[4];Argument[0].Parameter[3];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,System.Object);Argument[4];Argument[0].Parameter[3];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[1].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[1].Parameter[0];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[2];Argument[0].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[2];Argument[0].Parameter[0];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[3];Argument[0].Parameter[1];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[3];Argument[0].Parameter[1];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[4];Argument[0].Parameter[3];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[4];Argument[0].Parameter[3];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object);Argument[0].ReturnValue;Argument[1].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object);Argument[0].ReturnValue;Argument[1].Parameter[0];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object);Argument[2];Argument[0].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object);Argument[2];Argument[0].Parameter[0];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object);Argument[3];Argument[0].Parameter[2];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object);Argument[3];Argument[0].Parameter[2];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[1].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[1].Parameter[0];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[2];Argument[0].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[2];Argument[0].Parameter[0];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[3];Argument[0].Parameter[2];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[3];Argument[0].Parameter[2];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,System.Object);Argument[0].ReturnValue;Argument[1].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,System.Object);Argument[0].ReturnValue;Argument[1].Parameter[0];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,System.Object);Argument[2];Argument[0].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,System.Object);Argument[2];Argument[0].Parameter[0];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,System.Object);Argument[3];Argument[0].Parameter[2];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,System.Object);Argument[3];Argument[0].Parameter[2];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[1].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[1].Parameter[0];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[2];Argument[0].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[2];Argument[0].Parameter[0];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[3];Argument[0].Parameter[2];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Action,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[3];Argument[0].Parameter[2];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object);Argument[0].ReturnValue;Argument[1].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object);Argument[0].ReturnValue;Argument[1].Parameter[0];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object);Argument[2];Argument[0].Parameter[1];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object);Argument[2];Argument[0].Parameter[1];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[1].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[1].Parameter[0];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[2];Argument[0].Parameter[1];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[2];Argument[0].Parameter[1];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.IAsyncResult,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.IAsyncResult,System.Func,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.IAsyncResult,System.Func,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | @@ -15908,189 +14048,109 @@ | System.Threading.Tasks;TaskFactory;StartNew;(System.Action,System.Threading.CancellationToken);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;StartNew;(System.Action,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;StartNew;(System.Action,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading.Tasks;TaskFactory;StartNew;(System.Action,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;StartNew;(System.Action,System.Object);Argument[1];Argument[0].Parameter[0];value;manual | -| System.Threading.Tasks;TaskFactory;StartNew;(System.Action,System.Object,System.Threading.CancellationToken);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;StartNew;(System.Action,System.Object,System.Threading.CancellationToken);Argument[1];Argument[0].Parameter[0];value;manual | -| System.Threading.Tasks;TaskFactory;StartNew;(System.Action,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;StartNew;(System.Action,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);Argument[1];Argument[0].Parameter[0];value;manual | -| System.Threading.Tasks;TaskFactory;StartNew;(System.Action,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;StartNew;(System.Action,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Object);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Object);Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Object,System.Threading.CancellationToken);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Object,System.Threading.CancellationToken);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Object,System.Threading.CancellationToken);Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;StartNew;(System.Func);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;StartNew;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Threading.CancellationToken);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Threading.CancellationToken);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;TaskFactory;(System.Threading.CancellationToken);Argument[0];Argument[this].SyntheticField[System.Threading.Tasks.TaskFactory.m_defaultCancellationToken];value;dfc-generated | | System.Threading.Tasks;TaskFactory;TaskFactory;(System.Threading.Tasks.TaskScheduler);Argument[0];Argument[this].SyntheticField[System.Threading.Tasks.TaskFactory.m_defaultScheduler];value;dfc-generated | | System.Threading.Tasks;TaskFactory;get_CancellationToken;();Argument[this].SyntheticField[System.Threading.Tasks.TaskFactory.m_defaultCancellationToken];ReturnValue;value;dfc-generated | | System.Threading.Tasks;TaskFactory;get_Scheduler;();Argument[this].SyntheticField[System.Threading.Tasks.TaskFactory.m_defaultScheduler];ReturnValue;value;dfc-generated | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func,System.Threading.Tasks.TaskContinuationOptions);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func,System.Threading.Tasks.TaskContinuationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func[],TResult>);Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func[],TResult>);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func[],TResult>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.CancellationToken);Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.CancellationToken);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.Tasks.TaskContinuationOptions);Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.Tasks.TaskContinuationOptions);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAll;(System.Threading.Tasks.Task[],System.Func[],TResult>,System.Threading.Tasks.TaskContinuationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,System.Threading.Tasks.TaskContinuationOptions);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,System.Threading.Tasks.TaskContinuationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,TResult>);Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,TResult>);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,TResult>);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.CancellationToken);Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.CancellationToken);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.CancellationToken);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.CancellationToken,System.Threading.Tasks.TaskContinuationOptions,System.Threading.Tasks.TaskScheduler);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.Tasks.TaskContinuationOptions);Argument[0];Argument[1].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.Tasks.TaskContinuationOptions);Argument[1].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;ContinueWhenAny;(System.Threading.Tasks.Task[],System.Func,TResult>,System.Threading.Tasks.TaskContinuationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object);Argument[0].ReturnValue;Argument[1].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object);Argument[0].ReturnValue;Argument[1].Parameter[0];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object);Argument[2];Argument[0].Parameter[1];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object);Argument[2];Argument[0].Parameter[1];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[1].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[1].Parameter[0];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[2];Argument[0].Parameter[1];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[2];Argument[0].Parameter[1];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.IAsyncResult,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.IAsyncResult,System.Func,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.IAsyncResult,System.Func,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[0].ReturnValue;Argument[1].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[0].ReturnValue;Argument[1].Parameter[0];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[2];Argument[0].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[2];Argument[0].Parameter[0];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[3];Argument[0].Parameter[1];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[3];Argument[0].Parameter[1];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[4];Argument[0].Parameter[2];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[4];Argument[0].Parameter[2];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[5];Argument[0].Parameter[4];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object);Argument[5];Argument[0].Parameter[4];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[1].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[1].Parameter[0];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[2];Argument[0].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[2];Argument[0].Parameter[0];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[3];Argument[0].Parameter[1];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[3];Argument[0].Parameter[1];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[4];Argument[0].Parameter[2];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[4];Argument[0].Parameter[2];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[5];Argument[0].Parameter[4];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,TArg3,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[5];Argument[0].Parameter[4];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object);Argument[0].ReturnValue;Argument[1].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object);Argument[0].ReturnValue;Argument[1].Parameter[0];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object);Argument[2];Argument[0].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object);Argument[2];Argument[0].Parameter[0];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object);Argument[3];Argument[0].Parameter[1];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object);Argument[3];Argument[0].Parameter[1];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object);Argument[4];Argument[0].Parameter[3];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object);Argument[4];Argument[0].Parameter[3];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[1].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[1].Parameter[0];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[2];Argument[0].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[2];Argument[0].Parameter[0];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[3];Argument[0].Parameter[1];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[3];Argument[0].Parameter[1];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[4];Argument[0].Parameter[3];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,TArg2,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[4];Argument[0].Parameter[3];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object);Argument[0].ReturnValue;Argument[1].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object);Argument[0].ReturnValue;Argument[1].Parameter[0];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object);Argument[2];Argument[0].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object);Argument[2];Argument[0].Parameter[0];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object);Argument[3];Argument[0].Parameter[2];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object);Argument[3];Argument[0].Parameter[2];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[1].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;Argument[1].Parameter[0];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[2];Argument[0].Parameter[0];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[2];Argument[0].Parameter[0];value;hq-generated | | System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[3];Argument[0].Parameter[2];value;dfc-generated | -| System.Threading.Tasks;TaskFactory;FromAsync;(System.Func,System.Func,TArg1,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[3];Argument[0].Parameter[2];value;hq-generated | | System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Object);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Object);Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Object,System.Threading.CancellationToken);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Object,System.Threading.CancellationToken);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Object,System.Threading.CancellationToken);Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Object,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Object,System.Threading.Tasks.TaskCreationOptions);Argument[1];Argument[0].Parameter[0];value;manual | | System.Threading.Tasks;TaskFactory;StartNew;(System.Func);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;StartNew;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Threading.CancellationToken);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Threading.CancellationToken);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Threading.CancellationToken,System.Threading.Tasks.TaskCreationOptions,System.Threading.Tasks.TaskScheduler);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Threading.Tasks.TaskCreationOptions);Argument[0].ReturnValue;ReturnValue.Property[System.Threading.Tasks.Task`1.Result];value;manual | -| System.Threading.Tasks;TaskFactory;StartNew;(System.Func,System.Threading.Tasks.TaskCreationOptions);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System.Threading.Tasks;TaskFactory;TaskFactory;(System.Threading.CancellationToken);Argument[0];Argument[this].SyntheticField[System.Threading.Tasks.TaskFactory`1.m_defaultCancellationToken];value;dfc-generated | | System.Threading.Tasks;TaskFactory;TaskFactory;(System.Threading.Tasks.TaskScheduler);Argument[0];Argument[this].SyntheticField[System.Threading.Tasks.TaskFactory`1.m_defaultScheduler];value;dfc-generated | | System.Threading.Tasks;TaskFactory;get_CancellationToken;();Argument[this].SyntheticField[System.Threading.Tasks.TaskFactory`1.m_defaultCancellationToken];ReturnValue;value;dfc-generated | @@ -16099,8 +14159,6 @@ | System.Threading.Tasks;TaskScheduler;add_UnobservedTaskException;(System.EventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskScheduler;remove_UnobservedTaskException;(System.EventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;TaskToAsyncResult;Begin;(System.Threading.Tasks.Task,System.AsyncCallback,System.Object);Argument[0];ReturnValue.SyntheticField[System.Threading.Tasks.TaskToAsyncResult+TaskAsyncResult._task];value;dfc-generated | -| System.Threading.Tasks;TaskToAsyncResult;Begin;(System.Threading.Tasks.Task,System.AsyncCallback,System.Object);Argument[0];ReturnValue.SyntheticField[System.Threading.Tasks.TaskToAsyncResult+TaskAsyncResult._task];value;hq-generated | -| System.Threading.Tasks;TaskToAsyncResult;Begin;(System.Threading.Tasks.Task,System.AsyncCallback,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading.Tasks;TaskToAsyncResult;Begin;(System.Threading.Tasks.Task,System.AsyncCallback,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading.Tasks;UnobservedTaskExceptionEventArgs;UnobservedTaskExceptionEventArgs;(System.AggregateException);Argument[0];Argument[this].SyntheticField[System.Threading.Tasks.UnobservedTaskExceptionEventArgs.m_exception];value;dfc-generated | | System.Threading.Tasks;UnobservedTaskExceptionEventArgs;get_Exception;();Argument[this].SyntheticField[System.Threading.Tasks.UnobservedTaskExceptionEventArgs.m_exception];ReturnValue;value;dfc-generated | @@ -16130,60 +14188,38 @@ | System.Threading;Barrier;Barrier;(System.Int32,System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading;CancellationToken;Register;(System.Action);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading;CancellationToken;Register;(System.Action,System.Boolean);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading;CancellationToken;Register;(System.Action,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading;CancellationToken;Register;(System.Action,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading;CancellationToken;Register;(System.Action,System.Object);Argument[1];Argument[0].Parameter[0];value;dfc-generated | -| System.Threading;CancellationToken;Register;(System.Action,System.Object);Argument[1];Argument[0].Parameter[0];value;hq-generated | -| System.Threading;CancellationToken;Register;(System.Action,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading;CancellationToken;Register;(System.Action,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading;CancellationToken;Register;(System.Action,System.Object);Argument[1];Argument[0].Parameter[0];value;dfc-generated | -| System.Threading;CancellationToken;Register;(System.Action,System.Object);Argument[1];Argument[0].Parameter[0];value;hq-generated | -| System.Threading;CancellationToken;Register;(System.Action,System.Object,System.Boolean);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading;CancellationToken;Register;(System.Action,System.Object,System.Boolean);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading;CancellationToken;Register;(System.Action,System.Object,System.Boolean);Argument[1];Argument[0].Parameter[0];value;dfc-generated | -| System.Threading;CancellationToken;Register;(System.Action,System.Object,System.Boolean);Argument[1];Argument[0].Parameter[0];value;hq-generated | -| System.Threading;CancellationToken;UnsafeRegister;(System.Action,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading;CancellationToken;UnsafeRegister;(System.Action,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading;CancellationToken;UnsafeRegister;(System.Action,System.Object);Argument[1];Argument[0].Parameter[0];value;dfc-generated | -| System.Threading;CancellationToken;UnsafeRegister;(System.Action,System.Object);Argument[1];Argument[0].Parameter[0];value;hq-generated | -| System.Threading;CancellationToken;UnsafeRegister;(System.Action,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading;CancellationToken;UnsafeRegister;(System.Action,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading;CancellationToken;UnsafeRegister;(System.Action,System.Object);Argument[1];Argument[0].Parameter[0];value;dfc-generated | -| System.Threading;CancellationToken;UnsafeRegister;(System.Action,System.Object);Argument[1];Argument[0].Parameter[0];value;hq-generated | | System.Threading;CancellationToken;get_WaitHandle;();Argument[this];ReturnValue;taint;df-generated | | System.Threading;CancellationTokenSource;CancelAsync;();Argument[this];ReturnValue.SyntheticField[System.Threading.Tasks.Task.m_stateObject];value;dfc-generated | | System.Threading;CancellationTokenSource;get_Token;();Argument[this];ReturnValue;taint;df-generated | | System.Threading;CompressedStack;CreateCopy;();Argument[this];ReturnValue;value;dfc-generated | -| System.Threading;CompressedStack;Run;(System.Threading.CompressedStack,System.Threading.ContextCallback,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading;CompressedStack;Run;(System.Threading.CompressedStack,System.Threading.ContextCallback,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading;CompressedStack;Run;(System.Threading.CompressedStack,System.Threading.ContextCallback,System.Object);Argument[2];Argument[1].Parameter[0];value;dfc-generated | -| System.Threading;CompressedStack;Run;(System.Threading.CompressedStack,System.Threading.ContextCallback,System.Object);Argument[2];Argument[1].Parameter[0];value;hq-generated | | System.Threading;ContextCallback;BeginInvoke;(System.Object,System.AsyncCallback,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading;CountdownEvent;get_WaitHandle;();Argument[this];ReturnValue;taint;df-generated | | System.Threading;ExecutionContext;CreateCopy;();Argument[this];ReturnValue;value;dfc-generated | -| System.Threading;ExecutionContext;Run;(System.Threading.ExecutionContext,System.Threading.ContextCallback,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading;ExecutionContext;Run;(System.Threading.ExecutionContext,System.Threading.ContextCallback,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading;ExecutionContext;Run;(System.Threading.ExecutionContext,System.Threading.ContextCallback,System.Object);Argument[2];Argument[1].Parameter[0];value;dfc-generated | -| System.Threading;ExecutionContext;Run;(System.Threading.ExecutionContext,System.Threading.ContextCallback,System.Object);Argument[2];Argument[1].Parameter[0];value;hq-generated | | System.Threading;HostExecutionContextManager;SetHostExecutionContext;(System.Threading.HostExecutionContext);Argument[0];ReturnValue;taint;df-generated | | System.Threading;IOCompletionCallback;BeginInvoke;(System.UInt32,System.UInt32,System.Threading.NativeOverlapped*,System.AsyncCallback,System.Object);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Threading;LazyInitializer;EnsureInitialized;(T);Argument[0];ReturnValue;value;dfc-generated | | System.Threading;LazyInitializer;EnsureInitialized;(T,System.Boolean,System.Object);Argument[0];ReturnValue;value;dfc-generated | | System.Threading;LazyInitializer;EnsureInitialized;(T,System.Boolean,System.Object,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| System.Threading;LazyInitializer;EnsureInitialized;(T,System.Boolean,System.Object,System.Func);Argument[0];ReturnValue;value;hq-generated | | System.Threading;LazyInitializer;EnsureInitialized;(T,System.Boolean,System.Object,System.Func);Argument[3].ReturnValue;Argument[0];value;dfc-generated | -| System.Threading;LazyInitializer;EnsureInitialized;(T,System.Boolean,System.Object,System.Func);Argument[3].ReturnValue;Argument[0];value;hq-generated | | System.Threading;LazyInitializer;EnsureInitialized;(T,System.Boolean,System.Object,System.Func);Argument[3].ReturnValue;ReturnValue;value;dfc-generated | -| System.Threading;LazyInitializer;EnsureInitialized;(T,System.Boolean,System.Object,System.Func);Argument[3].ReturnValue;ReturnValue;value;hq-generated | -| System.Threading;LazyInitializer;EnsureInitialized;(T,System.Boolean,System.Object,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System.Threading;LazyInitializer;EnsureInitialized;(T,System.Boolean,System.Object,System.Func);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System.Threading;LazyInitializer;EnsureInitialized;(T,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| System.Threading;LazyInitializer;EnsureInitialized;(T,System.Func);Argument[0];ReturnValue;value;hq-generated | -| System.Threading;LazyInitializer;EnsureInitialized;(T,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Threading;LazyInitializer;EnsureInitialized;(T,System.Func);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Threading;LazyInitializer;EnsureInitialized;(T,System.Object,System.Func);Argument[0];ReturnValue;value;dfc-generated | -| System.Threading;LazyInitializer;EnsureInitialized;(T,System.Object,System.Func);Argument[0];ReturnValue;value;hq-generated | -| System.Threading;LazyInitializer;EnsureInitialized;(T,System.Object,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System.Threading;LazyInitializer;EnsureInitialized;(T,System.Object,System.Func);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Threading;Lock;EnterScope;();Argument[this];ReturnValue;taint;df-generated | | System.Threading;ManualResetEventSlim;get_WaitHandle;();Argument[this];ReturnValue;taint;df-generated | @@ -16212,10 +14248,8 @@ | System.Threading;SpinWait;SpinUntil;(System.Func,System.Int32);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading;SpinWait;SpinUntil;(System.Func,System.TimeSpan);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading;SynchronizationContext;Post;(System.Threading.SendOrPostCallback,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Threading;SynchronizationContext;Send;(System.Threading.SendOrPostCallback,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Threading;SynchronizationContext;Send;(System.Threading.SendOrPostCallback,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Threading;SynchronizationContext;Send;(System.Threading.SendOrPostCallback,System.Object);Argument[1];Argument[0].Parameter[0];value;dfc-generated | -| System.Threading;SynchronizationContext;Send;(System.Threading.SendOrPostCallback,System.Object);Argument[1];Argument[0].Parameter[0];value;hq-generated | | System.Threading;Thread;GetData;(System.LocalDataStoreSlot);Argument[0].SyntheticField[System.LocalDataStoreSlot.Data].Property[System.Threading.ThreadLocal`1.Value];ReturnValue;value;dfc-generated | | System.Threading;Thread;SetData;(System.LocalDataStoreSlot,System.Object);Argument[1];Argument[0].SyntheticField[System.LocalDataStoreSlot.Data].Property[System.Threading.ThreadLocal`1.Value];value;dfc-generated | | System.Threading;Thread;Thread;(System.Threading.ParameterizedThreadStart);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | @@ -16259,16 +14293,11 @@ | System.Timers;ElapsedEventHandler;BeginInvoke;(System.Object,System.Timers.ElapsedEventArgs,System.AsyncCallback,System.Object);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System.Timers;Timer;add_Elapsed;(System.Timers.ElapsedEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Timers;Timer;remove_Elapsed;(System.Timers.ElapsedEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Timers;TimersDescriptionAttribute;get_Description;();Argument[this].Property[System.ComponentModel.DescriptionAttribute.DescriptionValue];ReturnValue;value;dfc-generated | | System.Timers;TimersDescriptionAttribute;get_Description;();Argument[this].Property[System.ComponentModel.DescriptionAttribute.Description];Argument[this].Property[System.ComponentModel.DescriptionAttribute.DescriptionValue];taint;dfc-generated | | System.Timers;TimersDescriptionAttribute;get_Description;();Argument[this].Property[System.ComponentModel.DescriptionAttribute.Description];ReturnValue;value;dfc-generated | -| System.Transactions;CommittableTransaction;BeginCommit;(System.AsyncCallback,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System.Transactions;CommittableTransaction;BeginCommit;(System.AsyncCallback,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Transactions;CommittableTransaction;BeginCommit;(System.AsyncCallback,System.Object);Argument[1];ReturnValue.SyntheticField[System.Transactions.Transaction._internalTransaction].SyntheticField[System.Transactions.InternalTransaction._asyncState];value;dfc-generated | -| System.Transactions;CommittableTransaction;BeginCommit;(System.AsyncCallback,System.Object);Argument[1];ReturnValue.SyntheticField[System.Transactions.Transaction._internalTransaction].SyntheticField[System.Transactions.InternalTransaction._asyncState];value;hq-generated | | System.Transactions;CommittableTransaction;BeginCommit;(System.AsyncCallback,System.Object);Argument[this];ReturnValue;value;dfc-generated | -| System.Transactions;CommittableTransaction;BeginCommit;(System.AsyncCallback,System.Object);Argument[this];ReturnValue;value;hq-generated | -| System.Transactions;CommittableTransaction;get_AsyncState;();Argument[this].SyntheticField[System.Transactions.Transaction._internalTransaction].SyntheticField[System.Transactions.InternalTransaction._asyncState];ReturnValue;value;df-generated | | System.Transactions;CommittableTransaction;get_AsyncState;();Argument[this].SyntheticField[System.Transactions.Transaction._internalTransaction].SyntheticField[System.Transactions.InternalTransaction._asyncState];ReturnValue;value;dfc-generated | | System.Transactions;HostCurrentTransactionCallback;BeginInvoke;(System.AsyncCallback,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Transactions;Transaction;Clone;();Argument[this];ReturnValue;taint;df-generated | @@ -16311,6 +14340,10 @@ | System.Web;HttpUtility;JavaScriptStringEncode;(System.String,System.Boolean);Argument[0];ReturnValue;taint;manual | | System.Web;HttpUtility;ParseQueryString;(System.String);Argument[0];ReturnValue;taint;manual | | System.Web;HttpUtility;ParseQueryString;(System.String,System.Text.Encoding);Argument[0];ReturnValue;taint;manual | +| System.Web;HttpUtility;UrlDecode;(System.Byte[],System.Int32,System.Int32,System.Text.Encoding);Argument[0];ReturnValue;taint;manual | +| System.Web;HttpUtility;UrlDecode;(System.Byte[],System.Text.Encoding);Argument[0];ReturnValue;taint;manual | +| System.Web;HttpUtility;UrlDecode;(System.String);Argument[0];ReturnValue;taint;manual | +| System.Web;HttpUtility;UrlDecode;(System.String,System.Text.Encoding);Argument[0];ReturnValue;taint;manual | | System.Web;HttpUtility;UrlEncode;(System.Byte[]);Argument[0];ReturnValue;taint;manual | | System.Web;HttpUtility;UrlEncode;(System.Byte[],System.Int32,System.Int32);Argument[0];ReturnValue;taint;manual | | System.Web;HttpUtility;UrlEncode;(System.String);Argument[0];ReturnValue;taint;manual | @@ -16483,9 +14516,7 @@ | System.Xml.Resolvers;XmlPreloadedResolver;Add;(System.Uri,System.IO.Stream);Argument[0];Argument[this];taint;df-generated | | System.Xml.Resolvers;XmlPreloadedResolver;Add;(System.Uri,System.String);Argument[0];Argument[this];taint;df-generated | | System.Xml.Resolvers;XmlPreloadedResolver;GetEntity;(System.Uri,System.String,System.Type);Argument[0].Property[System.Uri.LocalPath];ReturnValue;taint;dfc-generated | -| System.Xml.Resolvers;XmlPreloadedResolver;GetEntityAsync;(System.Uri,System.String,System.Type);Argument[0].Property[System.Uri.LocalPath];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];taint;df-generated | | System.Xml.Resolvers;XmlPreloadedResolver;GetEntityAsync;(System.Uri,System.String,System.Type);Argument[0].Property[System.Uri.LocalPath];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];taint;dfc-generated | -| System.Xml.Resolvers;XmlPreloadedResolver;GetEntityAsync;(System.Uri,System.String,System.Type);Argument[0];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];taint;df-generated | | System.Xml.Resolvers;XmlPreloadedResolver;GetEntityAsync;(System.Uri,System.String,System.Type);Argument[0];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];taint;dfc-generated | | System.Xml.Resolvers;XmlPreloadedResolver;XmlPreloadedResolver;(System.Xml.XmlResolver,System.Xml.Resolvers.XmlKnownDtds,System.Collections.Generic.IEqualityComparer);Argument[0];Argument[this];taint;df-generated | | System.Xml.Resolvers;XmlPreloadedResolver;get_PreloadedUris;();Argument[this];ReturnValue;taint;df-generated | @@ -16535,7 +14566,6 @@ | System.Xml.Schema;XmlSchemaCollection;get_Item;(System.String);Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaCollection;get_NameTable;();Argument[this].SyntheticField[System.Xml.Schema.XmlSchemaCollection._nameTable];ReturnValue;value;dfc-generated | | System.Xml.Schema;XmlSchemaCollection;remove_ValidationEventHandler;(System.Xml.Schema.ValidationEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | -| System.Xml.Schema;XmlSchemaCollectionEnumerator;get_Current;();Argument[this].Property[System.Xml.Schema.XmlSchemaCollectionEnumerator.Current];ReturnValue;value;df-generated | | System.Xml.Schema;XmlSchemaCollectionEnumerator;get_Current;();Argument[this].Property[System.Xml.Schema.XmlSchemaCollectionEnumerator.Current];ReturnValue;value;dfc-generated | | System.Xml.Schema;XmlSchemaComplexContentExtension;get_Attributes;();Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaComplexContentRestriction;get_Attributes;();Argument[this];ReturnValue;taint;df-generated | @@ -16558,7 +14588,6 @@ | System.Xml.Schema;XmlSchemaElement;get_QualifiedName;();Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaException;XmlSchemaException;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[0];Argument[this];taint;df-generated | | System.Xml.Schema;XmlSchemaException;get_Message;();Argument[this].Property[System.Exception.Message];ReturnValue;value;dfc-generated | -| System.Xml.Schema;XmlSchemaException;get_Message;();Argument[this].SyntheticField[System.Exception._message];ReturnValue;value;dfc-generated | | System.Xml.Schema;XmlSchemaException;get_SourceSchemaObject;();Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaException;get_SourceUri;();Argument[this];ReturnValue;taint;df-generated | | System.Xml.Schema;XmlSchemaGroup;get_QualifiedName;();Argument[this];ReturnValue;taint;df-generated | @@ -16757,7 +14786,6 @@ | System.Xml.Serialization;XmlReflectionImporter;XmlReflectionImporter;(System.Xml.Serialization.XmlAttributeOverrides,System.String);Argument[1];Argument[this];taint;df-generated | | System.Xml.Serialization;XmlRootAttribute;XmlRootAttribute;(System.String);Argument[0];Argument[this];taint;df-generated | | System.Xml.Serialization;XmlSchemaEnumerator;XmlSchemaEnumerator;(System.Xml.Serialization.XmlSchemas);Argument[0];Argument[this].SyntheticField[System.Xml.Serialization.XmlSchemaEnumerator._list];value;dfc-generated | -| System.Xml.Serialization;XmlSchemaEnumerator;get_Current;();Argument[this].SyntheticField[System.Xml.Serialization.XmlSchemaEnumerator._list].Element;ReturnValue;value;df-generated | | System.Xml.Serialization;XmlSchemaEnumerator;get_Current;();Argument[this].SyntheticField[System.Xml.Serialization.XmlSchemaEnumerator._list].Element;ReturnValue;value;dfc-generated | | System.Xml.Serialization;XmlSchemaExporter;ExportAnyType;(System.String);Argument[0];Argument[this];taint;df-generated | | System.Xml.Serialization;XmlSchemaExporter;ExportAnyType;(System.Xml.Serialization.XmlMembersMapping);Argument[0];Argument[this];taint;df-generated | @@ -16786,23 +14814,16 @@ | System.Xml.Serialization;XmlSerializationFixupCallback;BeginInvoke;(System.Object,System.AsyncCallback,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Xml.Serialization;XmlSerializationReadCallback;BeginInvoke;(System.AsyncCallback,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System.Xml.Serialization;XmlSerializationReader+CollectionFixup;CollectionFixup;(System.Object,System.Xml.Serialization.XmlSerializationCollectionFixupCallback,System.Object);Argument[0];Argument[this].SyntheticField[System.Xml.Serialization.XmlSerializationReader+CollectionFixup._collection];value;dfc-generated | -| System.Xml.Serialization;XmlSerializationReader+CollectionFixup;CollectionFixup;(System.Object,System.Xml.Serialization.XmlSerializationCollectionFixupCallback,System.Object);Argument[0];Argument[this].SyntheticField[System.Xml.Serialization.XmlSerializationReader+CollectionFixup._collection];value;hq-generated | -| System.Xml.Serialization;XmlSerializationReader+CollectionFixup;CollectionFixup;(System.Object,System.Xml.Serialization.XmlSerializationCollectionFixupCallback,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Xml.Serialization;XmlSerializationReader+CollectionFixup;CollectionFixup;(System.Object,System.Xml.Serialization.XmlSerializationCollectionFixupCallback,System.Object);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Xml.Serialization;XmlSerializationReader+CollectionFixup;CollectionFixup;(System.Object,System.Xml.Serialization.XmlSerializationCollectionFixupCallback,System.Object);Argument[1];Argument[this].SyntheticField[System.Xml.Serialization.XmlSerializationReader+CollectionFixup._callback];value;dfc-generated | -| System.Xml.Serialization;XmlSerializationReader+CollectionFixup;CollectionFixup;(System.Object,System.Xml.Serialization.XmlSerializationCollectionFixupCallback,System.Object);Argument[1];Argument[this].SyntheticField[System.Xml.Serialization.XmlSerializationReader+CollectionFixup._callback];value;hq-generated | | System.Xml.Serialization;XmlSerializationReader+CollectionFixup;CollectionFixup;(System.Object,System.Xml.Serialization.XmlSerializationCollectionFixupCallback,System.Object);Argument[2];Argument[this].SyntheticField[System.Xml.Serialization.XmlSerializationReader+CollectionFixup._collectionItems];value;dfc-generated | -| System.Xml.Serialization;XmlSerializationReader+CollectionFixup;CollectionFixup;(System.Object,System.Xml.Serialization.XmlSerializationCollectionFixupCallback,System.Object);Argument[2];Argument[this].SyntheticField[System.Xml.Serialization.XmlSerializationReader+CollectionFixup._collectionItems];value;hq-generated | | System.Xml.Serialization;XmlSerializationReader+CollectionFixup;get_Callback;();Argument[this].SyntheticField[System.Xml.Serialization.XmlSerializationReader+CollectionFixup._callback];ReturnValue;value;dfc-generated | | System.Xml.Serialization;XmlSerializationReader+CollectionFixup;get_Collection;();Argument[this].SyntheticField[System.Xml.Serialization.XmlSerializationReader+CollectionFixup._collection];ReturnValue;value;dfc-generated | | System.Xml.Serialization;XmlSerializationReader+CollectionFixup;get_CollectionItems;();Argument[this].SyntheticField[System.Xml.Serialization.XmlSerializationReader+CollectionFixup._collectionItems];ReturnValue;value;dfc-generated | | System.Xml.Serialization;XmlSerializationReader+Fixup;Fixup;(System.Object,System.Xml.Serialization.XmlSerializationFixupCallback,System.Int32);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | -| System.Xml.Serialization;XmlSerializationReader+Fixup;Fixup;(System.Object,System.Xml.Serialization.XmlSerializationFixupCallback,System.String[]);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System.Xml.Serialization;XmlSerializationReader+Fixup;Fixup;(System.Object,System.Xml.Serialization.XmlSerializationFixupCallback,System.String[]);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System.Xml.Serialization;XmlSerializationReader+Fixup;Fixup;(System.Object,System.Xml.Serialization.XmlSerializationFixupCallback,System.String[]);Argument[1];Argument[this].SyntheticField[System.Xml.Serialization.XmlSerializationReader+Fixup._callback];value;dfc-generated | -| System.Xml.Serialization;XmlSerializationReader+Fixup;Fixup;(System.Object,System.Xml.Serialization.XmlSerializationFixupCallback,System.String[]);Argument[1];Argument[this].SyntheticField[System.Xml.Serialization.XmlSerializationReader+Fixup._callback];value;hq-generated | | System.Xml.Serialization;XmlSerializationReader+Fixup;Fixup;(System.Object,System.Xml.Serialization.XmlSerializationFixupCallback,System.String[]);Argument[2];Argument[this].SyntheticField[System.Xml.Serialization.XmlSerializationReader+Fixup._ids];value;dfc-generated | -| System.Xml.Serialization;XmlSerializationReader+Fixup;Fixup;(System.Object,System.Xml.Serialization.XmlSerializationFixupCallback,System.String[]);Argument[2];Argument[this].SyntheticField[System.Xml.Serialization.XmlSerializationReader+Fixup._ids];value;hq-generated | | System.Xml.Serialization;XmlSerializationReader+Fixup;get_Callback;();Argument[this].SyntheticField[System.Xml.Serialization.XmlSerializationReader+Fixup._callback];ReturnValue;value;dfc-generated | | System.Xml.Serialization;XmlSerializationReader+Fixup;get_Ids;();Argument[this].SyntheticField[System.Xml.Serialization.XmlSerializationReader+Fixup._ids];ReturnValue;value;dfc-generated | | System.Xml.Serialization;XmlSerializationReader;AddFixup;(System.Xml.Serialization.XmlSerializationReader+CollectionFixup);Argument[0];Argument[this];taint;df-generated | @@ -17037,7 +15058,6 @@ | System.Xml.XPath;XPathException;XPathException;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[0];Argument[this].SyntheticField[System.Xml.XPath.XPathException._res];taint;dfc-generated | | System.Xml.XPath;XPathException;XPathException;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[this].SyntheticField[System.Xml.XPath.XPathException._res];Argument[this].SyntheticField[System.Xml.XPath.XPathException._message];value;dfc-generated | | System.Xml.XPath;XPathException;get_Message;();Argument[this].Property[System.Exception.Message];ReturnValue;value;dfc-generated | -| System.Xml.XPath;XPathException;get_Message;();Argument[this].SyntheticField[System.Exception._message];ReturnValue;value;dfc-generated | | System.Xml.XPath;XPathException;get_Message;();Argument[this].SyntheticField[System.Xml.XPath.XPathException._message];ReturnValue;value;dfc-generated | | System.Xml.XPath;XPathExpression;Clone;();Argument[this];ReturnValue;value;dfc-generated | | System.Xml.XPath;XPathExpression;Compile;(System.String);Argument[0];ReturnValue;taint;df-generated | @@ -17065,7 +15085,6 @@ | System.Xml.XPath;XPathNavigator;GetNamespace;(System.String);Argument[this];ReturnValue;taint;df-generated | | System.Xml.XPath;XPathNavigator;InsertAfter;();Argument[this];ReturnValue;taint;df-generated | | System.Xml.XPath;XPathNavigator;InsertBefore;();Argument[this];ReturnValue;taint;df-generated | -| System.Xml.XPath;XPathNavigator;LookupPrefix;(System.String);Argument[this].Property[System.Xml.XPath.XPathNavigator.LocalName];ReturnValue;value;df-generated | | System.Xml.XPath;XPathNavigator;LookupPrefix;(System.String);Argument[this].Property[System.Xml.XPath.XPathNavigator.LocalName];ReturnValue;value;dfc-generated | | System.Xml.XPath;XPathNavigator;MoveTo;(System.Xml.XPath.XPathNavigator);Argument[0];Argument[this];taint;df-generated | | System.Xml.XPath;XPathNavigator;PrependChild;();Argument[this];ReturnValue;taint;df-generated | @@ -17120,7 +15139,6 @@ | System.Xml.Xsl;XsltContext;ResolveFunction;(System.String,System.String,System.Xml.XPath.XPathResultType[]);Argument[this];ReturnValue;taint;df-generated | | System.Xml.Xsl;XsltException;XsltException;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[0];Argument[this];taint;df-generated | | System.Xml.Xsl;XsltException;get_Message;();Argument[this].Property[System.Exception.Message];ReturnValue;value;dfc-generated | -| System.Xml.Xsl;XsltException;get_Message;();Argument[this].SyntheticField[System.Exception._message];ReturnValue;value;dfc-generated | | System.Xml.Xsl;XsltException;get_SourceUri;();Argument[this];ReturnValue;taint;df-generated | | System.Xml.Xsl;XsltMessageEncounteredEventArgs;get_Message;();Argument[this];ReturnValue;taint;df-generated | | System.Xml.Xsl;XsltMessageEncounteredEventHandler;BeginInvoke;(System.Object,System.Xml.Xsl.XsltMessageEncounteredEventArgs,System.AsyncCallback,System.Object);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | @@ -17179,7 +15197,6 @@ | System.Xml;XmlDataDocument;CreateElement;(System.String,System.String,System.String);Argument[this];ReturnValue;taint;df-generated | | System.Xml;XmlDataDocument;CreateEntityReference;(System.String);Argument[0];ReturnValue;taint;df-generated | | System.Xml;XmlDataDocument;CreateNavigator;(System.Xml.XmlNode);Argument[this];ReturnValue.SyntheticField[System.Xml.DataDocumentXPathNavigator._doc];value;dfc-generated | -| System.Xml;XmlDataDocument;CreateNavigator;(System.Xml.XmlNode);Argument[this];ReturnValue.SyntheticField[System.Xml.DocumentXPathNavigator._document];value;dfc-generated | | System.Xml;XmlDataDocument;GetElementFromRow;(System.Data.DataRow);Argument[0];ReturnValue;taint;df-generated | | System.Xml;XmlDataDocument;GetElementsByTagName;(System.String);Argument[0];ReturnValue;taint;df-generated | | System.Xml;XmlDataDocument;GetRowFromElement;(System.Xml.XmlElement);Argument[0].Element;ReturnValue;taint;df-generated | @@ -17198,7 +15215,6 @@ | System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose);Argument[0].Element;ReturnValue;taint;manual | | System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose);Argument[3];ReturnValue;taint;manual | | System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose);Argument[5];ReturnValue;taint;manual | -| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.Byte[],System.Int32,System.Int32,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose);Argument[6];Argument[6].Parameter[delegate-self];value;manual | | System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.Byte[],System.Int32,System.Int32,System.Xml.XmlDictionaryReaderQuotas);Argument[0].Element;ReturnValue;taint;df-manual | | System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.Byte[],System.Xml.XmlDictionaryReaderQuotas);Argument[0].Element;ReturnValue;taint;df-manual | | System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas);Argument[0];ReturnValue;taint;df-manual | @@ -17209,17 +15225,14 @@ | System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose);Argument[0];ReturnValue;taint;manual | | System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose);Argument[1];ReturnValue;taint;manual | | System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose);Argument[3];ReturnValue;taint;manual | -| System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.IO.Stream,System.Xml.IXmlDictionary,System.Xml.XmlDictionaryReaderQuotas,System.Xml.XmlBinaryReaderSession,System.Xml.OnXmlDictionaryReaderClose);Argument[4];Argument[4].Parameter[delegate-self];value;manual | | System.Xml;XmlDictionaryReader;CreateBinaryReader;(System.IO.Stream,System.Xml.XmlDictionaryReaderQuotas);Argument[0];ReturnValue;taint;df-manual | | 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[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 | @@ -17421,7 +15434,6 @@ | System.Xml;XmlEntityReference;XmlEntityReference;(System.String,System.Xml.XmlDocument);Argument[0];Argument[this];taint;df-generated | | System.Xml;XmlException;XmlException;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[0];Argument[this];taint;df-generated | | System.Xml;XmlException;get_Message;();Argument[this].Property[System.Exception.Message];ReturnValue;value;dfc-generated | -| System.Xml;XmlException;get_Message;();Argument[this].SyntheticField[System.Exception._message];ReturnValue;value;dfc-generated | | System.Xml;XmlException;get_SourceUri;();Argument[this];ReturnValue;taint;df-generated | | System.Xml;XmlImplementation;CreateDocument;();Argument[this];ReturnValue;taint;df-generated | | System.Xml;XmlImplementation;XmlImplementation;(System.Xml.XmlNameTable);Argument[0];Argument[this];taint;df-generated | @@ -17446,7 +15458,6 @@ | System.Xml;XmlNode;AppendChild;(System.Xml.XmlNode);Argument[this];Argument[0].Element;taint;df-generated | | System.Xml;XmlNode;AppendChild;(System.Xml.XmlNode);Argument[this];ReturnValue;taint;df-generated | | System.Xml;XmlNode;Clone;();Argument[this];ReturnValue;taint;df-generated | -| System.Xml;XmlNode;Clone;();Argument[this];ReturnValue;taint;dfc-generated | | System.Xml;XmlNode;CloneNode;(System.Boolean);Argument[this];ReturnValue;taint;df-generated | | System.Xml;XmlNode;GetEnumerator;();Argument[this].Element;ReturnValue.Property[System.Collections.IEnumerator.Current];value;manual | | System.Xml;XmlNode;GetNamespaceOfPrefix;(System.String);Argument[this];ReturnValue;taint;df-generated | @@ -17535,7 +15546,6 @@ | System.Xml;XmlParserContext;XmlParserContext;(System.Xml.XmlNameTable,System.Xml.XmlNamespaceManager,System.String,System.String,System.String,System.String,System.String,System.String,System.Xml.XmlSpace,System.Text.Encoding);Argument[6];Argument[this];taint;df-generated | | System.Xml;XmlParserContext;XmlParserContext;(System.Xml.XmlNameTable,System.Xml.XmlNamespaceManager,System.String,System.String,System.String,System.String,System.String,System.String,System.Xml.XmlSpace,System.Text.Encoding);Argument[7];Argument[this];taint;df-generated | | System.Xml;XmlParserContext;XmlParserContext;(System.Xml.XmlNameTable,System.Xml.XmlNamespaceManager,System.String,System.String,System.String,System.String,System.String,System.String,System.Xml.XmlSpace,System.Text.Encoding);Argument[9];Argument[this];taint;df-generated | -| System.Xml;XmlProcessingInstruction;CloneNode;(System.Boolean);Argument[this].SyntheticField[System.Xml.XmlProcessingInstruction._target];ReturnValue.SyntheticField[System.Xml.XmlProcessingInstruction._target];value;df-generated | | System.Xml;XmlProcessingInstruction;CloneNode;(System.Boolean);Argument[this].SyntheticField[System.Xml.XmlProcessingInstruction._target];ReturnValue.SyntheticField[System.Xml.XmlProcessingInstruction._target];value;dfc-generated | | System.Xml;XmlProcessingInstruction;XmlProcessingInstruction;(System.String,System.String,System.Xml.XmlDocument);Argument[0];Argument[this].SyntheticField[System.Xml.XmlProcessingInstruction._target];value;dfc-generated | | System.Xml;XmlProcessingInstruction;get_Target;();Argument[this].SyntheticField[System.Xml.XmlProcessingInstruction._target];ReturnValue;value;dfc-generated | @@ -17619,9 +15629,7 @@ | System.Xml;XmlResolver;ResolveUri;(System.Uri,System.String);Argument[1];ReturnValue;taint;dfc-generated | | System.Xml;XmlResolver;set_Credentials;(System.Net.ICredentials);Argument[0];Argument[this];taint;df-generated | | System.Xml;XmlSecureResolver;GetEntity;(System.Uri,System.String,System.Type);Argument[0].Property[System.Uri.LocalPath];ReturnValue;taint;dfc-generated | -| System.Xml;XmlSecureResolver;GetEntityAsync;(System.Uri,System.String,System.Type);Argument[0].Property[System.Uri.LocalPath];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];taint;df-generated | | System.Xml;XmlSecureResolver;GetEntityAsync;(System.Uri,System.String,System.Type);Argument[0].Property[System.Uri.LocalPath];ReturnValue.Property[System.Threading.Tasks.Task`1.Result];taint;dfc-generated | -| 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;GetNamespacesInScope;(System.Xml.XmlNamespaceScope);Argument[0];Argument[this];taint;manual | @@ -17644,29 +15652,17 @@ | 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;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 | -| System.Xml;XmlTextWriter;WriteDocType;(System.String,System.String,System.String,System.String);Argument[1];Argument[this].SyntheticField[System.Xml.XmlTextWriter._textWriter];taint;df-generated | | System.Xml;XmlTextWriter;WriteDocType;(System.String,System.String,System.String,System.String);Argument[1];Argument[this].SyntheticField[System.Xml.XmlTextWriter._textWriter];taint;dfc-generated | -| System.Xml;XmlTextWriter;WriteDocType;(System.String,System.String,System.String,System.String);Argument[2];Argument[this].SyntheticField[System.Xml.XmlTextWriter._textWriter];taint;df-generated | | System.Xml;XmlTextWriter;WriteDocType;(System.String,System.String,System.String,System.String);Argument[2];Argument[this].SyntheticField[System.Xml.XmlTextWriter._textWriter];taint;dfc-generated | -| System.Xml;XmlTextWriter;WriteDocType;(System.String,System.String,System.String,System.String);Argument[3];Argument[this].SyntheticField[System.Xml.XmlTextWriter._textWriter];taint;df-generated | | System.Xml;XmlTextWriter;WriteDocType;(System.String,System.String,System.String,System.String);Argument[3];Argument[this].SyntheticField[System.Xml.XmlTextWriter._textWriter];taint;dfc-generated | -| System.Xml;XmlTextWriter;WriteName;(System.String);Argument[0];Argument[this].SyntheticField[System.Xml.XmlTextWriter._textWriter];taint;df-generated | | System.Xml;XmlTextWriter;WriteName;(System.String);Argument[0];Argument[this].SyntheticField[System.Xml.XmlTextWriter._textWriter];taint;dfc-generated | -| System.Xml;XmlTextWriter;WriteNmToken;(System.String);Argument[0];Argument[this].SyntheticField[System.Xml.XmlTextWriter._textWriter];taint;df-generated | | System.Xml;XmlTextWriter;WriteNmToken;(System.String);Argument[0];Argument[this].SyntheticField[System.Xml.XmlTextWriter._textWriter];taint;dfc-generated | -| System.Xml;XmlTextWriter;WriteProcessingInstruction;(System.String,System.String);Argument[0];Argument[this].SyntheticField[System.Xml.XmlTextWriter._textWriter];taint;df-generated | | System.Xml;XmlTextWriter;WriteProcessingInstruction;(System.String,System.String);Argument[0];Argument[this].SyntheticField[System.Xml.XmlTextWriter._textWriter];taint;dfc-generated | -| System.Xml;XmlTextWriter;WriteQualifiedName;(System.String,System.String);Argument[0];Argument[this].SyntheticField[System.Xml.XmlTextWriter._textWriter];taint;df-generated | | System.Xml;XmlTextWriter;WriteQualifiedName;(System.String,System.String);Argument[0];Argument[this].SyntheticField[System.Xml.XmlTextWriter._textWriter];taint;dfc-generated | -| System.Xml;XmlTextWriter;WriteStartAttribute;(System.String,System.String,System.String);Argument[0];Argument[this].SyntheticField[System.Xml.XmlTextWriter._textWriter];taint;df-generated | | System.Xml;XmlTextWriter;WriteStartAttribute;(System.String,System.String,System.String);Argument[0];Argument[this].SyntheticField[System.Xml.XmlTextWriter._textWriter];taint;dfc-generated | -| System.Xml;XmlTextWriter;WriteStartAttribute;(System.String,System.String,System.String);Argument[1];Argument[this].SyntheticField[System.Xml.XmlTextWriter._textWriter];taint;df-generated | | System.Xml;XmlTextWriter;WriteStartAttribute;(System.String,System.String,System.String);Argument[1];Argument[this].SyntheticField[System.Xml.XmlTextWriter._textWriter];taint;dfc-generated | -| System.Xml;XmlTextWriter;WriteStartElement;(System.String,System.String,System.String);Argument[0];Argument[this].SyntheticField[System.Xml.XmlTextWriter._textWriter];taint;df-generated | | System.Xml;XmlTextWriter;WriteStartElement;(System.String,System.String,System.String);Argument[0];Argument[this].SyntheticField[System.Xml.XmlTextWriter._textWriter];taint;dfc-generated | -| System.Xml;XmlTextWriter;WriteStartElement;(System.String,System.String,System.String);Argument[1];Argument[this].SyntheticField[System.Xml.XmlTextWriter._textWriter];taint;df-generated | | System.Xml;XmlTextWriter;WriteStartElement;(System.String,System.String,System.String);Argument[1];Argument[this].SyntheticField[System.Xml.XmlTextWriter._textWriter];taint;dfc-generated | | 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 | @@ -17787,12 +15783,9 @@ | System;AggregateException;AggregateException;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[0];Argument[this].SyntheticField[System.AggregateException._innerExceptions];taint;dfc-generated | | System;AggregateException;AggregateException;(System.String,System.Exception);Argument[1];Argument[this].SyntheticField[System.AggregateException._innerExceptions].Element;value;dfc-generated | | System;AggregateException;GetBaseException;();Argument[this];ReturnValue;value;df-generated | -| System;AggregateException;Handle;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System;AggregateException;Handle;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System;AggregateException;Handle;(System.Func);Argument[this].SyntheticField[System.AggregateException._innerExceptions].Element;Argument[0].Parameter[0];value;dfc-generated | -| System;AggregateException;Handle;(System.Func);Argument[this].SyntheticField[System.AggregateException._innerExceptions].Element;Argument[0].Parameter[0];value;hq-generated | | System;AggregateException;get_Message;();Argument[this].Property[System.Exception.Message];ReturnValue;value;dfc-generated | -| System;AggregateException;get_Message;();Argument[this].SyntheticField[System.Exception._message];ReturnValue;value;dfc-generated | | System;AppDomain;ApplyPolicy;(System.String);Argument[0];ReturnValue;value;dfc-generated | | System;AppDomain;ToString;();Argument[this].Property[System.AppDomain.FriendlyName];ReturnValue;taint;dfc-generated | | System;AppDomain;add_AssemblyLoad;(System.AssemblyLoadEventHandler);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | @@ -17822,7 +15815,6 @@ | System;ArgumentException;ArgumentException;(System.String,System.String,System.Exception);Argument[1];Argument[this].SyntheticField[System.ArgumentException._paramName];value;dfc-generated | | System;ArgumentException;get_Message;();Argument[this].Property[System.Exception.Message];ReturnValue;value;dfc-generated | | System;ArgumentException;get_Message;();Argument[this].SyntheticField[System.ArgumentException._paramName];ReturnValue;taint;dfc-generated | -| System;ArgumentException;get_Message;();Argument[this].SyntheticField[System.Exception._message];ReturnValue;value;dfc-generated | | System;ArgumentException;get_ParamName;();Argument[this].SyntheticField[System.ArgumentException._paramName];ReturnValue;value;dfc-generated | | System;ArgumentOutOfRangeException;ArgumentOutOfRangeException;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[0].SyntheticField[System.Runtime.Serialization.SerializationInfo._values].Element;Argument[this].SyntheticField[System.ArgumentOutOfRangeException._actualValue];value;dfc-generated | | System;ArgumentOutOfRangeException;ArgumentOutOfRangeException;(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext);Argument[0];Argument[this].SyntheticField[System.ArgumentOutOfRangeException._actualValue];taint;dfc-generated | @@ -17836,54 +15828,32 @@ | System;Array;Clear;(System.Array,System.Int32,System.Int32);Argument[0].WithoutElement;Argument[0];value;manual | | System;Array;Clone;();Argument[this].Element;ReturnValue.Element;value;manual | | System;Array;ConvertAll;(TInput[],System.Converter);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | -| System;Array;ConvertAll;(TInput[],System.Converter);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | | System;Array;ConvertAll;(TInput[],System.Converter);Argument[1].ReturnValue;ReturnValue.Element;value;dfc-generated | -| System;Array;ConvertAll;(TInput[],System.Converter);Argument[1].ReturnValue;ReturnValue.Element;value;hq-generated | -| System;Array;ConvertAll;(TInput[],System.Converter);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System;Array;ConvertAll;(TInput[],System.Converter);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System;Array;CopyTo;(System.Array,System.Int64);Argument[this].Element;Argument[0].Element;value;manual | | System;Array;Exists;(T[],System.Predicate);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | -| System;Array;Exists;(T[],System.Predicate);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | -| System;Array;Exists;(T[],System.Predicate);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System;Array;Exists;(T[],System.Predicate);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System;Array;Fill;(T[],T);Argument[1];Argument[0].Element;value;dfc-generated | | System;Array;Fill;(T[],T,System.Int32,System.Int32);Argument[1];Argument[0].Element;value;dfc-generated | | System;Array;Find;(T[],System.Predicate);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System;Array;Find;(T[],System.Predicate);Argument[0].Element;ReturnValue;value;manual | -| System;Array;Find;(T[],System.Predicate);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System;Array;FindAll;(T[],System.Predicate);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System;Array;FindAll;(T[],System.Predicate);Argument[0].Element;ReturnValue;value;manual | -| System;Array;FindAll;(T[],System.Predicate);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System;Array;FindIndex;(T[],System.Int32,System.Int32,System.Predicate);Argument[0].Element;Argument[3].Parameter[0];value;dfc-generated | -| System;Array;FindIndex;(T[],System.Int32,System.Int32,System.Predicate);Argument[0].Element;Argument[3].Parameter[0];value;hq-generated | -| System;Array;FindIndex;(T[],System.Int32,System.Int32,System.Predicate);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System;Array;FindIndex;(T[],System.Int32,System.Int32,System.Predicate);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System;Array;FindIndex;(T[],System.Int32,System.Predicate);Argument[0].Element;Argument[2].Parameter[0];value;dfc-generated | -| System;Array;FindIndex;(T[],System.Int32,System.Predicate);Argument[0].Element;Argument[2].Parameter[0];value;hq-generated | -| System;Array;FindIndex;(T[],System.Int32,System.Predicate);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System;Array;FindIndex;(T[],System.Int32,System.Predicate);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System;Array;FindIndex;(T[],System.Predicate);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | -| System;Array;FindIndex;(T[],System.Predicate);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | -| System;Array;FindIndex;(T[],System.Predicate);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System;Array;FindIndex;(T[],System.Predicate);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System;Array;FindLast;(T[],System.Predicate);Argument[0].Element;Argument[1].Parameter[0];value;manual | | System;Array;FindLast;(T[],System.Predicate);Argument[0].Element;ReturnValue;value;manual | -| System;Array;FindLast;(T[],System.Predicate);Argument[1];Argument[1].Parameter[delegate-self];value;manual | | System;Array;FindLastIndex;(T[],System.Int32,System.Int32,System.Predicate);Argument[0].Element;Argument[3].Parameter[0];value;dfc-generated | -| System;Array;FindLastIndex;(T[],System.Int32,System.Int32,System.Predicate);Argument[0].Element;Argument[3].Parameter[0];value;hq-generated | -| System;Array;FindLastIndex;(T[],System.Int32,System.Int32,System.Predicate);Argument[3];Argument[3].Parameter[delegate-self];value;dfc-generated | | System;Array;FindLastIndex;(T[],System.Int32,System.Int32,System.Predicate);Argument[3];Argument[3].Parameter[delegate-self];value;hq-generated | | System;Array;FindLastIndex;(T[],System.Int32,System.Predicate);Argument[0].Element;Argument[2].Parameter[0];value;dfc-generated | -| System;Array;FindLastIndex;(T[],System.Int32,System.Predicate);Argument[0].Element;Argument[2].Parameter[0];value;hq-generated | -| System;Array;FindLastIndex;(T[],System.Int32,System.Predicate);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System;Array;FindLastIndex;(T[],System.Int32,System.Predicate);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System;Array;FindLastIndex;(T[],System.Predicate);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | -| System;Array;FindLastIndex;(T[],System.Predicate);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | -| System;Array;FindLastIndex;(T[],System.Predicate);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System;Array;FindLastIndex;(T[],System.Predicate);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System;Array;ForEach;(T[],System.Action);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | -| System;Array;ForEach;(T[],System.Action);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | -| System;Array;ForEach;(T[],System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System;Array;ForEach;(T[],System.Action);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System;Array;Reverse;(System.Array);Argument[0].Element;ReturnValue.Element;value;manual | | System;Array;Reverse;(System.Array,System.Int32,System.Int32);Argument[0].Element;ReturnValue.Element;value;manual | @@ -17891,12 +15861,8 @@ | System;Array;Reverse;(T[],System.Int32,System.Int32);Argument[0].Element;ReturnValue.Element;value;manual | | System;Array;Sort;(T[],System.Comparison);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System;Array;TrueForAll;(T[],System.Predicate);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | -| System;Array;TrueForAll;(T[],System.Predicate);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | -| System;Array;TrueForAll;(T[],System.Predicate);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System;Array;TrueForAll;(T[],System.Predicate);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | -| System;ArraySegment+Enumerator;get_Current;();Argument[this].Property[System.ArraySegment`1+Enumerator.Current];ReturnValue;value;df-generated | | System;ArraySegment+Enumerator;get_Current;();Argument[this].Property[System.ArraySegment`1+Enumerator.Current];ReturnValue;value;dfc-generated | -| System;ArraySegment+Enumerator;get_Current;();Argument[this].SyntheticField[System.ArraySegment`1+Enumerator._array].Element;ReturnValue;value;df-generated | | System;ArraySegment+Enumerator;get_Current;();Argument[this].SyntheticField[System.ArraySegment`1+Enumerator._array].Element;ReturnValue;value;dfc-generated | | System;ArraySegment;ArraySegment;(T[]);Argument[0];Argument[this].SyntheticField[System.ArraySegment`1._array];value;dfc-generated | | System;ArraySegment;ArraySegment;(T[],System.Int32,System.Int32);Argument[0];Argument[this].SyntheticField[System.ArraySegment`1._array];value;dfc-generated | @@ -18365,28 +16331,19 @@ | System;IntPtr;System.Numerics.IAdditionOperators.op_Addition;(System.IntPtr,System.IntPtr);Argument[0];ReturnValue;taint;dfc-generated | | System;IntPtr;System.Numerics.IAdditionOperators.op_Addition;(System.IntPtr,System.IntPtr);Argument[1];ReturnValue;taint;dfc-generated | | System;IntPtr;op_Addition;(System.IntPtr,System.Int32);Argument[0];ReturnValue;taint;dfc-generated | -| System;Lazy;Lazy;(System.Func,TMetadata);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System;Lazy;Lazy;(System.Func,TMetadata);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System;Lazy;Lazy;(System.Func,TMetadata);Argument[1];Argument[this].SyntheticField[System.Lazy`2._metadata];value;dfc-generated | -| System;Lazy;Lazy;(System.Func,TMetadata);Argument[1];Argument[this].SyntheticField[System.Lazy`2._metadata];value;hq-generated | -| System;Lazy;Lazy;(System.Func,TMetadata,System.Boolean);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System;Lazy;Lazy;(System.Func,TMetadata,System.Boolean);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System;Lazy;Lazy;(System.Func,TMetadata,System.Boolean);Argument[1];Argument[this].SyntheticField[System.Lazy`2._metadata];value;dfc-generated | -| System;Lazy;Lazy;(System.Func,TMetadata,System.Boolean);Argument[1];Argument[this].SyntheticField[System.Lazy`2._metadata];value;hq-generated | -| System;Lazy;Lazy;(System.Func,TMetadata,System.Threading.LazyThreadSafetyMode);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System;Lazy;Lazy;(System.Func,TMetadata,System.Threading.LazyThreadSafetyMode);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System;Lazy;Lazy;(System.Func,TMetadata,System.Threading.LazyThreadSafetyMode);Argument[1];Argument[this].SyntheticField[System.Lazy`2._metadata];value;dfc-generated | -| System;Lazy;Lazy;(System.Func,TMetadata,System.Threading.LazyThreadSafetyMode);Argument[1];Argument[this].SyntheticField[System.Lazy`2._metadata];value;hq-generated | | System;Lazy;Lazy;(TMetadata);Argument[0];Argument[this].SyntheticField[System.Lazy`2._metadata];value;dfc-generated | | System;Lazy;Lazy;(TMetadata,System.Boolean);Argument[0];Argument[this].SyntheticField[System.Lazy`2._metadata];value;dfc-generated | | System;Lazy;Lazy;(TMetadata,System.Threading.LazyThreadSafetyMode);Argument[0];Argument[this].SyntheticField[System.Lazy`2._metadata];value;dfc-generated | | System;Lazy;get_Metadata;();Argument[this].SyntheticField[System.Lazy`2._metadata];ReturnValue;value;dfc-generated | | System;Lazy;Lazy;(System.Func);Argument[0].ReturnValue;Argument[this].Property[System.Lazy`1.Value];value;manual | -| System;Lazy;Lazy;(System.Func);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System;Lazy;Lazy;(System.Func,System.Boolean);Argument[0].ReturnValue;Argument[this].Property[System.Lazy`1.Value];value;manual | -| System;Lazy;Lazy;(System.Func,System.Boolean);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System;Lazy;Lazy;(System.Func,System.Threading.LazyThreadSafetyMode);Argument[0].ReturnValue;Argument[this].Property[System.Lazy`1.Value];value;manual | -| System;Lazy;Lazy;(System.Func,System.Threading.LazyThreadSafetyMode);Argument[0];Argument[0].Parameter[delegate-self];value;manual | | System;Lazy;Lazy;(T);Argument[0];Argument[this];taint;df-generated | | System;Lazy;ToString;();Argument[this];ReturnValue;taint;df-generated | | System;Lazy;get_Value;();Argument[this];ReturnValue;taint;manual | @@ -18414,7 +16371,6 @@ | System;Memory;ToString;();Argument[this].SyntheticField[System.Memory`1._object];ReturnValue;value;dfc-generated | | System;Memory;TryCopyTo;(System.Memory);Argument[this].Property[System.Memory`1.Span].Element;Argument[0].Property[System.Memory`1.Span].Element;value;dfc-generated | | System;MemoryExtensions+SpanSplitEnumerator;GetEnumerator;();Argument[this];ReturnValue;value;dfc-generated | -| System;MemoryExtensions+SpanSplitEnumerator;get_Current;();Argument[this].Property[System.MemoryExtensions+SpanSplitEnumerator`1.Current];ReturnValue;value;df-generated | | System;MemoryExtensions+SpanSplitEnumerator;get_Current;();Argument[this].Property[System.MemoryExtensions+SpanSplitEnumerator`1.Current];ReturnValue;value;dfc-generated | | System;MemoryExtensions+SpanSplitEnumerator;get_Source;();Argument[this];ReturnValue;taint;df-generated | | System;MemoryExtensions+TryWriteInterpolatedStringHandler;TryWriteInterpolatedStringHandler;(System.Int32,System.Int32,System.Span,System.Boolean);Argument[2];Argument[this];taint;df-generated | @@ -18603,10 +16559,7 @@ | System;MemoryExtensions;SequenceEqual;(System.Span,System.ReadOnlySpan,System.Collections.Generic.IEqualityComparer);Argument[1];Argument[2];taint;df-generated | | System;MemoryExtensions;Sort;(System.Span,TComparer);Argument[0];Argument[1];taint;df-generated | | System;MemoryExtensions;Sort;(System.Span,System.Comparison);Argument[0].Element;Argument[1].Parameter[0];value;dfc-generated | -| System;MemoryExtensions;Sort;(System.Span,System.Comparison);Argument[0].Element;Argument[1].Parameter[0];value;hq-generated | | System;MemoryExtensions;Sort;(System.Span,System.Comparison);Argument[0].Element;Argument[1].Parameter[1];value;dfc-generated | -| System;MemoryExtensions;Sort;(System.Span,System.Comparison);Argument[0].Element;Argument[1].Parameter[1];value;hq-generated | -| System;MemoryExtensions;Sort;(System.Span,System.Comparison);Argument[1];Argument[1].Parameter[delegate-self];value;dfc-generated | | System;MemoryExtensions;Sort;(System.Span,System.Comparison);Argument[1];Argument[1].Parameter[delegate-self];value;hq-generated | | System;MemoryExtensions;Sort;(System.Span,System.Span,TComparer);Argument[0];Argument[2];taint;df-generated | | System;MemoryExtensions;Sort;(System.Span,System.Span,System.Comparison);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | @@ -18715,7 +16668,6 @@ | System;ReadOnlyMemory;ToArray;();Argument[this].Property[System.ReadOnlyMemory`1.Span].Element;ReturnValue.Element;value;dfc-generated | | System;ReadOnlyMemory;ToString;();Argument[this].SyntheticField[System.ReadOnlyMemory`1._object];ReturnValue;value;dfc-generated | | System;ReadOnlyMemory;TryCopyTo;(System.Memory);Argument[this].Property[System.ReadOnlyMemory`1.Span].Element;Argument[0].Property[System.Memory`1.Span].Element;value;dfc-generated | -| System;ReadOnlySpan+Enumerator;get_Current;();Argument[this].Property[System.ReadOnlySpan`1+Enumerator.Current];ReturnValue;value;df-generated | | System;ReadOnlySpan+Enumerator;get_Current;();Argument[this].Property[System.ReadOnlySpan`1+Enumerator.Current];ReturnValue;value;dfc-generated | | System;ReadOnlySpan;CopyTo;(System.Span);Argument[this].Element;Argument[0].Element;value;manual | | System;ReadOnlySpan;GetEnumerator;();Argument[this];ReturnValue;taint;df-generated | @@ -18743,7 +16695,6 @@ | System;RuntimeTypeHandle;get_Value;();Argument[this].SyntheticField[System.RuntimeTypeHandle.value];ReturnValue;value;dfc-generated | | System;SequencePosition;GetObject;();Argument[this].SyntheticField[System.SequencePosition._object];ReturnValue;value;dfc-generated | | System;SequencePosition;SequencePosition;(System.Object,System.Int32);Argument[0];Argument[this].SyntheticField[System.SequencePosition._object];value;dfc-generated | -| System;Span+Enumerator;get_Current;();Argument[this].Property[System.Span`1+Enumerator.Current];ReturnValue;value;df-generated | | System;Span+Enumerator;get_Current;();Argument[this].Property[System.Span`1+Enumerator.Current];ReturnValue;value;dfc-generated | | System;Span;Clear;();Argument[this].WithoutElement;Argument[this];value;manual | | System;Span;CopyTo;(System.Span);Argument[this].Element;Argument[0].Element;value;manual | @@ -18790,8 +16741,6 @@ | System;String;Concat;(System.Collections.Generic.IEnumerable);Argument[0].Element;ReturnValue;taint;manual | | System;String;Copy;(System.String);Argument[0];ReturnValue;value;manual | | System;String;Create;(System.Int32,TState,System.Buffers.SpanAction);Argument[1];Argument[2].Parameter[1];value;dfc-generated | -| System;String;Create;(System.Int32,TState,System.Buffers.SpanAction);Argument[1];Argument[2].Parameter[1];value;hq-generated | -| System;String;Create;(System.Int32,TState,System.Buffers.SpanAction);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System;String;Create;(System.Int32,TState,System.Buffers.SpanAction);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System;String;EnumerateRunes;();Argument[this];ReturnValue;taint;df-generated | | System;String;Format;(System.IFormatProvider,System.String,System.Object);Argument[1];ReturnValue;taint;manual | @@ -19269,14 +17218,10 @@ | System;TupleExtensions;ToValueTuple;(System.Tuple);Argument[0];ReturnValue;taint;df-generated | | System;TupleExtensions;ToValueTuple;(System.Tuple);Argument[0];ReturnValue;taint;df-generated | | System;TupleExtensions;ToValueTuple;(System.Tuple);Argument[0].Property[System.Tuple`1.Item1];ReturnValue.Field[System.ValueTuple`1.Item1];value;dfc-generated | -| System;Type;FindInterfaces;(System.Reflection.TypeFilter,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;dfc-generated | | System;Type;FindInterfaces;(System.Reflection.TypeFilter,System.Object);Argument[0];Argument[0].Parameter[delegate-self];value;hq-generated | | System;Type;FindInterfaces;(System.Reflection.TypeFilter,System.Object);Argument[1];Argument[0].Parameter[1];value;dfc-generated | -| System;Type;FindInterfaces;(System.Reflection.TypeFilter,System.Object);Argument[1];Argument[0].Parameter[1];value;hq-generated | -| System;Type;FindMembers;(System.Reflection.MemberTypes,System.Reflection.BindingFlags,System.Reflection.MemberFilter,System.Object);Argument[2];Argument[2].Parameter[delegate-self];value;dfc-generated | | System;Type;FindMembers;(System.Reflection.MemberTypes,System.Reflection.BindingFlags,System.Reflection.MemberFilter,System.Object);Argument[2];Argument[2].Parameter[delegate-self];value;hq-generated | | System;Type;FindMembers;(System.Reflection.MemberTypes,System.Reflection.BindingFlags,System.Reflection.MemberFilter,System.Object);Argument[3];Argument[2].Parameter[1];value;dfc-generated | -| System;Type;FindMembers;(System.Reflection.MemberTypes,System.Reflection.BindingFlags,System.Reflection.MemberFilter,System.Object);Argument[3];Argument[2].Parameter[1];value;hq-generated | | System;Type;GetConstructorImpl;(System.Reflection.BindingFlags,System.Reflection.Binder,System.Reflection.CallingConventions,System.Type[],System.Reflection.ParameterModifier[]);Argument[this];ReturnValue;taint;df-generated | | System;Type;GetConstructors;(System.Reflection.BindingFlags);Argument[this];ReturnValue;taint;df-generated | | System;Type;GetElementType;();Argument[this];ReturnValue;taint;df-generated | @@ -19442,17 +17387,7 @@ | System;UriParser;Resolve;(System.Uri,System.Uri,System.UriFormatException);Argument[0];ReturnValue;taint;df-generated | | System;UriParser;Resolve;(System.Uri,System.Uri,System.UriFormatException);Argument[1];ReturnValue;taint;df-generated | | System;UriTypeConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2].Property[System.Uri.OriginalString];ReturnValue;taint;dfc-generated | -| System;UriTypeConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue.Element;taint;dfc-generated | -| System;UriTypeConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;taint;dfc-generated | -| System;UriTypeConverter;ConvertFrom;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object);Argument[2];ReturnValue;value;dfc-generated | -| System;UriTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;df-generated | -| System;UriTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Element;ReturnValue;taint;dfc-generated | -| System;UriTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Property[System.Uri.OriginalString];ReturnValue;value;df-generated | | System;UriTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2].Property[System.Uri.OriginalString];ReturnValue;value;dfc-generated | -| System;UriTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;df-generated | -| System;UriTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;taint;dfc-generated | -| System;UriTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;df-generated | -| System;UriTypeConverter;ConvertTo;(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type);Argument[2];ReturnValue;value;dfc-generated | | System;ValueTuple;Create;(T1,T2,T3,T4,T5,T6,T7,T8);Argument[0];ReturnValue.Field[System.ValueTuple`8.Item1];value;manual | | System;ValueTuple;Create;(T1,T2,T3,T4,T5,T6,T7,T8);Argument[1];ReturnValue.Field[System.ValueTuple`8.Item2];value;manual | | System;ValueTuple;Create;(T1,T2,T3,T4,T5,T6,T7,T8);Argument[2];ReturnValue.Field[System.ValueTuple`8.Item3];value;manual | diff --git a/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.ql b/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.ql index 7426226c957b..ea165092688e 100644 --- a/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.ql +++ b/csharp/ql/test/library-tests/dataflow/library/FlowSummariesFiltered.ql @@ -19,12 +19,12 @@ class IncludeFilteredSummarizedCallable extends IncludeSummarizedCallable { * that propagates the same flow between `input` and `output`. */ override predicate relevantSummary( - SummaryComponentStack input, SummaryComponentStack output, boolean preservesValue + SummaryComponentStack input, SummaryComponentStack output, boolean preservesValue, Provenance p ) { - this.propagatesFlow(input, output, preservesValue, _) and + this.propagatesFlow(input, output, preservesValue, p, _, _) and not exists(IncludeSummarizedCallable rsc | isBaseCallableOrPrototype(rsc) and - rsc.propagatesFlow(input, output, preservesValue, _) and + rsc.propagatesFlow(input, output, preservesValue, _, _, _) and this.(UnboundCallable).overridesOrImplementsUnbound(rsc) ) } diff --git a/csharp/ql/test/library-tests/dataflow/local/TaintTrackingStep.expected b/csharp/ql/test/library-tests/dataflow/local/TaintTrackingStep.expected index b2d395d4b836..0950638d8306 100644 --- a/csharp/ql/test/library-tests/dataflow/local/TaintTrackingStep.expected +++ b/csharp/ql/test/library-tests/dataflow/local/TaintTrackingStep.expected @@ -1124,6 +1124,7 @@ | Splitting.cs:51:30:51:36 | { ..., ... } | Splitting.cs:51:17:51:36 | array creation of type String[] | | Splitting.cs:51:32:51:34 | "a" | Splitting.cs:51:30:51:36 | { ..., ... } | | Splitting.cs:52:9:52:9 | [post] access to local variable y | Splitting.cs:53:17:53:17 | access to local variable y | +| Splitting.cs:52:9:52:9 | access to local variable y | Splitting.cs:52:9:52:12 | access to array element | | Splitting.cs:52:9:52:9 | access to local variable y | Splitting.cs:53:17:53:17 | access to local variable y | | Splitting.cs:52:16:52:18 | "b" | Splitting.cs:52:9:52:9 | [post] access to local variable y | | Splitting.cs:52:16:52:18 | "b" | Splitting.cs:52:9:52:12 | access to array element | diff --git a/csharp/ql/test/library-tests/dataflow/nullness/MaybeNullExpr.cs b/csharp/ql/test/library-tests/dataflow/nullness/MaybeNullExpr.cs new file mode 100644 index 000000000000..6be2c54d41f1 --- /dev/null +++ b/csharp/ql/test/library-tests/dataflow/nullness/MaybeNullExpr.cs @@ -0,0 +1,24 @@ +using System; + +public class C +{ + string Prop { get; set; } + + void M(object o, bool b) + { + // Conditional expr might be null. + var conditionalExpr = b ? new object() : null; + + // Null-coalescing expr might be null as the right operand is null. + var nullCoalescing = o ?? null; + + // Cast might be null. + var c = o as C; + + // Conditional access might be null as the qualifier might be null. + var s1 = (o as C)?.Prop; + + // Conditional access might be null as the qualifier might be null. + var i = o?.GetHashCode(); + } +} diff --git a/csharp/ql/test/library-tests/dataflow/nullness/maybeNullExpr.expected b/csharp/ql/test/library-tests/dataflow/nullness/maybeNullExpr.expected new file mode 100644 index 000000000000..7182c0cdf95e --- /dev/null +++ b/csharp/ql/test/library-tests/dataflow/nullness/maybeNullExpr.expected @@ -0,0 +1,8 @@ +| MaybeNullExpr.cs:10:31:10:53 | ... ? ... : ... | +| MaybeNullExpr.cs:10:50:10:53 | null | +| MaybeNullExpr.cs:13:30:13:38 | ... ?? ... | +| MaybeNullExpr.cs:13:35:13:38 | null | +| MaybeNullExpr.cs:16:17:16:22 | ... as ... | +| MaybeNullExpr.cs:19:18:19:31 | access to property Prop | +| MaybeNullExpr.cs:19:19:19:24 | ... as ... | +| MaybeNullExpr.cs:22:17:22:32 | call to method GetHashCode | diff --git a/csharp/ql/test/library-tests/dataflow/nullness/maybeNullExpr.ql b/csharp/ql/test/library-tests/dataflow/nullness/maybeNullExpr.ql new file mode 100644 index 000000000000..3b5531ccb3a9 --- /dev/null +++ b/csharp/ql/test/library-tests/dataflow/nullness/maybeNullExpr.ql @@ -0,0 +1,6 @@ +import csharp +import semmle.code.csharp.dataflow.Nullness + +from MaybeNullExpr e +where e.fromSource() +select e diff --git a/csharp/ql/test/library-tests/dataflow/nullness/options b/csharp/ql/test/library-tests/dataflow/nullness/options new file mode 100644 index 000000000000..75c39b4541ba --- /dev/null +++ b/csharp/ql/test/library-tests/dataflow/nullness/options @@ -0,0 +1,2 @@ +semmle-extractor-options: /nostdlib /noconfig +semmle-extractor-options: --load-sources-from-project:${testdir}/../../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj diff --git a/csharp/ql/test/library-tests/dataflow/signanalysis/SignAnalysis.expected b/csharp/ql/test/library-tests/dataflow/signanalysis/SignAnalysis.expected index b0d97c4d6e44..9f87bf59eebc 100644 --- a/csharp/ql/test/library-tests/dataflow/signanalysis/SignAnalysis.expected +++ b/csharp/ql/test/library-tests/dataflow/signanalysis/SignAnalysis.expected @@ -95,6 +95,7 @@ | SignAnalysis.cs:120:9:120:10 | access to field f0 | positive | | SignAnalysis.cs:120:9:120:12 | ...++ | positive | | SignAnalysis.cs:121:34:121:35 | access to field f0 | strictlyPositive | +| SignAnalysis.cs:122:9:122:10 | access to field f0 | positive | | SignAnalysis.cs:129:9:129:16 | ... = ... | strictlyNegative | | SignAnalysis.cs:129:14:129:16 | -... | strictlyNegative | | SignAnalysis.cs:129:15:129:16 | 10 | strictlyPositive | @@ -213,6 +214,7 @@ | SignAnalysis.cs:414:13:414:13 | access to local variable i | strictlyPositive | | SignAnalysis.cs:415:31:415:31 | access to local variable i | strictlyPositive | | SignAnalysis.cs:424:31:424:31 | access to local variable x | strictlyNegative | +| SignAnalysis.cs:428:19:428:19 | access to constant A | strictlyPositive | | SignAnalysis.cs:428:19:428:24 | ... = ... | strictlyPositive | | SignAnalysis.cs:428:23:428:24 | 12 | strictlyPositive | | SignAnalysis.cs:434:38:434:38 | access to local variable i | strictlyNegative | diff --git a/csharp/ql/test/library-tests/extension/PrintAst.expected b/csharp/ql/test/library-tests/extension/PrintAst.expected new file mode 100644 index 000000000000..5016665c08b2 --- /dev/null +++ b/csharp/ql/test/library-tests/extension/PrintAst.expected @@ -0,0 +1,481 @@ +extensionTypes.cs: +# 4| [Class] MyExtensionTypes +# 6| 4: [ExtensionType] extension(String) +#-----| 2: (Parameters) +# 6| 0: [Parameter] s +# 6| -1: [TypeMention] string +#-----| 0: (Attributes) +# 6| 1: [DefaultAttribute] [NotNull(...)] +# 6| 0: [TypeMention] NotNullAttribute +# 8| 4: [ExtensionMethod] M11 +# 8| -1: [TypeMention] Void +#-----| 2: (Parameters) +# 6| 0: [Parameter] s +# 6| -1: [TypeMention] string +# 8| 4: [BlockStmt] {...} +# 10| 5: [ExtensionType] extension(Int32) +#-----| 2: (Parameters) +# 10| 0: [Parameter] i1 +# 10| -1: [TypeMention] int +# 12| 4: [ExtensionMethod] M21 +# 12| -1: [TypeMention] Void +#-----| 2: (Parameters) +# 10| 0: [Parameter] i1 +# 10| -1: [TypeMention] int +# 12| 4: [BlockStmt] {...} +# 14| 6: [ExtensionType] extension(Int32) +#-----| 2: (Parameters) +# 14| 0: [Parameter] i2 +# 14| -1: [TypeMention] int +# 16| 4: [ExtensionMethod] M31 +# 16| -1: [TypeMention] Void +#-----| 2: (Parameters) +# 14| 0: [Parameter] i2 +# 14| -1: [TypeMention] int +# 16| 4: [BlockStmt] {...} +# 18| 7: [ExtensionType] extension(Int32) +#-----| 2: (Parameters) +# 18| 0: [Parameter] i3 +# 18| -1: [TypeMention] int +# 20| 4: [ExtensionMethod] M41 +# 20| -1: [TypeMention] Void +#-----| 2: (Parameters) +# 18| 0: [Parameter] i3 +# 18| -1: [TypeMention] int +# 20| 4: [BlockStmt] {...} +# 22| 8: [ExtensionType] extension(String) +#-----| 2: (Parameters) +# 22| 0: [Parameter] s +# 22| -1: [TypeMention] string +# 24| 4: [ExtensionMethod] M51 +# 24| -1: [TypeMention] Void +#-----| 2: (Parameters) +# 22| 0: [Parameter] s +# 22| -1: [TypeMention] string +# 24| 4: [BlockStmt] {...} +# 26| 9: [ExtensionType] extension(T1)`1 +#-----| 1: (Type parameters) +# 26| 0: [TypeParameter] T1 +#-----| 2: (Parameters) +# 26| 0: [Parameter] t1 +# 26| -1: [TypeMention] T1 +#-----| 0: (Attributes) +# 26| 1: [DefaultAttribute] [NotNullWhen(...)] +# 26| -1: [TypeMention] NotNullWhenAttribute +# 26| 0: [BoolLiteral] true +# 28| 4: [ExtensionMethod] M61`1 +# 28| -1: [TypeMention] Void +#-----| 1: (Type parameters) +# 28| 0: [TypeParameter] T2 +#-----| 2: (Parameters) +# 26| 0: [Parameter] t1 +# 26| -1: [TypeMention] T1 +# 28| 1: [Parameter] o +# 28| -1: [TypeMention] object +# 28| 2: [Parameter] t2 +# 28| -1: [TypeMention] T2 +# 28| 4: [BlockStmt] {...} +extensions.cs: +# 4| [Class] MyExtensions +# 6| 4: [ExtensionType] extension(String) +#-----| 2: (Parameters) +# 6| 0: [Parameter] s +# 6| -1: [TypeMention] string +# 8| 4: [Property] Prop1 +# 8| -1: [TypeMention] bool +# 8| 3: [ExtensionCallable,Getter] get_Prop1 +#-----| 2: (Parameters) +# 6| 0: [Parameter] s +# 6| -1: [TypeMention] string +# 8| 4: [GTExpr] ... > ... +# 8| 0: [PropertyCall] access to property Length +# 8| -1: [SyntheticExtensionParameterAccess] access to extension synthetic parameter s +# 8| 1: [IntLiteral] 0 +# 9| 5: [Property] Prop2 +# 9| -1: [TypeMention] bool +# 9| 3: [ExtensionCallable,Getter] get_Prop2 +#-----| 2: (Parameters) +# 6| 0: [Parameter] s +# 6| -1: [TypeMention] string +# 9| 4: [BlockStmt] {...} +# 9| 0: [ReturnStmt] return ...; +# 9| 0: [BoolLiteral] true +# 9| 4: [ExtensionCallable,Setter] set_Prop2 +#-----| 2: (Parameters) +# 6| 0: [Parameter] s +# 6| -1: [TypeMention] string +# 9| 1: [Parameter] value +# 9| 4: [BlockStmt] {...} +# 10| 6: [Property] StaticProp1 +# 10| -1: [TypeMention] bool +# 10| 3: [ExtensionCallable,Getter] get_StaticProp1 +# 10| 4: [BlockStmt] {...} +# 10| 0: [ReturnStmt] return ...; +# 10| 0: [BoolLiteral] false +# 11| 7: [ExtensionMethod] M1 +# 11| -1: [TypeMention] bool +#-----| 2: (Parameters) +# 6| 0: [Parameter] s +# 6| -1: [TypeMention] string +# 11| 4: [IsExpr] ... is ... +# 11| 0: [SyntheticExtensionParameterAccess] access to extension synthetic parameter s +# 11| 1: [NotPatternExpr] not ... +# 11| 0: [ConstantPatternExpr,NullLiteral] null +# 12| 8: [ExtensionMethod] M2 +# 12| -1: [TypeMention] string +#-----| 2: (Parameters) +# 6| 0: [Parameter] s +# 6| -1: [TypeMention] string +# 12| 1: [Parameter] other +# 12| -1: [TypeMention] string +# 12| 4: [BlockStmt] {...} +# 12| 0: [ReturnStmt] return ...; +# 12| 0: [AddExpr] ... + ... +# 12| 0: [SyntheticExtensionParameterAccess] access to extension synthetic parameter s +# 12| 1: [ParameterAccess] access to parameter other +# 13| 9: [ExtensionMethod] StaticM1 +# 13| -1: [TypeMention] int +# 13| 4: [BlockStmt] {...} +# 13| 0: [ReturnStmt] return ...; +# 13| 0: [IntLiteral] 0 +# 14| 10: [ExtensionMethod] StaticM2 +# 14| -1: [TypeMention] int +#-----| 2: (Parameters) +# 14| 0: [Parameter] x +# 14| -1: [TypeMention] string +# 14| 4: [BlockStmt] {...} +# 14| 0: [ReturnStmt] return ...; +# 14| 0: [PropertyCall] access to property Length +# 14| -1: [ParameterAccess] access to parameter x +# 15| 11: [ExtensionCallable,MulOperator] * +# 15| -1: [TypeMention] string +#-----| 2: (Parameters) +# 15| 0: [Parameter] a +# 15| -1: [TypeMention] int +# 15| 1: [Parameter] b +# 15| -1: [TypeMention] string +# 15| 4: [BlockStmt] {...} +# 15| 0: [ReturnStmt] return ...; +# 15| 0: [StringLiteralUtf16] "" +# 16| 14: [ExtensionMethod] StringGenericM1`1 +# 16| -1: [TypeMention] T +#-----| 1: (Type parameters) +# 16| 0: [TypeParameter] T +#-----| 2: (Parameters) +# 6| 0: [Parameter] s +# 6| -1: [TypeMention] string +# 16| 1: [Parameter] t +# 16| -1: [TypeMention] T +# 16| 2: [Parameter] o +# 16| -1: [TypeMention] object +# 16| 4: [BlockStmt] {...} +# 16| 0: [ReturnStmt] return ...; +# 16| 0: [ParameterAccess] access to parameter t +# 19| 5: [ExtensionType] extension(Object) +# 21| 4: [ExtensionMethod] StaticObjectM1 +# 21| -1: [TypeMention] int +# 21| 4: [BlockStmt] {...} +# 21| 0: [ReturnStmt] return ...; +# 21| 0: [IntLiteral] 0 +# 22| 5: [ExtensionMethod] StaticObjectM2 +# 22| -1: [TypeMention] int +#-----| 2: (Parameters) +# 22| 0: [Parameter] s +# 22| -1: [TypeMention] string +# 22| 4: [BlockStmt] {...} +# 22| 0: [ReturnStmt] return ...; +# 22| 0: [PropertyCall] access to property Length +# 22| -1: [ParameterAccess] access to parameter s +# 23| 6: [Property] StaticProp +# 23| -1: [TypeMention] bool +# 23| 3: [ExtensionCallable,Getter] get_StaticProp +# 23| 4: [BoolLiteral] true +# 26| 8: [ExtensionType] extension(T)`1 +#-----| 1: (Type parameters) +# 26| 0: [TypeParameter] T +#-----| 2: (Parameters) +# 26| 0: [Parameter] t +# 26| -1: [TypeMention] T +# 28| 4: [Property] GenericProp1 +# 28| -1: [TypeMention] bool +# 28| 3: [ExtensionCallable,Getter] get_GenericProp1 +#-----| 2: (Parameters) +# 26| 0: [Parameter] t +# 26| -1: [TypeMention] T +# 28| 4: [IsExpr] ... is ... +# 28| 0: [SyntheticExtensionParameterAccess] access to extension synthetic parameter t +# 28| 1: [NotPatternExpr] not ... +# 28| 0: [ConstantPatternExpr,NullLiteral] null +# 29| 5: [Property] GenericProp2 +# 29| -1: [TypeMention] bool +# 29| 3: [ExtensionCallable,Getter] get_GenericProp2 +#-----| 2: (Parameters) +# 26| 0: [Parameter] t +# 26| -1: [TypeMention] T +# 29| 4: [BlockStmt] {...} +# 29| 0: [ReturnStmt] return ...; +# 29| 0: [BoolLiteral] true +# 29| 4: [ExtensionCallable,Setter] set_GenericProp2 +#-----| 2: (Parameters) +# 26| 0: [Parameter] t +# 26| -1: [TypeMention] T +# 29| 1: [Parameter] value +# 29| 4: [BlockStmt] {...} +# 30| 6: [ExtensionMethod] GenericM1 +# 30| -1: [TypeMention] bool +#-----| 2: (Parameters) +# 26| 0: [Parameter] t +# 26| -1: [TypeMention] T +# 30| 4: [IsExpr] ... is ... +# 30| 0: [SyntheticExtensionParameterAccess] access to extension synthetic parameter t +# 30| 1: [NotPatternExpr] not ... +# 30| 0: [ConstantPatternExpr,NullLiteral] null +# 31| 7: [ExtensionMethod] GenericM2`1 +# 31| -1: [TypeMention] Void +#-----| 1: (Type parameters) +# 31| 0: [TypeParameter] S +#-----| 2: (Parameters) +# 26| 0: [Parameter] t +# 26| -1: [TypeMention] T +# 31| 1: [Parameter] other +# 31| -1: [TypeMention] S +# 31| 4: [BlockStmt] {...} +# 32| 8: [ExtensionMethod] GenericStaticM1 +# 32| -1: [TypeMention] Void +#-----| 2: (Parameters) +# 26| 0: [Parameter] t +# 26| -1: [TypeMention] T +# 32| 4: [BlockStmt] {...} +# 33| 9: [ExtensionMethod] GenericStaticM2`1 +# 33| -1: [TypeMention] Void +#-----| 1: (Type parameters) +# 33| 0: [TypeParameter] S +#-----| 2: (Parameters) +# 33| 0: [Parameter] other +# 33| -1: [TypeMention] S +# 33| 4: [BlockStmt] {...} +# 34| 10: [AddOperator,ExtensionCallable] + +# 34| -1: [TypeMention] T +#-----| 2: (Parameters) +# 34| 0: [Parameter] a +# 34| -1: [TypeMention] T +# 34| 1: [Parameter] b +# 34| -1: [TypeMention] T +# 34| 4: [BlockStmt] {...} +# 34| 0: [ReturnStmt] return ...; +# 34| 0: [NullLiteral] null +# 38| [Class] ClassicExtensions +# 40| 4: [ExtensionMethod] M3 +# 40| -1: [TypeMention] bool +#-----| 2: (Parameters) +# 40| 0: [Parameter] s +# 40| -1: [TypeMention] string +# 40| 4: [IsExpr] ... is ... +# 40| 0: [ParameterAccess] access to parameter s +# 40| 1: [NotPatternExpr] not ... +# 40| 0: [ConstantPatternExpr,NullLiteral] null +# 43| [Class] C +# 45| 6: [Method] CallingExtensions +# 45| -1: [TypeMention] Void +# 46| 4: [BlockStmt] {...} +# 47| 0: [LocalVariableDeclStmt] ... ...; +# 47| 0: [LocalVariableDeclAndInitExpr] String s = ... +# 47| -1: [TypeMention] string +# 47| 0: [LocalVariableAccess] access to local variable s +# 47| 1: [StringLiteralUtf16] "Hello World." +# 50| 1: [LocalVariableDeclStmt] ... ...; +# 50| 0: [LocalVariableDeclAndInitExpr] Boolean x11 = ... +# 50| -1: [TypeMention] bool +# 50| 0: [LocalVariableAccess] access to local variable x11 +# 50| 1: [ExtensionPropertyCall] access to property Prop1 +# 50| -1: [LocalVariableAccess] access to local variable s +# 51| 2: [LocalVariableDeclStmt] ... ...; +# 51| 0: [LocalVariableDeclAndInitExpr] Boolean x12 = ... +# 51| -1: [TypeMention] bool +# 51| 0: [LocalVariableAccess] access to local variable x12 +# 51| 1: [ExtensionPropertyCall] access to property Prop2 +# 51| -1: [LocalVariableAccess] access to local variable s +# 52| 3: [ExprStmt] ...; +# 52| 0: [AssignExpr] ... = ... +# 52| 0: [ExtensionPropertyCall] access to property Prop2 +# 52| -1: [LocalVariableAccess] access to local variable s +# 52| 1: [BoolLiteral] true +# 53| 4: [LocalVariableDeclStmt] ... ...; +# 53| 0: [LocalVariableDeclAndInitExpr] Boolean x13 = ... +# 53| -1: [TypeMention] bool +# 53| 0: [LocalVariableAccess] access to local variable x13 +# 53| 1: [ExtensionPropertyCall] access to property StaticProp1 +# 53| -1: [TypeAccess] access to type String +# 53| 0: [TypeMention] string +# 54| 5: [LocalVariableDeclStmt] ... ...; +# 54| 0: [LocalVariableDeclAndInitExpr] Boolean x14 = ... +# 54| -1: [TypeMention] bool +# 54| 0: [LocalVariableAccess] access to local variable x14 +# 54| 1: [ExtensionPropertyCall] access to property StaticProp +# 54| -1: [TypeAccess] access to type Object +# 54| 0: [TypeMention] object +# 57| 6: [LocalVariableDeclStmt] ... ...; +# 57| 0: [LocalVariableDeclAndInitExpr] Boolean x21 = ... +# 57| -1: [TypeMention] bool +# 57| 0: [LocalVariableAccess] access to local variable x21 +# 57| 1: [MethodCall] call to method M1 +# 57| -1: [LocalVariableAccess] access to local variable s +# 58| 7: [LocalVariableDeclStmt] ... ...; +# 58| 0: [LocalVariableDeclAndInitExpr] String x22 = ... +# 58| -1: [TypeMention] string +# 58| 0: [LocalVariableAccess] access to local variable x22 +# 58| 1: [MethodCall] call to method M2 +# 58| -1: [LocalVariableAccess] access to local variable s +# 58| 0: [StringLiteralUtf16] "!!!" +# 59| 8: [LocalVariableDeclStmt] ... ...; +# 59| 0: [LocalVariableDeclAndInitExpr] Int32 x23 = ... +# 59| -1: [TypeMention] int +# 59| 0: [LocalVariableAccess] access to local variable x23 +# 59| 1: [MethodCall] call to method StaticM1 +# 59| -1: [TypeAccess] access to type String +# 59| 0: [TypeMention] string +# 60| 9: [LocalVariableDeclStmt] ... ...; +# 60| 0: [LocalVariableDeclAndInitExpr] Int32 x24 = ... +# 60| -1: [TypeMention] int +# 60| 0: [LocalVariableAccess] access to local variable x24 +# 60| 1: [MethodCall] call to method StaticM2 +# 60| -1: [TypeAccess] access to type String +# 60| 0: [TypeMention] string +# 60| 0: [LocalVariableAccess] access to local variable s +# 61| 10: [LocalVariableDeclStmt] ... ...; +# 61| 0: [LocalVariableDeclAndInitExpr] Int32 x25 = ... +# 61| -1: [TypeMention] int +# 61| 0: [LocalVariableAccess] access to local variable x25 +# 61| 1: [MethodCall] call to method StaticObjectM1 +# 61| -1: [TypeAccess] access to type Object +# 61| 0: [TypeMention] object +# 62| 11: [LocalVariableDeclStmt] ... ...; +# 62| 0: [LocalVariableDeclAndInitExpr] Int32 x26 = ... +# 62| -1: [TypeMention] int +# 62| 0: [LocalVariableAccess] access to local variable x26 +# 62| 1: [MethodCall] call to method StaticObjectM2 +# 62| -1: [TypeAccess] access to type Object +# 62| 0: [TypeMention] object +# 62| 0: [LocalVariableAccess] access to local variable s +# 65| 12: [LocalVariableDeclStmt] ... ...; +# 65| 0: [LocalVariableDeclAndInitExpr] String x30 = ... +# 65| -1: [TypeMention] string +# 65| 0: [LocalVariableAccess] access to local variable x30 +# 65| 1: [ExtensionOperatorCall] call to operator * +# 65| 0: [IntLiteral] 3 +# 65| 1: [LocalVariableAccess] access to local variable s +# 68| 13: [LocalVariableDeclStmt] ... ...; +# 68| 0: [LocalVariableDeclAndInitExpr] Boolean y = ... +# 68| -1: [TypeMention] bool +# 68| 0: [LocalVariableAccess] access to local variable y +# 68| 1: [MethodCall] call to method M3 +# 68| -1: [LocalVariableAccess] access to local variable s +# 71| 14: [ExprStmt] ...; +# 71| 0: [MethodCall] call to method M1 +# 71| -1: [TypeAccess] access to type MyExtensions +# 71| 0: [TypeMention] MyExtensions +# 71| 0: [LocalVariableAccess] access to local variable s +# 72| 15: [ExprStmt] ...; +# 72| 0: [MethodCall] call to method M2 +# 72| -1: [TypeAccess] access to type MyExtensions +# 72| 0: [TypeMention] MyExtensions +# 72| 0: [LocalVariableAccess] access to local variable s +# 72| 1: [StringLiteralUtf16] "!!!" +# 73| 16: [ExprStmt] ...; +# 73| 0: [MethodCall] call to method StaticM1 +# 73| -1: [TypeAccess] access to type MyExtensions +# 73| 0: [TypeMention] MyExtensions +# 74| 17: [ExprStmt] ...; +# 74| 0: [MethodCall] call to method StaticM2 +# 74| -1: [TypeAccess] access to type MyExtensions +# 74| 0: [TypeMention] MyExtensions +# 74| 0: [LocalVariableAccess] access to local variable s +# 75| 18: [ExprStmt] ...; +# 75| 0: [MethodCall] call to method StaticObjectM1 +# 75| -1: [TypeAccess] access to type MyExtensions +# 75| 0: [TypeMention] MyExtensions +# 76| 19: [ExprStmt] ...; +# 76| 0: [MethodCall] call to method StaticObjectM2 +# 76| -1: [TypeAccess] access to type MyExtensions +# 76| 0: [TypeMention] MyExtensions +# 76| 0: [LocalVariableAccess] access to local variable s +# 79| 20: [ExprStmt] ...; +# 79| 0: [ExtensionOperatorCall] call to operator * +# 79| -1: [TypeAccess] access to type MyExtensions +# 79| 0: [TypeMention] MyExtensions +# 79| 0: [IntLiteral] 3 +# 79| 1: [LocalVariableAccess] access to local variable s +# 82| 21: [ExprStmt] ...; +# 82| 0: [MethodCall] call to extension accessor get_Prop1 +# 82| -1: [TypeAccess] access to type MyExtensions +# 82| 0: [TypeMention] MyExtensions +# 82| 0: [LocalVariableAccess] access to local variable s +# 83| 22: [ExprStmt] ...; +# 83| 0: [MethodCall] call to extension accessor get_Prop2 +# 83| -1: [TypeAccess] access to type MyExtensions +# 83| 0: [TypeMention] MyExtensions +# 83| 0: [LocalVariableAccess] access to local variable s +# 84| 23: [ExprStmt] ...; +# 84| 0: [MethodCall] call to extension accessor set_Prop2 +# 84| -1: [TypeAccess] access to type MyExtensions +# 84| 0: [TypeMention] MyExtensions +# 84| 0: [LocalVariableAccess] access to local variable s +# 84| 1: [BoolLiteral] false +# 85| 24: [ExprStmt] ...; +# 85| 0: [MethodCall] call to extension accessor get_StaticProp +# 85| -1: [TypeAccess] access to type MyExtensions +# 85| 0: [TypeMention] MyExtensions +# 88| 7: [Method] CallingGenericExtensions +# 88| -1: [TypeMention] Void +# 89| 4: [BlockStmt] {...} +# 90| 0: [LocalVariableDeclStmt] ... ...; +# 90| 0: [LocalVariableDeclAndInitExpr] String s = ... +# 90| -1: [TypeMention] string +# 90| 0: [LocalVariableAccess] access to local variable s +# 90| 1: [StringLiteralUtf16] "Hello Generic World." +# 91| 1: [LocalVariableDeclStmt] ... ...; +# 91| 0: [LocalVariableDeclAndInitExpr] Object o = ... +# 91| -1: [TypeMention] object +# 91| 0: [LocalVariableAccess] access to local variable o +# 91| 1: [ObjectCreation] object creation of type Object +# 91| 0: [TypeMention] object +# 94| 2: [ExprStmt] ...; +# 94| 0: [MethodCall] call to method GenericM1 +# 94| -1: [LocalVariableAccess] access to local variable o +# 95| 3: [ExprStmt] ...; +# 95| 0: [MethodCall] call to method GenericM1 +# 95| -1: [LocalVariableAccess] access to local variable s +# 98| 4: [ExprStmt] ...; +# 98| 0: [MethodCall] call to method GenericM1 +# 98| -1: [TypeAccess] access to type MyExtensions +# 98| 0: [TypeMention] MyExtensions +# 98| 0: [LocalVariableAccess] access to local variable o +# 99| 5: [ExprStmt] ...; +# 99| 0: [MethodCall] call to method GenericM1 +# 99| -1: [TypeAccess] access to type MyExtensions +# 99| 0: [TypeMention] MyExtensions +# 99| 0: [LocalVariableAccess] access to local variable s +# 101| 6: [ExprStmt] ...; +# 101| 0: [MethodCall] call to method GenericM2 +# 101| -1: [LocalVariableAccess] access to local variable o +# 101| 0: [IntLiteral] 42 +# 102| 7: [ExprStmt] ...; +# 102| 0: [MethodCall] call to method GenericM2 +# 102| -1: [TypeAccess] access to type MyExtensions +# 102| 0: [TypeMention] MyExtensions +# 102| 0: [LocalVariableAccess] access to local variable o +# 102| 1: [IntLiteral] 42 +# 104| 8: [ExprStmt] ...; +# 104| 0: [MethodCall] call to method StringGenericM1 +# 104| -1: [LocalVariableAccess] access to local variable s +# 104| 0: [IntLiteral] 7 +# 104| 1: [ObjectCreation] object creation of type Object +# 104| 0: [TypeMention] object +# 105| 9: [ExprStmt] ...; +# 105| 0: [MethodCall] call to method StringGenericM1 +# 105| -1: [TypeAccess] access to type MyExtensions +# 105| 0: [TypeMention] MyExtensions +# 105| 0: [LocalVariableAccess] access to local variable s +# 105| 1: [StringLiteralUtf16] "test" +# 105| 2: [ObjectCreation] object creation of type Object +# 105| 0: [TypeMention] object diff --git a/csharp/ql/test/library-tests/extension/PrintAst.qlref b/csharp/ql/test/library-tests/extension/PrintAst.qlref new file mode 100644 index 000000000000..f867dd01f9f8 --- /dev/null +++ b/csharp/ql/test/library-tests/extension/PrintAst.qlref @@ -0,0 +1 @@ +shared/PrintAst.ql \ No newline at end of file diff --git a/csharp/ql/test/library-tests/extension/extensionTypes.cs b/csharp/ql/test/library-tests/extension/extensionTypes.cs new file mode 100644 index 000000000000..06047af375af --- /dev/null +++ b/csharp/ql/test/library-tests/extension/extensionTypes.cs @@ -0,0 +1,30 @@ +using System; +using System.Diagnostics.CodeAnalysis; + +public static class MyExtensionTypes +{ + extension([NotNull] string s) + { + public void M11() { } + } + extension(ref readonly int i1) + { + public void M21() { } + } + extension(in int i2) + { + public void M31() { } + } + extension(ref int i3) + { + public void M41() { } + } + extension(string? s) + { + public void M51() { } + } + extension([NotNullWhen(true)] T1 t1) where T1 : class + { + public void M61(object o, T2 t2) { } + } +} diff --git a/csharp/ql/test/library-tests/extension/extensionTypes.expected b/csharp/ql/test/library-tests/extension/extensionTypes.expected new file mode 100644 index 000000000000..b27ff095a4be --- /dev/null +++ b/csharp/ql/test/library-tests/extension/extensionTypes.expected @@ -0,0 +1,37 @@ +extensionTypeReceiverParameter +| extensionTypes.cs:6:5:9:5 | extension(String) | extensionTypes.cs:6:32:6:32 | s | +| extensionTypes.cs:10:5:13:5 | extension(Int32) | extensionTypes.cs:10:32:10:33 | i1 | +| extensionTypes.cs:14:5:17:5 | extension(Int32) | extensionTypes.cs:14:22:14:23 | i2 | +| extensionTypes.cs:18:5:21:5 | extension(Int32) | extensionTypes.cs:18:23:18:24 | i3 | +| extensionTypes.cs:22:5:25:5 | extension(String) | extensionTypes.cs:22:23:22:23 | s | +| extensionTypes.cs:26:5:29:5 | extension(T1)`1 | extensionTypes.cs:26:42:26:43 | t1 | +| extensions.cs:6:5:17:5 | extension(String) | extensions.cs:6:22:6:22 | s | +| extensions.cs:26:5:35:5 | extension(Object) | extensions.cs:26:20:26:20 | t | +| extensions.cs:26:5:35:5 | extension(String) | extensions.cs:26:20:26:20 | t | +| extensions.cs:26:5:35:5 | extension(T)`1 | extensions.cs:26:20:26:20 | t | +extensionTypeExtendedType +| extensionTypes.cs:6:5:9:5 | extension(String) | string | +| extensionTypes.cs:10:5:13:5 | extension(Int32) | int | +| extensionTypes.cs:14:5:17:5 | extension(Int32) | int | +| extensionTypes.cs:18:5:21:5 | extension(Int32) | int | +| extensionTypes.cs:22:5:25:5 | extension(String) | string | +| extensionTypes.cs:26:5:29:5 | extension(T1)`1 | T1 | +| extensions.cs:6:5:17:5 | extension(String) | string | +| extensions.cs:19:5:24:5 | extension(Object) | object | +| extensions.cs:26:5:35:5 | extension(Object) | object | +| extensions.cs:26:5:35:5 | extension(String) | string | +| extensions.cs:26:5:35:5 | extension(T)`1 | T | +extensionTypeReceiverParameterAttribute +| extensionTypes.cs:6:5:9:5 | extension(String) | extensionTypes.cs:6:32:6:32 | s | extensionTypes.cs:6:16:6:22 | [NotNull(...)] | +| extensionTypes.cs:26:5:29:5 | extension(T1)`1 | extensionTypes.cs:26:42:26:43 | t1 | extensionTypes.cs:26:20:26:30 | [NotNullWhen(...)] | +extensionTypeReceiverParameterModifier +| extensionTypes.cs:10:5:13:5 | extension(Int32) | extensionTypes.cs:10:32:10:33 | i1 | ref readonly | +| extensionTypes.cs:14:5:17:5 | extension(Int32) | extensionTypes.cs:14:22:14:23 | i2 | in | +| extensionTypes.cs:18:5:21:5 | extension(Int32) | extensionTypes.cs:18:23:18:24 | i3 | ref | +extensionTypeParameterConstraints +| extensionTypes.cs:26:5:29:5 | extension(T1)`1 | extensionTypes.cs:26:15:26:16 | T1 | file://:0:0:0:0 | where T1: ... | +| extensions.cs:26:5:35:5 | extension(T)`1 | extensions.cs:26:15:26:15 | T | file://:0:0:0:0 | where T: ... | +syntheticParameterModifier +| extensionTypes.cs:10:5:13:5 | extension(Int32) | extensionTypes.cs:12:21:12:23 | M21 | extensionTypes.cs:10:32:10:33 | i1 | ref readonly | +| extensionTypes.cs:14:5:17:5 | extension(Int32) | extensionTypes.cs:16:21:16:23 | M31 | extensionTypes.cs:14:22:14:23 | i2 | in | +| extensionTypes.cs:18:5:21:5 | extension(Int32) | extensionTypes.cs:20:21:20:23 | M41 | extensionTypes.cs:18:23:18:24 | i3 | ref | diff --git a/csharp/ql/test/library-tests/extension/extensionTypes.ql b/csharp/ql/test/library-tests/extension/extensionTypes.ql new file mode 100644 index 000000000000..f4d3fe5bbd53 --- /dev/null +++ b/csharp/ql/test/library-tests/extension/extensionTypes.ql @@ -0,0 +1,56 @@ +import csharp + +private predicate inTestFile(ExtensionType et) { + et.getFile().getBaseName() = ["extensions.cs", "extensionTypes.cs"] +} + +private string getModifier(Parameter p) { + p.isIn() and result = "in" + or + p.isRef() and result = "ref" + or + p.isReadonlyRef() and result = "ref readonly" +} + +query predicate extensionTypeReceiverParameter(ExtensionType et, Parameter p) { + inTestFile(et) and + p = et.getReceiverParameter() +} + +query predicate extensionTypeExtendedType(ExtensionType et, string t) { + inTestFile(et) and + t = et.getExtendedType().toStringWithTypes() +} + +query predicate extensionTypeReceiverParameterAttribute(ExtensionType et, Parameter p, Attribute a) { + inTestFile(et) and + et.getReceiverParameter() = p and + p.getAnAttribute() = a +} + +query predicate extensionTypeReceiverParameterModifier( + ExtensionType et, Parameter p, string modifier +) { + inTestFile(et) and + et.getReceiverParameter() = p and + modifier = getModifier(p) +} + +query predicate extensionTypeParameterConstraints( + UnboundGeneric ug, TypeParameter tp, TypeParameterConstraints c +) { + inTestFile(ug) and + ug instanceof ExtensionType and + tp = ug.getATypeParameter() and + tp.getConstraints() = c +} + +query predicate syntheticParameterModifier( + ExtensionType et, ExtensionMethod em, Parameter p, string modifier +) { + inTestFile(et) and + em.getDeclaringType() = et and + p = em.getParameter(0) and + not em.isStatic() and + modifier = getModifier(p) +} diff --git a/csharp/ql/test/library-tests/extension/extensions.cs b/csharp/ql/test/library-tests/extension/extensions.cs new file mode 100644 index 000000000000..1117a98f8a07 --- /dev/null +++ b/csharp/ql/test/library-tests/extension/extensions.cs @@ -0,0 +1,107 @@ +using System; +using System.Collections.Generic; + +public static class MyExtensions +{ + extension(string s) + { + public bool Prop1 => s.Length > 0; + public bool Prop2 { get { return true; } set { } } + public static bool StaticProp1 { get { return false; } } + public bool M1() => s is not null; + public string M2(string other) { return s + other; } + public static int StaticM1() { return 0; } + public static int StaticM2(string x) { return x.Length; } + public static string operator *(int a, string b) { return ""; } + public T StringGenericM1(T t, object o) { return t; } + } + + extension(object) + { + public static int StaticObjectM1() { return 0; } + public static int StaticObjectM2(string s) { return s.Length; } + public static bool StaticProp => true; + } + + extension(T t) where T : class + { + public bool GenericProp1 => t is not null; + public bool GenericProp2 { get { return true; } set { } } + public bool GenericM1() => t is not null; + public void GenericM2(S other) { } + public void GenericStaticM1() { } + public static void GenericStaticM2(S other) { } + public static T operator +(T a, T b) { return null; } + } +} + +public static class ClassicExtensions +{ + public static bool M3(this string s) => s is not null; +} + +public class C +{ + public static void CallingExtensions() + { + var s = "Hello World."; + + // Calling the extensions properties + var x11 = s.Prop1; + var x12 = s.Prop2; + s.Prop2 = true; + var x13 = string.StaticProp1; + var x14 = object.StaticProp; + + // Calling the extensions methods. + var x21 = s.M1(); + var x22 = s.M2("!!!"); + var x23 = string.StaticM1(); + var x24 = string.StaticM2(s); + var x25 = object.StaticObjectM1(); + var x26 = object.StaticObjectM2(s); + + // Calling the extension operator. + var x30 = 3 * s; + + // Calling the classic extension method. + var y = s.M3(); + + // Calling the compiler generated static extension methods. + MyExtensions.M1(s); + MyExtensions.M2(s, "!!!"); + MyExtensions.StaticM1(); + MyExtensions.StaticM2(s); + MyExtensions.StaticObjectM1(); + MyExtensions.StaticObjectM2(s); + + // Calling the compiler generated operator method. + MyExtensions.op_Multiply(3, s); + + // Calling the compiler generated methods used by the extension property accessors. + MyExtensions.get_Prop1(s); + MyExtensions.get_Prop2(s); + MyExtensions.set_Prop2(s, false); + MyExtensions.get_StaticProp(); + } + + public static void CallingGenericExtensions() + { + var s = "Hello Generic World."; + var o = new object(); + + // Calling generic extension method + o.GenericM1(); + s.GenericM1(); + + // Calling the compiler generated static extension methods. + MyExtensions.GenericM1(o); + MyExtensions.GenericM1(s); + + o.GenericM2(42); + MyExtensions.GenericM2(o, 42); + + s.StringGenericM1(7, new object()); + MyExtensions.StringGenericM1(s, "test", new object()); + } +} diff --git a/csharp/ql/test/library-tests/extension/extensions.expected b/csharp/ql/test/library-tests/extension/extensions.expected new file mode 100644 index 000000000000..45b557a96352 --- /dev/null +++ b/csharp/ql/test/library-tests/extension/extensions.expected @@ -0,0 +1,111 @@ +extensionMethodCallArgument +| extensions.cs:57:19:57:24 | call to method M1 | extensions.cs:11:21:11:22 | M1 | extensions.cs:6:22:6:22 | s | 0 | extensions.cs:57:19:57:19 | access to local variable s | +| extensions.cs:58:19:58:29 | call to method M2 | extensions.cs:12:23:12:24 | M2 | extensions.cs:6:22:6:22 | s | 0 | extensions.cs:58:19:58:19 | access to local variable s | +| extensions.cs:58:19:58:29 | call to method M2 | extensions.cs:12:23:12:24 | M2 | extensions.cs:12:33:12:37 | other | 1 | extensions.cs:58:24:58:28 | "!!!" | +| extensions.cs:60:19:60:36 | call to method StaticM2 | extensions.cs:14:27:14:34 | StaticM2 | extensions.cs:14:43:14:43 | x | 0 | extensions.cs:60:35:60:35 | access to local variable s | +| extensions.cs:62:19:62:42 | call to method StaticObjectM2 | extensions.cs:22:27:22:40 | StaticObjectM2 | extensions.cs:22:49:22:49 | s | 0 | extensions.cs:62:41:62:41 | access to local variable s | +| extensions.cs:68:17:68:22 | call to method M3 | extensions.cs:40:24:40:25 | M3 | extensions.cs:40:39:40:39 | s | 0 | extensions.cs:68:17:68:17 | access to local variable s | +| extensions.cs:71:9:71:26 | call to method M1 | extensions.cs:11:21:11:22 | M1 | extensions.cs:6:22:6:22 | s | 0 | extensions.cs:71:25:71:25 | access to local variable s | +| extensions.cs:72:9:72:33 | call to method M2 | extensions.cs:12:23:12:24 | M2 | extensions.cs:6:22:6:22 | s | 0 | extensions.cs:72:25:72:25 | access to local variable s | +| extensions.cs:72:9:72:33 | call to method M2 | extensions.cs:12:23:12:24 | M2 | extensions.cs:12:33:12:37 | other | 1 | extensions.cs:72:28:72:32 | "!!!" | +| extensions.cs:74:9:74:32 | call to method StaticM2 | extensions.cs:14:27:14:34 | StaticM2 | extensions.cs:14:43:14:43 | x | 0 | extensions.cs:74:31:74:31 | access to local variable s | +| extensions.cs:76:9:76:38 | call to method StaticObjectM2 | extensions.cs:22:27:22:40 | StaticObjectM2 | extensions.cs:22:49:22:49 | s | 0 | extensions.cs:76:37:76:37 | access to local variable s | +| extensions.cs:94:9:94:21 | call to method GenericM1 | extensions.cs:30:21:30:29 | GenericM1 | extensions.cs:26:20:26:20 | t | 0 | extensions.cs:94:9:94:9 | access to local variable o | +| extensions.cs:95:9:95:21 | call to method GenericM1 | extensions.cs:30:21:30:29 | GenericM1 | extensions.cs:26:20:26:20 | t | 0 | extensions.cs:95:9:95:9 | access to local variable s | +| extensions.cs:98:9:98:33 | call to method GenericM1 | extensions.cs:30:21:30:29 | GenericM1 | extensions.cs:26:20:26:20 | t | 0 | extensions.cs:98:32:98:32 | access to local variable o | +| extensions.cs:99:9:99:33 | call to method GenericM1 | extensions.cs:30:21:30:29 | GenericM1 | extensions.cs:26:20:26:20 | t | 0 | extensions.cs:99:32:99:32 | access to local variable s | +| extensions.cs:101:9:101:23 | call to method GenericM2 | extensions.cs:31:21:31:32 | GenericM2 | extensions.cs:26:20:26:20 | t | 0 | extensions.cs:101:9:101:9 | access to local variable o | +| extensions.cs:101:9:101:23 | call to method GenericM2 | extensions.cs:31:21:31:32 | GenericM2 | extensions.cs:31:36:31:40 | other | 1 | extensions.cs:101:21:101:22 | 42 | +| extensions.cs:102:9:102:37 | call to method GenericM2 | extensions.cs:31:21:31:32 | GenericM2 | extensions.cs:26:20:26:20 | t | 0 | extensions.cs:102:32:102:32 | access to local variable o | +| extensions.cs:102:9:102:37 | call to method GenericM2 | extensions.cs:31:21:31:32 | GenericM2 | extensions.cs:31:36:31:40 | other | 1 | extensions.cs:102:35:102:36 | 42 | +| extensions.cs:104:9:104:47 | call to method StringGenericM1 | extensions.cs:16:18:16:35 | StringGenericM1 | extensions.cs:6:22:6:22 | s | 0 | extensions.cs:104:9:104:9 | access to local variable s | +| extensions.cs:104:9:104:47 | call to method StringGenericM1 | extensions.cs:16:18:16:35 | StringGenericM1 | extensions.cs:16:39:16:39 | t | 1 | extensions.cs:104:32:104:32 | 7 | +| extensions.cs:104:9:104:47 | call to method StringGenericM1 | extensions.cs:16:18:16:35 | StringGenericM1 | extensions.cs:16:49:16:49 | o | 2 | extensions.cs:104:35:104:46 | object creation of type Object | +| extensions.cs:105:9:105:69 | call to method StringGenericM1 | extensions.cs:16:18:16:35 | StringGenericM1 | extensions.cs:6:22:6:22 | s | 0 | extensions.cs:105:46:105:46 | access to local variable s | +| extensions.cs:105:9:105:69 | call to method StringGenericM1 | extensions.cs:16:18:16:35 | StringGenericM1 | extensions.cs:16:39:16:39 | t | 1 | extensions.cs:105:49:105:54 | "test" | +| extensions.cs:105:9:105:69 | call to method StringGenericM1 | extensions.cs:16:18:16:35 | StringGenericM1 | extensions.cs:16:49:16:49 | o | 2 | extensions.cs:105:57:105:68 | object creation of type Object | +extensionMethodCalls +| extensions.cs:57:19:57:24 | call to method M1 | extensions.cs:11:21:11:22 | M1 | extensions.cs:6:5:17:5 | extension(String) | MyExtensions+extension(System.String).M1 | +| extensions.cs:58:19:58:29 | call to method M2 | extensions.cs:12:23:12:24 | M2 | extensions.cs:6:5:17:5 | extension(String) | MyExtensions+extension(System.String).M2 | +| extensions.cs:59:19:59:35 | call to method StaticM1 | extensions.cs:13:27:13:34 | StaticM1 | extensions.cs:6:5:17:5 | extension(String) | MyExtensions+extension(System.String).StaticM1 | +| extensions.cs:60:19:60:36 | call to method StaticM2 | extensions.cs:14:27:14:34 | StaticM2 | extensions.cs:6:5:17:5 | extension(String) | MyExtensions+extension(System.String).StaticM2 | +| extensions.cs:61:19:61:41 | call to method StaticObjectM1 | extensions.cs:21:27:21:40 | StaticObjectM1 | extensions.cs:19:5:24:5 | extension(Object) | MyExtensions+extension(System.Object).StaticObjectM1 | +| extensions.cs:62:19:62:42 | call to method StaticObjectM2 | extensions.cs:22:27:22:40 | StaticObjectM2 | extensions.cs:19:5:24:5 | extension(Object) | MyExtensions+extension(System.Object).StaticObjectM2 | +| extensions.cs:68:17:68:22 | call to method M3 | extensions.cs:40:24:40:25 | M3 | extensions.cs:38:21:38:37 | ClassicExtensions | ClassicExtensions.M3 | +| extensions.cs:71:9:71:26 | call to method M1 | extensions.cs:11:21:11:22 | M1 | extensions.cs:6:5:17:5 | extension(String) | MyExtensions+extension(System.String).M1 | +| extensions.cs:72:9:72:33 | call to method M2 | extensions.cs:12:23:12:24 | M2 | extensions.cs:6:5:17:5 | extension(String) | MyExtensions+extension(System.String).M2 | +| extensions.cs:73:9:73:31 | call to method StaticM1 | extensions.cs:13:27:13:34 | StaticM1 | extensions.cs:6:5:17:5 | extension(String) | MyExtensions+extension(System.String).StaticM1 | +| extensions.cs:74:9:74:32 | call to method StaticM2 | extensions.cs:14:27:14:34 | StaticM2 | extensions.cs:6:5:17:5 | extension(String) | MyExtensions+extension(System.String).StaticM2 | +| extensions.cs:75:9:75:37 | call to method StaticObjectM1 | extensions.cs:21:27:21:40 | StaticObjectM1 | extensions.cs:19:5:24:5 | extension(Object) | MyExtensions+extension(System.Object).StaticObjectM1 | +| extensions.cs:76:9:76:38 | call to method StaticObjectM2 | extensions.cs:22:27:22:40 | StaticObjectM2 | extensions.cs:19:5:24:5 | extension(Object) | MyExtensions+extension(System.Object).StaticObjectM2 | +| extensions.cs:94:9:94:21 | call to method GenericM1 | extensions.cs:30:21:30:29 | GenericM1 | extensions.cs:26:5:35:5 | extension(Object) | MyExtensions+extension(System.Object).GenericM1 | +| extensions.cs:95:9:95:21 | call to method GenericM1 | extensions.cs:30:21:30:29 | GenericM1 | extensions.cs:26:5:35:5 | extension(String) | MyExtensions+extension(System.String).GenericM1 | +| extensions.cs:98:9:98:33 | call to method GenericM1 | extensions.cs:30:21:30:29 | GenericM1 | extensions.cs:26:5:35:5 | extension(Object) | MyExtensions+extension(System.Object).GenericM1 | +| extensions.cs:99:9:99:33 | call to method GenericM1 | extensions.cs:30:21:30:29 | GenericM1 | extensions.cs:26:5:35:5 | extension(String) | MyExtensions+extension(System.String).GenericM1 | +| extensions.cs:101:9:101:23 | call to method GenericM2 | extensions.cs:31:21:31:32 | GenericM2 | extensions.cs:26:5:35:5 | extension(Object) | MyExtensions+extension(System.Object).GenericM2 | +| extensions.cs:102:9:102:37 | call to method GenericM2 | extensions.cs:31:21:31:32 | GenericM2 | extensions.cs:26:5:35:5 | extension(Object) | MyExtensions+extension(System.Object).GenericM2 | +| extensions.cs:104:9:104:47 | call to method StringGenericM1 | extensions.cs:16:18:16:35 | StringGenericM1 | extensions.cs:6:5:17:5 | extension(String) | MyExtensions+extension(System.String).StringGenericM1 | +| extensions.cs:105:9:105:69 | call to method StringGenericM1 | extensions.cs:16:18:16:35 | StringGenericM1 | extensions.cs:6:5:17:5 | extension(String) | MyExtensions+extension(System.String).StringGenericM1 | +extensionParameter +| extensions.cs:11:21:11:22 | M1 | extensions.cs:6:22:6:22 | s | 0 | string | extensions.cs:6:22:6:22 | s | +| extensions.cs:12:23:12:24 | M2 | extensions.cs:6:22:6:22 | s | 0 | string | extensions.cs:6:22:6:22 | s | +| extensions.cs:12:23:12:24 | M2 | extensions.cs:12:33:12:37 | other | 1 | string | extensions.cs:12:33:12:37 | other | +| extensions.cs:14:27:14:34 | StaticM2 | extensions.cs:14:43:14:43 | x | 0 | string | extensions.cs:14:43:14:43 | x | +| extensions.cs:16:18:16:35 | StringGenericM1 | extensions.cs:6:22:6:22 | s | 0 | string | extensions.cs:6:22:6:22 | s | +| extensions.cs:16:18:16:35 | StringGenericM1 | extensions.cs:16:39:16:39 | t | 1 | int | extensions.cs:16:39:16:39 | t | +| extensions.cs:16:18:16:35 | StringGenericM1 | extensions.cs:16:49:16:49 | o | 2 | object | extensions.cs:16:49:16:49 | o | +| extensions.cs:16:18:16:35 | StringGenericM1 | extensions.cs:6:22:6:22 | s | 0 | string | extensions.cs:6:22:6:22 | s | +| extensions.cs:16:18:16:35 | StringGenericM1 | extensions.cs:16:39:16:39 | t | 1 | string | extensions.cs:16:39:16:39 | t | +| extensions.cs:16:18:16:35 | StringGenericM1 | extensions.cs:16:49:16:49 | o | 2 | object | extensions.cs:16:49:16:49 | o | +| extensions.cs:16:18:16:35 | StringGenericM1`1 | extensions.cs:6:22:6:22 | s | 0 | string | extensions.cs:6:22:6:22 | s | +| extensions.cs:16:18:16:35 | StringGenericM1`1 | extensions.cs:16:39:16:39 | t | 1 | T | extensions.cs:16:39:16:39 | t | +| extensions.cs:16:18:16:35 | StringGenericM1`1 | extensions.cs:16:49:16:49 | o | 2 | object | extensions.cs:16:49:16:49 | o | +| extensions.cs:22:27:22:40 | StaticObjectM2 | extensions.cs:22:49:22:49 | s | 0 | string | extensions.cs:22:49:22:49 | s | +| extensions.cs:30:21:30:29 | GenericM1 | extensions.cs:26:20:26:20 | t | 0 | T | extensions.cs:26:20:26:20 | t | +| extensions.cs:30:21:30:29 | GenericM1 | extensions.cs:26:20:26:20 | t | 0 | object | extensions.cs:26:20:26:20 | t | +| extensions.cs:30:21:30:29 | GenericM1 | extensions.cs:26:20:26:20 | t | 0 | string | extensions.cs:26:20:26:20 | t | +| extensions.cs:31:21:31:32 | GenericM2 | extensions.cs:26:20:26:20 | t | 0 | object | extensions.cs:26:20:26:20 | t | +| extensions.cs:31:21:31:32 | GenericM2 | extensions.cs:31:36:31:40 | other | 1 | int | extensions.cs:31:36:31:40 | other | +| extensions.cs:31:21:31:32 | GenericM2`1 | extensions.cs:26:20:26:20 | t | 0 | T | extensions.cs:26:20:26:20 | t | +| extensions.cs:31:21:31:32 | GenericM2`1 | extensions.cs:26:20:26:20 | t | 0 | object | extensions.cs:26:20:26:20 | t | +| extensions.cs:31:21:31:32 | GenericM2`1 | extensions.cs:26:20:26:20 | t | 0 | string | extensions.cs:26:20:26:20 | t | +| extensions.cs:31:21:31:32 | GenericM2`1 | extensions.cs:31:36:31:40 | other | 1 | S | extensions.cs:31:36:31:40 | other | +| extensions.cs:31:21:31:32 | GenericM2`1 | extensions.cs:31:36:31:40 | other | 1 | S | extensions.cs:31:36:31:40 | other | +| extensions.cs:31:21:31:32 | GenericM2`1 | extensions.cs:31:36:31:40 | other | 1 | S | extensions.cs:31:36:31:40 | other | +| extensions.cs:32:21:32:35 | GenericStaticM1 | extensions.cs:26:20:26:20 | t | 0 | T | extensions.cs:26:20:26:20 | t | +| extensions.cs:32:21:32:35 | GenericStaticM1 | extensions.cs:26:20:26:20 | t | 0 | object | extensions.cs:26:20:26:20 | t | +| extensions.cs:32:21:32:35 | GenericStaticM1 | extensions.cs:26:20:26:20 | t | 0 | string | extensions.cs:26:20:26:20 | t | +| extensions.cs:33:28:33:45 | GenericStaticM2`1 | extensions.cs:33:49:33:53 | other | 0 | S | extensions.cs:33:49:33:53 | other | +| extensions.cs:33:28:33:45 | GenericStaticM2`1 | extensions.cs:33:49:33:53 | other | 0 | S | extensions.cs:33:49:33:53 | other | +| extensions.cs:33:28:33:45 | GenericStaticM2`1 | extensions.cs:33:49:33:53 | other | 0 | S | extensions.cs:33:49:33:53 | other | +| extensions.cs:40:24:40:25 | M3 | extensions.cs:40:39:40:39 | s | 0 | string | extensions.cs:40:39:40:39 | s | +extensionOperatorCallArgument +| extensions.cs:15:39:15:39 | * | extensions.cs:65:19:65:23 | call to operator * | extensions.cs:15:45:15:45 | a | 0 | extensions.cs:65:19:65:19 | 3 | +| extensions.cs:15:39:15:39 | * | extensions.cs:65:19:65:23 | call to operator * | extensions.cs:15:55:15:55 | b | 1 | extensions.cs:65:23:65:23 | access to local variable s | +| extensions.cs:15:39:15:39 | * | extensions.cs:79:9:79:38 | call to operator * | extensions.cs:15:45:15:45 | a | 0 | extensions.cs:79:34:79:34 | 3 | +| extensions.cs:15:39:15:39 | * | extensions.cs:79:9:79:38 | call to operator * | extensions.cs:15:55:15:55 | b | 1 | extensions.cs:79:37:79:37 | access to local variable s | +extensionOperatorCalls +| extensions.cs:65:19:65:23 | call to operator * | extensions.cs:15:39:15:39 | * | extensions.cs:6:5:17:5 | extension(String) | MyExtensions+extension(System.String).op_Multiply | +| extensions.cs:79:9:79:38 | call to operator * | extensions.cs:15:39:15:39 | * | extensions.cs:6:5:17:5 | extension(String) | MyExtensions+extension(System.String).op_Multiply | +extensionProperty +| extensions.cs:8:21:8:25 | Prop1 | extensions.cs:6:5:17:5 | extension(String) | +| extensions.cs:9:21:9:25 | Prop2 | extensions.cs:6:5:17:5 | extension(String) | +| extensions.cs:10:28:10:38 | StaticProp1 | extensions.cs:6:5:17:5 | extension(String) | +| extensions.cs:23:28:23:37 | StaticProp | extensions.cs:19:5:24:5 | extension(Object) | +| extensions.cs:28:21:28:32 | GenericProp1 | extensions.cs:26:5:35:5 | extension(Object) | +| extensions.cs:28:21:28:32 | GenericProp1 | extensions.cs:26:5:35:5 | extension(String) | +| extensions.cs:28:21:28:32 | GenericProp1 | extensions.cs:26:5:35:5 | extension(T)`1 | +| extensions.cs:29:21:29:32 | GenericProp2 | extensions.cs:26:5:35:5 | extension(Object) | +| extensions.cs:29:21:29:32 | GenericProp2 | extensions.cs:26:5:35:5 | extension(String) | +| extensions.cs:29:21:29:32 | GenericProp2 | extensions.cs:26:5:35:5 | extension(T)`1 | +extensionPropertyCall +| extensions.cs:50:19:50:25 | access to property Prop1 | extensions.cs:8:21:8:25 | Prop1 | extensions.cs:6:5:17:5 | extension(String) | MyExtensions+extension(System.String).Prop1 | +| extensions.cs:51:19:51:25 | access to property Prop2 | extensions.cs:9:21:9:25 | Prop2 | extensions.cs:6:5:17:5 | extension(String) | MyExtensions+extension(System.String).Prop2 | +| extensions.cs:52:9:52:15 | access to property Prop2 | extensions.cs:9:21:9:25 | Prop2 | extensions.cs:6:5:17:5 | extension(String) | MyExtensions+extension(System.String).Prop2 | +| extensions.cs:53:19:53:36 | access to property StaticProp1 | extensions.cs:10:28:10:38 | StaticProp1 | extensions.cs:6:5:17:5 | extension(String) | MyExtensions+extension(System.String).StaticProp1 | +| extensions.cs:54:19:54:35 | access to property StaticProp | extensions.cs:23:28:23:37 | StaticProp | extensions.cs:19:5:24:5 | extension(Object) | MyExtensions+extension(System.Object).StaticProp | +extensionAccessorCall +| extensions.cs:82:9:82:33 | call to extension accessor get_Prop1 | extensions.cs:8:30:8:41 | get_Prop1 | extensions.cs:8:21:8:25 | Prop1 | MyExtensions+extension(System.String).get_Prop1 | +| extensions.cs:83:9:83:33 | call to extension accessor get_Prop2 | extensions.cs:9:29:9:31 | get_Prop2 | extensions.cs:9:21:9:25 | Prop2 | MyExtensions+extension(System.String).get_Prop2 | +| extensions.cs:84:9:84:40 | call to extension accessor set_Prop2 | extensions.cs:9:50:9:52 | set_Prop2 | extensions.cs:9:21:9:25 | Prop2 | MyExtensions+extension(System.String).set_Prop2 | +| extensions.cs:85:9:85:37 | call to extension accessor get_StaticProp | extensions.cs:23:42:23:45 | get_StaticProp | extensions.cs:23:28:23:37 | StaticProp | MyExtensions+extension(System.Object).get_StaticProp | diff --git a/csharp/ql/test/library-tests/extension/extensions.ql b/csharp/ql/test/library-tests/extension/extensions.ql new file mode 100644 index 000000000000..03830c5851d0 --- /dev/null +++ b/csharp/ql/test/library-tests/extension/extensions.ql @@ -0,0 +1,69 @@ +import csharp + +query predicate extensionMethodCallArgument( + ExtensionMethodCall emc, ExtensionMethod em, Parameter p, int i, Expr e +) { + em.getFile().getBaseName() = "extensions.cs" and + emc.getTarget() = em and + em.getParameter(i) = p and + emc.getArgument(i) = e +} + +query predicate extensionMethodCalls( + ExtensionMethodCall emc, ExtensionMethod em, Type t, string type +) { + em.getFile().getBaseName() = "extensions.cs" and + emc.getTarget() = em and + em.getDeclaringType() = t and + em.getFullyQualifiedNameDebug() = type +} + +query predicate extensionParameter( + ExtensionMethod em, Parameter p, int i, string type, Parameter unbound +) { + em.getFile().getBaseName() = "extensions.cs" and + p = em.getParameter(i) and + type = p.getType().toStringWithTypes() and + unbound = p.getUnboundDeclaration() +} + +query predicate extensionOperatorCallArgument( + ExtensionOperator op, ExtensionOperatorCall opc, Parameter p, int pos, Expr e +) { + opc.getTarget() = op and + op.getFile().getBaseName() = "extensions.cs" and + p = op.getParameter(pos) and + e = opc.getArgument(pos) +} + +query predicate extensionOperatorCalls( + ExtensionOperatorCall opc, ExtensionOperator op, Type t, string type +) { + op.getFile().getBaseName() = "extensions.cs" and + opc.getTarget() = op and + op.getDeclaringType() = t and + op.getFullyQualifiedNameDebug() = type +} + +query predicate extensionProperty(ExtensionProperty p, Type t) { + p.getFile().getBaseName() = "extensions.cs" and + p.getDeclaringType() = t +} + +query predicate extensionPropertyCall( + ExtensionPropertyCall pc, ExtensionProperty p, Type t, string type +) { + p.getFile().getBaseName() = "extensions.cs" and + pc.getProperty() = p and + p.getDeclaringType() = t and + p.getFullyQualifiedNameDebug() = type +} + +query predicate extensionAccessorCall( + MethodCall m, ExtensionAccessor a, ExtensionProperty p, string type +) { + p.getFile().getBaseName() = "extensions.cs" and + (a.(Getter).getDeclaration() = p or a.(Setter).getDeclaration() = p) and + m.getTargetAccessor() = a and + a.getFullyQualifiedNameDebug() = type +} diff --git a/csharp/ql/test/library-tests/extension/options b/csharp/ql/test/library-tests/extension/options new file mode 100644 index 000000000000..77b22963f5c8 --- /dev/null +++ b/csharp/ql/test/library-tests/extension/options @@ -0,0 +1,2 @@ +semmle-extractor-options: /nostdlib /noconfig +semmle-extractor-options: --load-sources-from-project:${testdir}/../../resources/stubs/_frameworks/Microsoft.NETCore.App/Microsoft.NETCore.App.csproj diff --git a/csharp/ql/test/library-tests/obinit/ObInit.expected b/csharp/ql/test/library-tests/obinit/ObInit.expected index 38dd82686801..3d2c7df895fa 100644 --- a/csharp/ql/test/library-tests/obinit/ObInit.expected +++ b/csharp/ql/test/library-tests/obinit/ObInit.expected @@ -6,11 +6,13 @@ call | obinit.cs:9:16:9:16 | call to method | obinit.cs:2:18:2:18 | | obinit.cs:9:16:9:16 | A | | obinit.cs:15:16:15:16 | call to method | obinit.cs:14:18:14:18 | | obinit.cs:15:16:15:16 | B | cfg +| obinit.cs:2:18:2:18 | | obinit.cs:3:13:3:13 | access to field x | obinit.cs:3:13:3:17 | ... = ... | normal | 2 | | obinit.cs:2:18:2:18 | | obinit.cs:3:13:3:13 | this access | obinit.cs:3:17:3:17 | 1 | normal | 0 | -| obinit.cs:2:18:2:18 | | obinit.cs:3:13:3:17 | ... = ... | obinit.cs:5:23:5:23 | this access | normal | 2 | -| obinit.cs:2:18:2:18 | | obinit.cs:3:17:3:17 | 1 | obinit.cs:3:13:3:17 | ... = ... | normal | 1 | -| obinit.cs:2:18:2:18 | | obinit.cs:5:23:5:23 | this access | obinit.cs:5:27:5:34 | "source" | normal | 3 | -| obinit.cs:2:18:2:18 | | obinit.cs:5:27:5:34 | "source" | obinit.cs:5:23:5:34 | ... = ... | normal | 4 | +| obinit.cs:2:18:2:18 | | obinit.cs:3:13:3:17 | ... = ... | obinit.cs:5:23:5:23 | this access | normal | 3 | +| obinit.cs:2:18:2:18 | | obinit.cs:3:17:3:17 | 1 | obinit.cs:3:13:3:13 | access to field x | normal | 1 | +| obinit.cs:2:18:2:18 | | obinit.cs:5:23:5:23 | access to field s | obinit.cs:5:23:5:34 | ... = ... | normal | 6 | +| obinit.cs:2:18:2:18 | | obinit.cs:5:23:5:23 | this access | obinit.cs:5:27:5:34 | "source" | normal | 4 | +| obinit.cs:2:18:2:18 | | obinit.cs:5:27:5:34 | "source" | obinit.cs:5:23:5:23 | access to field s | normal | 5 | | obinit.cs:7:16:7:16 | A | obinit.cs:7:16:7:16 | call to constructor Object | obinit.cs:7:20:7:22 | {...} | normal | 2 | | obinit.cs:7:16:7:16 | A | obinit.cs:7:16:7:16 | call to method | obinit.cs:7:16:7:16 | call to constructor Object | normal | 1 | | obinit.cs:7:16:7:16 | A | obinit.cs:7:16:7:16 | this access | obinit.cs:7:16:7:16 | call to method | normal | 0 | diff --git a/csharp/ql/test/library-tests/parameters/LambdaParameterModifiers.cs b/csharp/ql/test/library-tests/parameters/LambdaParameterModifiers.cs new file mode 100644 index 000000000000..fa5bd7c7ce9a --- /dev/null +++ b/csharp/ql/test/library-tests/parameters/LambdaParameterModifiers.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; + +public class LambdaParameterModifiers +{ + delegate void MyRef(ref int i1); + delegate void MyOut(out int i2); + delegate void MyIn(in int i3); + delegate void MyRefReadonly(ref readonly int i4); + + delegate void MyScopedRef(scoped ref int i5); + + public void M() + { + // Explicitly typed lambda parameters with modifiers. + var l1 = (ref int x1) => x1; + var l2 = (out int x2) => x2 = 0; + var l3 = (in int x3) => x3; + var l4 = (ref readonly int x4) => x4; + var l5 = (scoped ref int x5) => x5; + var l6 = (params IEnumerable x6) => x6; + + // Implicitly typed lambda parameters with modifiers. + MyRef l7 = (ref i1) => { }; + MyOut l8 = (out i2) => i2 = 0; + MyIn l9 = (in i3) => { }; + MyRefReadonly l10 = (ref readonly i4) => { }; + MyScopedRef l11 = (scoped ref i5) => { }; + } +} diff --git a/csharp/ql/test/library-tests/parameters/ParameterModifiers.expected b/csharp/ql/test/library-tests/parameters/ParameterModifiers.expected index c6b38eac9c8f..b8d1283d8d19 100644 --- a/csharp/ql/test/library-tests/parameters/ParameterModifiers.expected +++ b/csharp/ql/test/library-tests/parameters/ParameterModifiers.expected @@ -1,4 +1,15 @@ parameterModifier +| LambdaParameterModifiers.cs:16:27:16:28 | x1 | 1 | +| LambdaParameterModifiers.cs:17:27:17:28 | x2 | 2 | +| LambdaParameterModifiers.cs:18:26:18:27 | x3 | 5 | +| LambdaParameterModifiers.cs:19:36:19:37 | x4 | 6 | +| LambdaParameterModifiers.cs:20:34:20:35 | x5 | 1 | +| LambdaParameterModifiers.cs:21:43:21:44 | x6 | 3 | +| LambdaParameterModifiers.cs:24:25:24:26 | i1 | 1 | +| LambdaParameterModifiers.cs:25:25:25:26 | i2 | 2 | +| LambdaParameterModifiers.cs:26:23:26:24 | i3 | 5 | +| LambdaParameterModifiers.cs:27:43:27:44 | i4 | 6 | +| LambdaParameterModifiers.cs:28:39:28:40 | i5 | 1 | | ParameterModifiers.cs:6:27:6:28 | p1 | 0 | | ParameterModifiers.cs:7:30:7:31 | p2 | 5 | | ParameterModifiers.cs:9:31:9:32 | p3 | 2 | @@ -9,13 +20,24 @@ parameterModifier parameterIsValue | ParameterModifiers.cs:6:27:6:28 | p1 | parameterIsIn +| LambdaParameterModifiers.cs:18:26:18:27 | x3 | +| LambdaParameterModifiers.cs:26:23:26:24 | i3 | | ParameterModifiers.cs:7:30:7:31 | p2 | parameterIsOut +| LambdaParameterModifiers.cs:17:27:17:28 | x2 | +| LambdaParameterModifiers.cs:25:25:25:26 | i2 | | ParameterModifiers.cs:9:31:9:32 | p3 | parameterIsRef +| LambdaParameterModifiers.cs:16:27:16:28 | x1 | +| LambdaParameterModifiers.cs:20:34:20:35 | x5 | +| LambdaParameterModifiers.cs:24:25:24:26 | i1 | +| LambdaParameterModifiers.cs:28:39:28:40 | i5 | | ParameterModifiers.cs:14:31:14:32 | p4 | parameterIsParams +| LambdaParameterModifiers.cs:21:43:21:44 | x6 | | ParameterModifiers.cs:16:36:16:37 | p5 | | ParameterModifiers.cs:20:47:20:48 | p7 | parameterIsReadonlyRef +| LambdaParameterModifiers.cs:19:36:19:37 | x4 | +| LambdaParameterModifiers.cs:27:43:27:44 | i4 | | ParameterModifiers.cs:18:40:18:41 | p6 | diff --git a/csharp/ql/test/library-tests/parameters/ParameterModifiers.ql b/csharp/ql/test/library-tests/parameters/ParameterModifiers.ql index b83eb2021611..72425994faec 100644 --- a/csharp/ql/test/library-tests/parameters/ParameterModifiers.ql +++ b/csharp/ql/test/library-tests/parameters/ParameterModifiers.ql @@ -1,7 +1,12 @@ import csharp class TestParameter extends Parameter { - TestParameter() { this.getFile().getBaseName() = "ParameterModifiers.cs" } + TestParameter() { + this.getFile().getBaseName() = "ParameterModifiers.cs" + or + this.getFile().getBaseName() = "LambdaParameterModifiers.cs" and + this.getCallable() instanceof LambdaExpr + } } query predicate parameterModifier(TestParameter p, int kind) { params(p, _, _, _, kind, _, _) } diff --git a/csharp/ql/test/library-tests/standalone/controlflow/cfg.expected b/csharp/ql/test/library-tests/standalone/controlflow/cfg.expected index a42a3c662d4f..d0838ceed01b 100644 --- a/csharp/ql/test/library-tests/standalone/controlflow/cfg.expected +++ b/csharp/ql/test/library-tests/standalone/controlflow/cfg.expected @@ -31,10 +31,12 @@ | ControlFlow.cs:10:9:10:87 | ...; | ControlFlow.cs:10:9:10:86 | Call (unknown target) | | ControlFlow.cs:10:9:10:87 | ...; | ControlFlow.cs:10:9:10:86 | object creation of type | | ControlFlow.cs:10:35:10:86 | { ..., ... } | ControlFlow.cs:5:10:5:10 | exit F (normal) | +| ControlFlow.cs:10:37:10:47 | access to array element | ControlFlow.cs:10:37:10:62 | ... = ... | | ControlFlow.cs:10:37:10:62 | ... = ... | ControlFlow.cs:10:79:10:79 | access to local variable v | -| ControlFlow.cs:10:51:10:62 | access to field Empty | ControlFlow.cs:10:37:10:62 | ... = ... | +| ControlFlow.cs:10:51:10:62 | access to field Empty | ControlFlow.cs:10:37:10:47 | access to array element | +| ControlFlow.cs:10:65:10:75 | access to array element | ControlFlow.cs:10:65:10:84 | ... = ... | | ControlFlow.cs:10:65:10:84 | ... = ... | ControlFlow.cs:10:35:10:86 | { ..., ... } | | ControlFlow.cs:10:79:10:79 | access to local variable v | ControlFlow.cs:10:79:10:84 | Call (unknown target) | | ControlFlow.cs:10:79:10:79 | access to local variable v | ControlFlow.cs:10:79:10:84 | access to property (unknown) | -| ControlFlow.cs:10:79:10:84 | Call (unknown target) | ControlFlow.cs:10:65:10:84 | ... = ... | -| ControlFlow.cs:10:79:10:84 | access to property (unknown) | ControlFlow.cs:10:65:10:84 | ... = ... | +| ControlFlow.cs:10:79:10:84 | Call (unknown target) | ControlFlow.cs:10:65:10:75 | access to array element | +| ControlFlow.cs:10:79:10:84 | access to property (unknown) | ControlFlow.cs:10:65:10:75 | access to array element | diff --git a/csharp/ql/test/query-tests/Nullness/ConditionalAccess.cs b/csharp/ql/test/query-tests/Nullness/ConditionalAccess.cs new file mode 100644 index 000000000000..fd3fae179ed2 --- /dev/null +++ b/csharp/ql/test/query-tests/Nullness/ConditionalAccess.cs @@ -0,0 +1,11 @@ +using System; +using System.ComponentModel; + +class ConditionalAccessTest +{ + void M1(object o) + { + var t = o?.GetType(); + Console.WriteLine(t.FullName); // $ Alert[cs/dereferenced-value-may-be-null] + } +} diff --git a/csharp/ql/test/query-tests/Nullness/NullCheck.expected b/csharp/ql/test/query-tests/Nullness/NullCheck.expected index ada1054f02c6..2b6962b51c01 100644 --- a/csharp/ql/test/query-tests/Nullness/NullCheck.expected +++ b/csharp/ql/test/query-tests/Nullness/NullCheck.expected @@ -51,6 +51,7 @@ | C.cs:229:22:229:30 | ... != ... | C.cs:229:22:229:22 | access to local variable s | | C.cs:235:24:235:32 | ... == ... | C.cs:235:24:235:24 | access to local variable s | | C.cs:235:24:235:32 | ... == ... | C.cs:235:29:235:32 | null | +| ConditionalAccess.cs:8:17:8:17 | access to parameter o | ConditionalAccess.cs:8:17:8:17 | access to parameter o | | D.cs:28:13:28:25 | ... != ... | D.cs:28:13:28:17 | access to parameter param | | D.cs:38:13:38:21 | ... == ... | D.cs:38:13:38:13 | access to parameter x | | D.cs:39:16:39:24 | ... == ... | D.cs:39:16:39:16 | access to parameter x | diff --git a/csharp/ql/test/query-tests/Nullness/NullMaybe.expected b/csharp/ql/test/query-tests/Nullness/NullMaybe.expected index 6a0d8372e3ec..3f5219d8c0c9 100644 --- a/csharp/ql/test/query-tests/Nullness/NullMaybe.expected +++ b/csharp/ql/test/query-tests/Nullness/NullMaybe.expected @@ -6,6 +6,7 @@ | C.cs:203:13:203:13 | access to local variable s | Variable $@ may be null at this access because of $@ assignment. | C.cs:185:13:185:13 | s | s | C.cs:204:13:204:20 | ... = ... | this | | C.cs:223:9:223:9 | access to local variable s | Variable $@ may be null at this access because of $@ assignment. | C.cs:210:13:210:13 | s | s | C.cs:222:13:222:20 | ... = ... | this | | C.cs:242:13:242:13 | access to local variable s | Variable $@ may be null at this access because of $@ assignment. | C.cs:228:16:228:16 | s | s | C.cs:240:24:240:31 | ... = ... | this | +| ConditionalAccess.cs:9:27:9:27 | access to local variable t | Variable $@ may be null at this access because of $@ assignment. | ConditionalAccess.cs:8:13:8:13 | t | t | ConditionalAccess.cs:8:13:8:28 | Type t = ... | this | | D.cs:23:9:23:13 | access to parameter param | Variable $@ may be null at this access because of $@ null argument. | D.cs:21:32:21:36 | param | param | D.cs:17:17:17:20 | null | this | | D.cs:32:9:32:13 | access to parameter param | Variable $@ may be null at this access as suggested by $@ null check. | D.cs:26:32:26:36 | param | param | D.cs:28:13:28:25 | ... != ... | this | | D.cs:73:13:73:14 | access to local variable o7 | Variable $@ may be null at this access because of $@ assignment. | D.cs:68:13:68:14 | o7 | o7 | D.cs:68:13:68:34 | String o7 = ... | this | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-352/missing-aspnetcore/MissingAntiForgeryTokenValidation.cs b/csharp/ql/test/query-tests/Security Features/CWE-352/missing-aspnetcore/MissingAntiForgeryTokenValidation.cs index 84d904f900d3..e9e5202b40ab 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-352/missing-aspnetcore/MissingAntiForgeryTokenValidation.cs +++ b/csharp/ql/test/query-tests/Security Features/CWE-352/missing-aspnetcore/MissingAntiForgeryTokenValidation.cs @@ -29,3 +29,34 @@ public void UtilityMethod() { } } + +// GOOD: Base class has AutoValidateAntiforgeryToken attribute +[AutoValidateAntiforgeryToken] +public abstract class BaseController : Controller +{ +} + +public class DerivedController : BaseController +{ + // GOOD: Inherits antiforgery validation from base class + [HttpPost] + public ActionResult InheritedValidation() + { + return View(); + } +} + +// BAD: Base class without antiforgery attribute +public abstract class UnprotectedBaseController : Controller +{ +} + +public class DerivedUnprotectedController : UnprotectedBaseController +{ + // BAD: No antiforgery validation on this or any base class + [HttpPost] + public ActionResult NoInheritedValidation() + { + return View(); + } +} diff --git a/csharp/ql/test/query-tests/Security Features/CWE-352/missing-aspnetcore/MissingAntiForgeryTokenValidation.expected b/csharp/ql/test/query-tests/Security Features/CWE-352/missing-aspnetcore/MissingAntiForgeryTokenValidation.expected index 859fd4be9200..360b909cd0fa 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-352/missing-aspnetcore/MissingAntiForgeryTokenValidation.expected +++ b/csharp/ql/test/query-tests/Security Features/CWE-352/missing-aspnetcore/MissingAntiForgeryTokenValidation.expected @@ -1 +1,2 @@ | MissingAntiForgeryTokenValidation.cs:7:25:7:29 | Login | Method 'Login' handles a POST request without performing CSRF token validation. | +| MissingAntiForgeryTokenValidation.cs:58:25:58:45 | NoInheritedValidation | Method 'NoInheritedValidation' handles a POST request without performing CSRF token validation. | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-352/missing/MissingAntiForgeryTokenValidation.cs b/csharp/ql/test/query-tests/Security Features/CWE-352/missing/MissingAntiForgeryTokenValidation.cs index 69024e57a2e9..a86800e51529 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-352/missing/MissingAntiForgeryTokenValidation.cs +++ b/csharp/ql/test/query-tests/Security Features/CWE-352/missing/MissingAntiForgeryTokenValidation.cs @@ -29,3 +29,34 @@ public void UtilityMethod() { } } + +// GOOD: Base class has ValidateAntiForgeryToken attribute +[ValidateAntiForgeryToken] +public abstract class BaseController : Controller +{ +} + +public class DerivedController : BaseController +{ + // GOOD: Inherits antiforgery validation from base class + [HttpPost] + public ActionResult InheritedValidation() + { + return View(); + } +} + +// BAD: Base class without antiforgery attribute +public abstract class UnprotectedBaseController : Controller +{ +} + +public class DerivedUnprotectedController : UnprotectedBaseController +{ + // BAD: No antiforgery validation on this or any base class + [HttpPost] + public ActionResult NoInheritedValidation() + { + return View(); + } +} diff --git a/csharp/ql/test/query-tests/Security Features/CWE-352/missing/MissingAntiForgeryTokenValidation.expected b/csharp/ql/test/query-tests/Security Features/CWE-352/missing/MissingAntiForgeryTokenValidation.expected index 859fd4be9200..360b909cd0fa 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-352/missing/MissingAntiForgeryTokenValidation.expected +++ b/csharp/ql/test/query-tests/Security Features/CWE-352/missing/MissingAntiForgeryTokenValidation.expected @@ -1 +1,2 @@ | MissingAntiForgeryTokenValidation.cs:7:25:7:29 | Login | Method 'Login' handles a POST request without performing CSRF token validation. | +| MissingAntiForgeryTokenValidation.cs:58:25:58:45 | NoInheritedValidation | Method 'NoInheritedValidation' handles a POST request without performing CSRF token validation. | diff --git a/csharp/ql/test/query-tests/Security Features/CWE-639/MVCTests/CommentController.cs b/csharp/ql/test/query-tests/Security Features/CWE-639/MVCTests/CommentController.cs index 891e8374c1cc..d446c7ed4864 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-639/MVCTests/CommentController.cs +++ b/csharp/ql/test/query-tests/Security Features/CWE-639/MVCTests/CommentController.cs @@ -1,16 +1,28 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Authorization; +using System.Threading.Tasks; + +public class CommentController : Controller +{ + private readonly IAuthorizationService _authorizationService; + + public CommentController(IAuthorizationService authorizationService) + { + _authorizationService = authorizationService; + } -public class CommentController : Controller { // BAD: Any user can access this. - public ActionResult Edit1(int commentId, string text) { + public ActionResult Edit1(int commentId, string text) + { editComment(commentId, text); return View(); } // GOOD: The user's authorization is checked. - public ActionResult Edit2(int commentId, string text) { - if (canEditComment(commentId, User.Identity.Name)){ + public ActionResult Edit2(int commentId, string text) + { + if (canEditComment(commentId, User.Identity.Name)) + { editComment(commentId, text); } return View(); @@ -18,7 +30,8 @@ public ActionResult Edit2(int commentId, string text) { // GOOD: The Authorize attribute is used [Authorize] - public ActionResult Edit3(int commentId, string text) { + public ActionResult Edit3(int commentId, string text) + { editComment(commentId, text); return View(); } @@ -26,7 +39,29 @@ public ActionResult Edit3(int commentId, string text) { // BAD: The AllowAnonymous attribute overrides the Authorize attribute [Authorize] [AllowAnonymous] - public ActionResult Edit4(int commentId, string text) { + public ActionResult Edit4(int commentId, string text) + { + editComment(commentId, text); + return View(); + } + + // GOOD: An authorization check is made. + public async Task Edit5(int commentId, string text) + { + var authResult = await _authorizationService.AuthorizeAsync(User, "Comment", "EditPolicy"); + + if (authResult.Succeeded) + { + editComment(commentId, text); + return View(); + } + return Forbid(); + } + + // GOOD: Only users with the `admin` role can access this method. + [Authorize(Roles = "admin")] + public async Task Edit6(int commentId, string text) + { editComment(commentId, text); return View(); } diff --git a/csharp/ql/test/query-tests/Security Features/CWE-639/MVCTests/InsecureDirectObjectReference.expected b/csharp/ql/test/query-tests/Security Features/CWE-639/MVCTests/InsecureDirectObjectReference.expected index 061b87dc6afe..e851a72f6a95 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-639/MVCTests/InsecureDirectObjectReference.expected +++ b/csharp/ql/test/query-tests/Security Features/CWE-639/MVCTests/InsecureDirectObjectReference.expected @@ -1,5 +1,5 @@ -| CommentController.cs:6:25:6:29 | Edit1 | This method may be missing authorization checks for which users can access the resource of the provided ID. | -| CommentController.cs:29:25:29:29 | Edit4 | This method may be missing authorization checks for which users can access the resource of the provided ID. | +| CommentController.cs:15:25:15:29 | Edit1 | This method may be missing authorization checks for which users can access the resource of the provided ID. | +| CommentController.cs:42:25:42:29 | Edit4 | This method may be missing authorization checks for which users can access the resource of the provided ID. | | MiscTestControllers.cs:26:33:26:40 | EditAnon | This method may be missing authorization checks for which users can access the resource of the provided ID. | | MiscTestControllers.cs:34:34:34:41 | EditAnon | This method may be missing authorization checks for which users can access the resource of the provided ID. | | MiscTestControllers.cs:45:25:45:29 | Edit4 | This method may be missing authorization checks for which users can access the resource of the provided ID. | diff --git a/csharp/ql/test/shared/FlowSummaries.qll b/csharp/ql/test/shared/FlowSummaries.qll index a9fbeb8f08ea..2d28fe2bb6bd 100644 --- a/csharp/ql/test/shared/FlowSummaries.qll +++ b/csharp/ql/test/shared/FlowSummaries.qll @@ -13,8 +13,8 @@ class IncludeSummarizedCallable extends SummarizedCallableImplFinal { final string getCallableCsv() { result = getSignature(this) } predicate relevantSummary( - SummaryComponentStack input, SummaryComponentStack output, boolean preservesValue + SummaryComponentStack input, SummaryComponentStack output, boolean preservesValue, Provenance p ) { - this.propagatesFlow(input, output, preservesValue, _) + this.propagatesFlow(input, output, preservesValue, p, _, _) } } diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.23.9.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.23.9.rst new file mode 100644 index 000000000000..08013149a979 --- /dev/null +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.23.9.rst @@ -0,0 +1,25 @@ +.. _codeql-cli-2.23.9: + +========================== +CodeQL 2.23.9 (2026-01-09) +========================== + +.. contents:: Contents + :depth: 2 + :local: + :backlinks: none + +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. + +Security Coverage +----------------- + +CodeQL 2.23.9 runs a total of 491 security queries when configured with the Default suite (covering 166 CWE). The Extended suite enables an additional 135 queries (covering 35 more CWE). + +CodeQL CLI +---------- + +Deprecations +~~~~~~~~~~~~ + +* Support for Kotlin version 1.6 and 1.7 has been deprecated and will be removed from CodeQL version 2.24.1. Starting with version 2.24.1, users will need to use Kotlin version >= 1.8 to extract Kotlin databases. diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.24.0.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.24.0.rst new file mode 100644 index 000000000000..9c228de1fc25 --- /dev/null +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.24.0.rst @@ -0,0 +1,222 @@ +.. _codeql-cli-2.24.0: + +========================== +CodeQL 2.24.0 (2026-01-26) +========================== + +.. contents:: Contents + :depth: 2 + :local: + :backlinks: none + +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. + +Security Coverage +----------------- + +CodeQL 2.24.0 runs a total of 491 security queries when configured with the Default suite (covering 166 CWE). The Extended suite enables an additional 135 queries (covering 35 more CWE). + +CodeQL CLI +---------- + +Miscellaneous +~~~~~~~~~~~~~ + +* The OWASP Java HTML Sanitizer library used by the CodeQL CLI for internal documentation generation commands has been updated to version + \ `20260102.1 `__. +* The build of Eclipse Temurin OpenJDK that is used to run the CodeQL CLI has been updated to version 21.0.9. + +Query Packs +----------- + +Major Analysis Improvements +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +JavaScript/TypeScript +""""""""""""""""""""" + +* JavaScript files with an average line length greater than 200 are now considered minified and will no longer be analyzed. + For use-cases where minified files should be analyzed, the original behavior can be restored by setting the environment variable + :code:`CODEQL_EXTRACTOR_JAVASCRIPT_ALLOW_MINIFIED_FILES=true`. + +Minor Analysis Improvements +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +C/C++ +""""" + +* The :code:`cpp/constant-comparison` query has been updated to not produce false positives for constants that are now represented by their unfolded expression trees. + +C# +"" + +* Added :code:`NHibernate.ISession.CreateSQLQuery`, :code:`NHibernate.IStatelessSession.CreateSQLQuery` and :code:`NHibernate.Impl.AbstractSessionImpl.CreateSQLQuery` as SQL injection sinks. +* The :code:`Missing cross-site request forgery token validation` query was extended to support ASP.NET Core. + +Java/Kotlin +""""""""""" + +* Added sink models for :code:`com.couchbase` supporting SQL Injection and Hardcoded Credentials queries. +* Java thread safety analysis now understands initialization to thread safe classes inside constructors. + +JavaScript/TypeScript +""""""""""""""""""""" + +* The model of :code:`vue-router` now properly detects taint sources in cases where the :code:`props` property is a callback. +* Fixed a bug in the Next.js model that would cause the analysis to miss server-side taint sources in files named :code:`route` or :code:`page` appearing outside :code:`api` and :code:`pages` folders. +* :code:`new Response(x)` is no longer seen as a reflected XSS sink when no :code:`content-type` header is set, since the content type defaults to :code:`text/plain`. + +Rust +"""" + +* Fixed common false positives for the :code:`rust/unused-variable` and :code:`rust/unused-value` queries. +* Fixed false positives from the :code:`rust/access-invalid-pointer` query, by only considering dereferences of raw pointers as sinks. +* Fixed false positives from the :code:`rust/access-after-lifetime-ended` query, involving calls to trait methods. +* The :code:`rust/hard-coded-cryptographic-value` query has been extended with new heuristic sinks identifying passwords, initialization vectors, nonces and salts. + +Query Metadata Changes +~~~~~~~~~~~~~~~~~~~~~~ + +C# +"" + +* Updated the :code:`name`, :code:`description`, and alert message of :code:`cs/path-combine` to have more details about why it's a problem. + +Language Libraries +------------------ + +Bug Fixes +~~~~~~~~~ + +C/C++ +""""" + +* Fixed a bug in the :code:`DataFlow::BarrierGuard<...>::getABarrierNode` predicate which caused the predicate to return :code:`DataFlow::Node`\ s with incorrect indirections. If you use :code:`getABarrierNode` to implement barriers in a dataflow/taint-tracking query it may result in more query results. You can use :code:`DataFlow::BarrierGuard<...>::getAnIndirectBarrierNode` to remove those query results. + +C# +"" + +* Fixed two issues affecting build mode :code:`none`\ : + + * Corrected version sorting logic when detecting the newest .NET framework to use. + * Improved stability for .NET 10 compatibility. + +* Fixed an issue where compiler-generated files were not being extracted. The extractor now runs after compilation completes to ensure all generated files are properly analyzed. + +Breaking Changes +~~~~~~~~~~~~~~~~ + +C/C++ +""""" + +* The :code:`_Decimal32`, :code:`_Decimal64`, and :code:`_Decimal128` types are no longer exposed as builtin types. Support for these gcc-specific types was incomplete, and are generally not used in C/C++ codebases. + +Golang +"""""" + +* The query :code:`go/unexpected-frontend-error` has been moved from the :code:`codeql/go-queries` query to the :code:`codeql-go-consistency-queries` query pack. + +Python +"""""" + +* All modules that depend on the points-to analysis have now been removed from the top level :code:`python.qll` module. To access the points-to functionality, import the new :code:`LegacyPointsTo` module. This also means that some predicates have been removed from various classes, for instance :code:`Function.getFunctionObject()`. To access these predicates, import the :code:`LegacyPointsTo` module and use the :code:`FunctionWithPointsTo` class instead. Most cases follow this pattern, but there are a few exceptions: + + * The :code:`getLiteralObject` method on :code:`ImmutableLiteral` subclasses has been replaced with a predicate :code:`getLiteralObject(ImmutableLiteral l)` in the :code:`LegacyPointsTo` module. + * The :code:`getMetrics` method on :code:`Function`, :code:`Class`, and :code:`Module` has been removed. To access metrics, import :code:`LegacyPointsTo` and use the classes :code:`FunctionMetrics`, etc. instead. + +Major Analysis Improvements +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Swift +""""" + +* Upgraded to allow analysis of Swift 6.2.3. +* Upgraded to allow analysis of Swift 6.2.2. + +GitHub Actions +"""""""""""""" + +* The query :code:`actions/code-injection/medium` has been updated to include results which were incorrectly excluded while filtering out results that are reported by :code:`actions/code-injection/critical`. + +Minor Analysis Improvements +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +C/C++ +""""" + +* Some constants will now be represented by their unfolded expression trees. The :code:`isConstant` predicate of :code:`Expr` will no longer yield a result for those constants. + +C# +"" + +* When a code-scanning configuration specifies the :code:`paths:` and/or :code:`paths-ignore:` settings, these are now taken into account by the C# extractor's search for :code:`.config`, :code:`.props`, XML and project files. +* Updated the generated .NET “models as data” runtime models to cover .NET 10. +* C# 14: Support for *implicit* span conversions in the QL library. +* Basic extractor support for .NET 10 is now available. Extraction is supported for .NET 10 projects in both traced mode and :code:`build mode: none`. However, code that uses language features new to C# 14 is not yet fully supported for extraction and analysis. +* Added autobuilder and :code:`build-mode: none` support for :code:`.slnx` solution files. +* In :code:`build mode: none`, .NET 10 is now used by default unless a specific .NET version is specified elsewhere. +* Added implicit reads of :code:`System.Collections.Generic.KeyValuePair.Value` at taint-tracking sinks and at inputs to additional taint steps. As a result, taint-tracking queries will now produce more results when a container is tainted. + +Golang +"""""" + +* When a code-scanning configuration specifies the :code:`paths:` and/or :code:`paths-ignore:` settings, these are now taken into account by the Go extractor's search for :code:`.vue` and HTML files. + +Java/Kotlin +""""""""""" + +* When a code-scanning configuration specifies the :code:`paths:` and/or :code:`paths-ignore:` settings, these are now taken into account by the Java extractor's search for XML and properties files. +* Additional remote flow sources from the :code:`org.springframework.web.socket` package have been modeled. +* A sanitizer has been added to :code:`java/ssrf` to remove alerts when a regular expression check is used to verify that the value is safe. +* URI template variables of all Spring :code:`RestTemplate` methods are now considered as request forgery sinks. Previously only the :code:`getForObject` method was considered. This may lead to more alerts for the query :code:`java/ssrf`. +* Added more dataflow models of :code:`org.apache.commons.fileupload.FileItem`, :code:`javax/jakarta.servlet.http.Part` and :code:`org.apache.commons.fileupload.util.Streams`. + +JavaScript/TypeScript +""""""""""""""""""""" + +* Support :code:`use cache` directives for Next.js 16. +* Added :code:`PreCallGraphStep` flow model for React's :code:`useRef` hook. +* Added a :code:`DomValueSource` that uses the :code:`current` property off the object returned by React's :code:`useRef` hook. + +Python +"""""" + +* When a code-scanning configuration specifies the :code:`paths:` and/or :code:`paths-ignore:` settings, these are now taken into account by the Python extractor's search for YAML files. +* The :code:`compression.zstd` library (added in Python 3.14) is now supported by the :code:`py/decompression-bomb` query. +* Added taint flow model and type model for :code:`urllib.parse`. +* Remote flow sources for the :code:`python-socketio` package have been modeled. +* Additional models for remote flow sources for :code:`tornado.websocket.WebSocketHandler` have been added. + +Rust +"""" + +* The :code:`Deref` trait is now considered during method resolution. This means that method calls on receivers implementing the :code:`Deref` trait will correctly resolve to methods defined on the target type. This may result in additional query results, especially for data flow queries. +* Renamed the :code:`Adt` class to :code:`TypeItem` and moved common predicates from :code:`Struct`, :code:`Enum`, and :code:`Union` to :code:`TypeItem`. +* Added models for the Axum web application framework. +* Reading content of a value now carries taint if the value itself is tainted. For instance, if :code:`s` is tainted then :code:`s.field` is also tainted. This generally improves taint flow. +* The call graph is now more precise for calls that target a trait function with a default implementation. This reduces the number of false positives for data flow queries. +* Improved type inference for raw pointers (:code:`*const` and :code:`*mut`). This includes type inference for the raw borrow operators (:code:`&raw const` and :code:`&raw mut`) and dereferencing of raw pointers. + +Deprecated APIs +~~~~~~~~~~~~~~~ + +C/C++ +""""" + +* The :code:`OverloadedArrayExpr::getArrayOffset/0` predicate has been deprecated. Use :code:`OverloadedArrayExpr::getArrayOffset/1` and :code:`OverloadedArrayExpr::getAnArrayOffset` instead. + +New Features +~~~~~~~~~~~~ + +C/C++ +""""" + +* Added subclasses of :code:`BuiltInOperations` for the :code:`__is_bitwise_cloneable`, :code:`__is_invocable`, and :code:`__is_nothrow_invocable` builtin operations. +* Added a :code:`isThisAccess` predicate to :code:`ParamAccessForType` that holds when the access is to the implicit object parameter. +* Predicates :code:`getArrayOffset/1` and :code:`getAnArrayOffset` have been added to the :code:`OverloadedArrayExpr` class to support C++23 multidimensional subscript operators. + +Python +"""""" + +* The extractor now supports the new, relaxed syntax :code:`except A, B, C: ...` (which would previously have to be written as :code:`except (A, B, C): ...`) as defined in `PEP-758 `__. This may cause changes in results for code that uses Python 2-style exception binding (:code:`except Foo, e: ...`). The more modern format, :code:`except Foo as e: ...` (available since Python 2.6) is unaffected. +* The Python extractor now supports template strings as defined in `PEP-750 `__, through the classes :code:`TemplateString` and :code:`JoinedTemplateString`. diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.24.1.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.24.1.rst new file mode 100644 index 000000000000..71a2b3fb47ec --- /dev/null +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.24.1.rst @@ -0,0 +1,132 @@ +.. _codeql-cli-2.24.1: + +========================== +CodeQL 2.24.1 (2026-02-05) +========================== + +.. contents:: Contents + :depth: 2 + :local: + :backlinks: none + +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. + +Security Coverage +----------------- + +CodeQL 2.24.1 runs a total of 491 security queries when configured with the Default suite (covering 166 CWE). The Extended suite enables an additional 135 queries (covering 35 more CWE). + +CodeQL CLI +---------- + +Miscellaneous +~~~~~~~~~~~~~ + +* The vulnerable xwork-core 2.3.37 test dependency (CVE-2025-68493) has been removed. The CodeQL Java library has been updated to support both legacy Struts 2.x-6.x package names and Struts 7.x package names for analyzing user code. + +Language Libraries +------------------ + +Bug Fixes +~~~~~~~~~ + +C/C++ +""""" + +* Fixed a bug in the :code:`GuardCondition` library which sometimes prevented binary logical operators from being recognized as guard conditions. As a result, queries using :code:`GuardCondition` may see improved results. +* Fixed a bug which caused :code:`Node.asDefinition()` to not have a result for certain assignments. + +Java/Kotlin +""""""""""" + +* Kotlin: The Kotlin extractor now registers as the last IR generation extension, ensuring that code generated by other compiler plugins (such as kotlinx.serialization) is correctly captured. + +GitHub Actions +"""""""""""""" + +* Fixed a crash when analysing a :code:`${{ ... }}` expression over around 300 characters in length. + +Breaking Changes +~~~~~~~~~~~~~~~~ + +Java/Kotlin +""""""""""" + +* Support for Kotlin 1.6.x and 1.7.x series has been dropped + +Minor Analysis Improvements +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +C/C++ +""""" + +* The :code:`Buffer.qll` library will no longer report incorrect buffer sizes on certain malformed databases. As a result, the queries :code:`cpp/static-buffer-overflow`, :code:`cpp/overflow-buffer`, :code:`cpp/badly-bounded-write`, :code:`cpp/overrunning-write`, :code:`cpp/overrunning-write-with-float`, and :code:`cpp/very-likely-overrunning-write` will report fewer false positives on such databases. +* Added :code:`taint` summary models and :code:`sql-injection` barrier models for the MySQL :code:`mysql_real_escape_string` and :code:`mysql_real_escape_string_quote` escaping functions. +* The predicate :code:`SummarizedCallable.propagatesFlow` has been extended with the columns :code:`Provenance p` and :code:`boolean isExact`, and as a consequence the predicates :code:`SummarizedCallable.hasProvenance` and :code:`SummarizedCallable.hasExactModel` have been removed. + +C# +"" + +* The predicate :code:`SummarizedCallable.propagatesFlow` has been extended with the columns :code:`Provenance p` and :code:`boolean isExact`, and as a consequence the predicates :code:`SummarizedCallable.hasProvenance` and :code:`SummarizedCallable.hasExactModel` have been removed. +* C# 14: Support for null-conditional assignments (such as :code:`c?.Prop = p`). Furthermore, the :code:`MaybeNullExpr` class now takes null-conditional access (such as :code:`?.`) into account when modeling potential null values. + +Golang +"""""" + +* The predicate :code:`SummarizedCallable.propagatesFlow` has been extended with the columns :code:`Provenance p` and :code:`boolean isExact`, and as a consequence the predicates :code:`SummarizedCallable.hasProvenance` and :code:`SummarizedCallable.hasExactModel` have been removed. + +Java/Kotlin +""""""""""" + +* Added support for Struts 7.x package names in the Struts framework library. The library now recognizes both the legacy :code:`com.opensymphony.xwork2` package names (Struts 2.x-6.x) and the new :code:`org.apache.struts2` package names (Struts 7.x+), maintaining backward compatibility while enabling analysis of code using the latest Struts versions. +* The query :code:`java/unreleased-lock` no longer applies to lock types with names ending in "Pool", as these typically manage a collection of resources and the :code:`lock` and :code:`unlock` methods typically only lock one resource at a time. This may lead to a reduction in false positives. +* The predicate :code:`SummarizedCallable.propagatesFlow` has been extended with the columns :code:`Provenance p` and :code:`boolean isExact`, and as a consequence the predicates :code:`SummarizedCallable.hasProvenance` and :code:`SummarizedCallable.hasExactModel` have been removed. +* When Maven-compatible private package registries are configured for an organisation for Default Setup, CodeQL will now configure Maven to also use these as plugin repositories. CodeQL previously already configured Maven to use them as regular package repositories. This should now allow Maven plugins to be obtained from private registries. + +JavaScript/TypeScript +""""""""""""""""""""" + +* The predicate :code:`SummarizedCallable.propagatesFlow` has been extended with the columns :code:`Provenance p` and :code:`boolean isExact`, and as a consequence the predicates :code:`SummarizedCallable.hasProvenance` and :code:`SummarizedCallable.hasExactModel` have been removed. + +Python +"""""" + +* The predicate :code:`SummarizedCallable.propagatesFlow` has been extended with the columns :code:`Provenance p` and :code:`boolean isExact`, and as a consequence the predicates :code:`SummarizedCallable.hasProvenance` and :code:`SummarizedCallable.hasExactModel` have been removed. +* Added experimental query :code:`py/prompt-injection` to detect potential prompt injection vulnerabilities in code using LLMs. +* Added taint flow model and type model for :code:`agents` and :code:`openai` modules. +* Remote flow sources for the :code:`websockets` package have been modeled. + +Ruby +"""" + +* The predicate :code:`SummarizedCallable.propagatesFlow` has been extended with the columns :code:`Provenance p` and :code:`boolean isExact`, and as a consequence the predicates :code:`SummarizedCallable.hasProvenance` and :code:`SummarizedCallable.hasExactModel` have been removed. + +Swift +""""" + +* The predicate :code:`SummarizedCallable.propagatesFlow` has been extended with the columns :code:`Provenance p` and :code:`boolean isExact`, and as a consequence the predicates :code:`SummarizedCallable.hasProvenance` and :code:`SummarizedCallable.hasExactModel` have been removed. + +Rust +"""" + +* The predicate :code:`SummarizedCallable.propagatesFlow` has been extended with the columns :code:`Provenance p` and :code:`boolean isExact`, and as a consequence the predicates :code:`SummarizedCallable.hasProvenance` and :code:`SummarizedCallable.hasExactModel` have been removed. +* Added type inference support for the :code:`FnMut(..) -> ..` and :code:`Fn(..) -> ..` traits. They now work in type parameter bounds and are implemented by closures. + +New Features +~~~~~~~~~~~~ + +C/C++ +""""" + +* Added a subclass :code:`Embed` of :code:`PreprocessorDirective` for C23 and C++26 :code:`#embed` preprocessor directives. +* Added modules :code:`DataFlow::ParameterizedBarrierGuard` and :code:`DataFlow::ParameterizedInstructionBarrierGuard`. These modules provide the same features as :code:`DataFlow::BarrierGuard` and :code:`DataFlow::InstructionBarrierGuard`, but allow for an additional parameter to support properly using them in dataflow configurations that uses flow states. + +Java/Kotlin +""""""""""" + +* Kotlin versions up to 2.3.0 are now supported. + +Python +"""""" + +* It is now possible to refer to list elements in the Python models-as-data language, via the :code:`ListElement` path. diff --git a/docs/codeql/codeql-overview/codeql-changelog/index.rst b/docs/codeql/codeql-overview/codeql-changelog/index.rst index 8eb59792af4f..318366d1e69d 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/index.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/index.rst @@ -11,6 +11,9 @@ A list of queries for each suite and language `is available here ` diff --git a/docs/codeql/ql-language-reference/ql-language-specification.rst b/docs/codeql/ql-language-reference/ql-language-specification.rst index 1d84cc31c739..496b1245ff58 100644 --- a/docs/codeql/ql-language-reference/ql-language-specification.rst +++ b/docs/codeql/ql-language-reference/ql-language-specification.rst @@ -776,6 +776,7 @@ Various kinds of syntax can have *annotations* applied to them. Annotations are argsAnnotation ::= "pragma" "[" ("inline" | "inline_late" | "noinline" | "nomagic" | "noopt" | "assume_small_delta") "]" | "language" "[" "monotonicAggregates" "]" | "bindingset" "[" (variable ( "," variable)*)? "]" + | "overlay" "[" ("local" | "local?" | "global" | "caller" | "caller?" | "discard_entity") "]" Each simple annotation adds a same-named attribute to the syntactic entity it precedes. For example, if a class is preceded by the ``abstract`` annotation, then the class is said to be abstract. @@ -873,6 +874,26 @@ A predicate may have several different binding sets, which can be stated by usin The ``bindingset`` pragma is usable with type signatures and predicate signatures, but not with module signatures. +The parameterized annotation ``overlay`` controls predicate behavior during overlay evaluation, which is a feature for incremental analysis. Overlay annotations apply at the scope level, and are inherited by nested scopes. + ++---------------------+---------+------------+-------------------+-----------------------+---------+--------+---------+---------+ +| Overlay | Classes | Characters | Member predicates | Non-member predicates | Imports | Fields | Modules | Aliases | ++=====================+=========+============+===================+=======================+=========+========+=========+=========+ +| ``local`` | yes | yes | yes | yes | | | yes | | ++---------------------+---------+------------+-------------------+-----------------------+---------+--------+---------+---------+ +| ``local?`` | yes | yes | yes | yes | | | yes | | ++---------------------+---------+------------+-------------------+-----------------------+---------+--------+---------+---------+ +| ``global`` | yes | yes | yes | yes | | | yes | | ++---------------------+---------+------------+-------------------+-----------------------+---------+--------+---------+---------+ +| ``caller`` | yes | yes | yes | yes | | | yes | | ++---------------------+---------+------------+-------------------+-----------------------+---------+--------+---------+---------+ +| ``caller?`` | yes | yes | yes | yes | | | yes | | ++---------------------+---------+------------+-------------------+-----------------------+---------+--------+---------+---------+ +| ``discard_entity`` | | | | yes | | | | | ++---------------------+---------+------------+-------------------+-----------------------+---------+--------+---------+---------+ + +The ``overlay[discard_entity]`` annotation is only valid on unary non-member predicates whose argument is a database type. + QLDoc ----- diff --git a/docs/codeql/qllexer.py b/docs/codeql/qllexer.py index 33c0becdfc3b..55a65e84152f 100644 --- a/docs/codeql/qllexer.py +++ b/docs/codeql/qllexer.py @@ -35,7 +35,7 @@ class QLLexer(RegexLexer): # Keywords (r'\b(boolean|date|float|int|string)\b', Keyword.Type), (r'\b(abstract|cached|deprecated|external|final|library|override|private|query' - r'|(pragma|language|bindingset)\[\w*(,\s*\w*)*\])\s', + r'|(pragma|language|bindingset|overlay)\[\w*\??(,\s*\w*\??)*\])\s', Keyword.Reserved), (words(( 'and', 'any', 'as', 'asc', 'avg', 'by', 'class','concat', 'count', diff --git a/docs/codeql/reusables/supported-versions-compilers.rst b/docs/codeql/reusables/supported-versions-compilers.rst index c03713bdce25..6216bae08df3 100644 --- a/docs/codeql/reusables/supported-versions-compilers.rst +++ b/docs/codeql/reusables/supported-versions-compilers.rst @@ -17,11 +17,11 @@ .NET 5, .NET 6, .NET 7, .NET 8, .NET 9","``.sln``, ``.slnx``, ``.csproj``, ``.cs``, ``.cshtml``, ``.xaml``" GitHub Actions,"Not applicable",Not applicable,"``.github/workflows/*.yml``, ``.github/workflows/*.yaml``, ``**/action.yml``, ``**/action.yaml``" - Go (aka Golang), "Go up to 1.25", "Go 1.11 or more recent", ``.go`` + Go (aka Golang), "Go up to 1.26", "Go 1.11 or more recent", ``.go`` Java,"Java 7 to 25 [6]_","javac (OpenJDK and Oracle JDK), Eclipse compiler for Java (ECJ) [7]_",``.java`` - Kotlin,"Kotlin 1.6.0 [15]_ to 2.2.2\ *x*","kotlinc",``.kt`` + Kotlin,"Kotlin 1.8.0 to 2.3.0\ *x*","kotlinc",``.kt`` JavaScript,ECMAScript 2022 or lower,Not applicable,"``.js``, ``.jsx``, ``.mjs``, ``.es``, ``.es6``, ``.htm``, ``.html``, ``.xhtm``, ``.xhtml``, ``.vue``, ``.hbs``, ``.ejs``, ``.njk``, ``.json``, ``.yaml``, ``.yml``, ``.raml``, ``.xml`` [8]_" Python [9]_,"2.7, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13",Not applicable,``.py`` Ruby [10]_,"up to 3.3",Not applicable,"``.rb``, ``.erb``, ``.gemspec``, ``Gemfile``" @@ -45,4 +45,3 @@ .. [12] Support for the analysis of Swift requires macOS. .. [13] Embedded Swift is not supported. .. [14] TypeScript analysis is performed by running the JavaScript extractor with TypeScript enabled. This is the default. - .. [15] Support for Kotlin versions 1.6 and 1.7 is deprecated and will be removed in release 2.24.1. diff --git a/go/actions/test/action.yml b/go/actions/test/action.yml index d64142115f01..bec48ef4bffe 100644 --- a/go/actions/test/action.yml +++ b/go/actions/test/action.yml @@ -4,7 +4,7 @@ inputs: go-test-version: description: Which Go version to use for running the tests required: false - default: "~1.25.0" + default: "~1.26.0" run-code-checks: description: Whether to run formatting, code and qhelp generation checks required: false diff --git a/go/documentation/library-coverage/coverage.csv b/go/documentation/library-coverage/coverage.csv index 2826d79047d0..2c76dcf11555 100644 --- a/go/documentation/library-coverage/coverage.csv +++ b/go/documentation/library-coverage/coverage.csv @@ -1,9 +1,9 @@ package,sink,source,summary,sink:command-injection,sink:credentials-key,sink:jwt,sink:log-injection,sink:nosql-injection,sink:path-injection,sink:regex-use[0],sink:regex-use[1],sink:regex-use[c],sink:request-forgery,sink:request-forgery[TCP Addr + Port],sink:sql-injection,sink:url-redirection,sink:url-redirection[0],sink:url-redirection[receiver],sink:xpath-injection,source:commandargs,source:database,source:environment,source:file,source:remote,source:stdin,summary:taint,summary:value -,,,8,,,,,,,,,,,,,,,,,,,,,,,3,5 +,,,9,,,,,,,,,,,,,,,,,,,,,,,3,6 archive/tar,,,5,,,,,,,,,,,,,,,,,,,,,,,5, archive/zip,,,6,,,,,,,,,,,,,,,,,,,,,,,6, bufio,,,17,,,,,,,,,,,,,,,,,,,,,,,17, -bytes,,,43,,,,,,,,,,,,,,,,,,,,,,,43, +bytes,,,44,,,,,,,,,,,,,,,,,,,,,,,44, clevergo.tech/clevergo,1,,,,,,,,,,,,,,,,,1,,,,,,,,, cloud.google.com/go/bigquery,1,,,,,,,,,,,,,,1,,,,,,,,,,,, compress/bzip2,,,1,,,,,,,,,,,,,,,,,,,,,,,1, @@ -18,7 +18,7 @@ context,,,5,,,,,,,,,,,,,,,,,,,,,,,5, crypto,,,10,,,,,,,,,,,,,,,,,,,,,,,10, database/sql,30,18,12,,,,,,,,,,,,30,,,,,,18,,,,,12, encoding,,,81,,,,,,,,,,,,,,,,,,,,,,,81, -errors,,,3,,,,,,,,,,,,,,,,,,,,,,,3, +errors,,,4,,,,,,,,,,,,,,,,,,,,,,,4, expvar,,,6,,,,,,,,,,,,,,,,,,,,,,,6, fmt,3,,16,,,,3,,,,,,,,,,,,,,,,,,,16, github.com/ChrisTrenkamp/goxpath,3,,,,,,,,,,,,,,,,,,3,,,,,,,, diff --git a/go/documentation/library-coverage/coverage.rst b/go/documentation/library-coverage/coverage.rst index b54a425300f5..80330c3715e4 100644 --- a/go/documentation/library-coverage/coverage.rst +++ b/go/documentation/library-coverage/coverage.rst @@ -32,7 +32,7 @@ Go framework & library support `Revel `_,"``github.com/revel/revel*``, ``github.com/robfig/revel*``",46,20,4 `SendGrid `_,``github.com/sendgrid/sendgrid-go*``,,1, `Squirrel `_,"``github.com/Masterminds/squirrel*``, ``github.com/lann/squirrel*``, ``gopkg.in/Masterminds/squirrel``",81,,96 - `Standard library `_,"````, ``archive/*``, ``bufio``, ``bytes``, ``cmp``, ``compress/*``, ``container/*``, ``context``, ``crypto``, ``crypto/*``, ``database/*``, ``debug/*``, ``embed``, ``encoding``, ``encoding/*``, ``errors``, ``expvar``, ``flag``, ``fmt``, ``go/*``, ``hash``, ``hash/*``, ``html``, ``html/*``, ``image``, ``image/*``, ``index/*``, ``io``, ``io/*``, ``log``, ``log/*``, ``maps``, ``math``, ``math/*``, ``mime``, ``mime/*``, ``net``, ``net/*``, ``os``, ``os/*``, ``path``, ``path/*``, ``plugin``, ``reflect``, ``reflect/*``, ``regexp``, ``regexp/*``, ``slices``, ``sort``, ``strconv``, ``strings``, ``sync``, ``sync/*``, ``syscall``, ``syscall/*``, ``testing``, ``testing/*``, ``text/*``, ``time``, ``time/*``, ``unicode``, ``unicode/*``, ``unsafe``, ``weak``",52,609,104 + `Standard library `_,"````, ``archive/*``, ``bufio``, ``bytes``, ``cmp``, ``compress/*``, ``container/*``, ``context``, ``crypto``, ``crypto/*``, ``database/*``, ``debug/*``, ``embed``, ``encoding``, ``encoding/*``, ``errors``, ``expvar``, ``flag``, ``fmt``, ``go/*``, ``hash``, ``hash/*``, ``html``, ``html/*``, ``image``, ``image/*``, ``index/*``, ``io``, ``io/*``, ``log``, ``log/*``, ``maps``, ``math``, ``math/*``, ``mime``, ``mime/*``, ``net``, ``net/*``, ``os``, ``os/*``, ``path``, ``path/*``, ``plugin``, ``reflect``, ``reflect/*``, ``regexp``, ``regexp/*``, ``slices``, ``sort``, ``strconv``, ``strings``, ``sync``, ``sync/*``, ``syscall``, ``syscall/*``, ``testing``, ``testing/*``, ``text/*``, ``time``, ``time/*``, ``unicode``, ``unicode/*``, ``unsafe``, ``weak``",52,612,104 `XORM `_,"``github.com/go-xorm/xorm*``, ``xorm.io/xorm*``",,,68 `XPath `_,``github.com/antchfx/xpath*``,,,4 `appleboy/gin-jwt `_,``github.com/appleboy/gin-jwt*``,,,1 @@ -74,5 +74,5 @@ Go framework & library support `xpathparser `_,``github.com/santhosh-tekuri/xpathparser*``,,,2 `yaml `_,``gopkg.in/yaml*``,,9, `zap `_,``go.uber.org/zap*``,,11,33 - Totals,,688,1069,1557 + Totals,,688,1072,1557 diff --git a/go/extractor/autobuilder/build-environment.go b/go/extractor/autobuilder/build-environment.go index 0a4c7e2983b4..c660373205b2 100644 --- a/go/extractor/autobuilder/build-environment.go +++ b/go/extractor/autobuilder/build-environment.go @@ -12,7 +12,7 @@ import ( ) var minGoVersion = util.NewSemVer("1.11") -var maxGoVersion = util.NewSemVer("1.25") +var maxGoVersion = util.NewSemVer("1.26") type versionInfo struct { goModVersion util.SemVer // The version of Go found in the go directive in the `go.mod` file. diff --git a/go/extractor/cli/go-autobuilder/go-autobuilder.go b/go/extractor/cli/go-autobuilder/go-autobuilder.go index 756bd19b45e9..2531f72cf341 100644 --- a/go/extractor/cli/go-autobuilder/go-autobuilder.go +++ b/go/extractor/cli/go-autobuilder/go-autobuilder.go @@ -565,7 +565,7 @@ func installDependenciesAndBuild() { // Go tooling should install required Go versions as needed. if toolchain.GetEnvGoSemVer().IsOlderThan(toolchain.V1_21) && greatestGoVersion != nil && greatestGoVersion.IsNewerThan(toolchain.GetEnvGoSemVer()) { diagnostics.EmitNewerGoVersionNeeded(toolchain.GetEnvGoSemVer().String(), greatestGoVersion.String()) - if val, _ := os.LookupEnv("GITHUB_ACTIONS"); val == "true" { + if util.IsActionsWorkflow() { log.Printf( "A go.mod file requires version %s of Go, but version %s is installed. Consider adding an actions/setup-go step to your workflow.\n", greatestGoVersion, diff --git a/go/extractor/diagnostics/BUILD.bazel b/go/extractor/diagnostics/BUILD.bazel index 9b0c148db320..698c27e02b65 100644 --- a/go/extractor/diagnostics/BUILD.bazel +++ b/go/extractor/diagnostics/BUILD.bazel @@ -1,10 +1,18 @@ # generated running `bazel run //go/gazelle`, do not edit -load("@rules_go//go:def.bzl", "go_library") +load("@rules_go//go:def.bzl", "go_library", "go_test") go_library( name = "diagnostics", srcs = ["diagnostics.go"], importpath = "github.com/github/codeql-go/extractor/diagnostics", visibility = ["//visibility:public"], + deps = ["//go/extractor/util"], +) + +go_test( + name = "diagnostics_test", + srcs = ["diagnostics_test.go"], + embed = [":diagnostics"], + deps = ["@com_github_stretchr_testify//assert"], ) diff --git a/go/extractor/diagnostics/diagnostics.go b/go/extractor/diagnostics/diagnostics.go index 00179b98cca5..e7ff86cb878b 100644 --- a/go/extractor/diagnostics/diagnostics.go +++ b/go/extractor/diagnostics/diagnostics.go @@ -3,10 +3,12 @@ package diagnostics import ( "encoding/json" "fmt" - "log" + "log/slog" "os" "strings" "time" + + "github.com/github/codeql-go/extractor/util" ) type sourceStruct struct { @@ -54,18 +56,65 @@ type diagnostic struct { var diagnosticsEmitted, diagnosticsLimit uint = 0, 100 var noDiagnosticDirPrinted bool = false -func emitDiagnostic(sourceid, sourcename, markdownMessage string, severity diagnosticSeverity, visibility *visibilityStruct, location *locationStruct) { - if diagnosticsEmitted < diagnosticsLimit { - diagnosticsEmitted += 1 +type DiagnosticsWriter interface { + WriteDiagnostic(d diagnostic) +} - diagnosticDir := os.Getenv("CODEQL_EXTRACTOR_GO_DIAGNOSTIC_DIR") - if diagnosticDir == "" { - if !noDiagnosticDirPrinted { - log.Println("No diagnostic directory set, so not emitting diagnostic") - noDiagnosticDirPrinted = true - } - return +type FileDiagnosticsWriter struct { + diagnosticDir string +} + +func (writer *FileDiagnosticsWriter) WriteDiagnostic(d diagnostic) { + if writer == nil { + return + } + + content, err := json.Marshal(d) + if err != nil { + slog.Error("Failed to encode diagnostic as JSON", slog.Any("err", err)) + return + } + + targetFile, err := os.CreateTemp(writer.diagnosticDir, "go-extractor.*.json") + if err != nil { + slog.Error("Failed to create diagnostic file", slog.Any("err", err)) + return + } + defer func() { + if err := targetFile.Close(); err != nil { + slog.Error("Failed to close diagnostic file", slog.Any("err", err)) + } + }() + + _, err = targetFile.Write(content) + if err != nil { + slog.Error("Failed to write to diagnostic file", slog.Any("err", err)) + } +} + +var DefaultWriter *FileDiagnosticsWriter = nil + +func NewFileDiagnosticsWriter() *FileDiagnosticsWriter { + diagnosticDir := os.Getenv("CODEQL_EXTRACTOR_GO_DIAGNOSTIC_DIR") + if diagnosticDir == "" { + if !noDiagnosticDirPrinted { + slog.Warn("No diagnostic directory set, so not emitting diagnostics") + noDiagnosticDirPrinted = true } + return nil + } + + return &FileDiagnosticsWriter{diagnosticDir} +} + +func init() { + DefaultWriter = NewFileDiagnosticsWriter() +} + +// Emits a diagnostic using the specified `DiagnosticsWriter`. +func emitDiagnosticTo(writer DiagnosticsWriter, sourceid, sourcename, markdownMessage string, severity diagnosticSeverity, visibility *visibilityStruct, location *locationStruct) { + if diagnosticsEmitted < diagnosticsLimit { + diagnosticsEmitted += 1 timestamp := time.Now().UTC().Format("2006-01-02T15:04:05.000") + "Z" @@ -91,33 +140,15 @@ func emitDiagnostic(sourceid, sourcename, markdownMessage string, severity diagn } } - content, err := json.Marshal(d) - if err != nil { - log.Println(err) - return - } - - targetFile, err := os.CreateTemp(diagnosticDir, "go-extractor.*.json") - if err != nil { - log.Println("Failed to create diagnostic file: ") - log.Println(err) - return - } - defer func() { - if err := targetFile.Close(); err != nil { - log.Println("Failed to close diagnostic file:") - log.Println(err) - } - }() - - _, err = targetFile.Write(content) - if err != nil { - log.Println("Failed to write to diagnostic file: ") - log.Println(err) - } + writer.WriteDiagnostic(d) } } +// Emits a diagnostic using the default `DiagnosticsWriter`. +func emitDiagnostic(sourceid, sourcename, markdownMessage string, severity diagnosticSeverity, visibility *visibilityStruct, location *locationStruct) { + emitDiagnosticTo(DefaultWriter, sourceid, sourcename, markdownMessage, severity, visibility, location) +} + func EmitPackageDifferentOSArchitecture(pkgPath string) { emitDiagnostic( "go/autobuilder/package-different-os-architecture", @@ -139,7 +170,7 @@ func plural(n int, singular, plural string) string { const maxNumPkgPaths = 5 -func EmitCannotFindPackages(pkgPaths []string) { +func EmitCannotFindPackages(writer DiagnosticsWriter, pkgPaths []string) { numPkgPaths := len(pkgPaths) numPrinted := numPkgPaths @@ -154,14 +185,43 @@ func EmitCannotFindPackages(pkgPaths []string) { secondLine += fmt.Sprintf(" and %d more", numPkgPaths-maxNumPkgPaths) } - emitDiagnostic( + message := fmt.Sprintf( + "%d package%s could not be found:\n\n%s.\n\n"+ + "CodeQL is able to analyze your code without those packages, but definitions from them may not be recognized and "+ + "source files that use them may only be partially analyzed.\n\n"+ + "To ensure that you have comprehensive alert coverage, check that the paths are correct and make sure any private packages can be accessed by CodeQL. ", + numPkgPaths, + plural(len(pkgPaths), "", "s"), + secondLine, + ) + + // Depending on the environment we are running in, provide a different message for how to configure access to private registries. + if util.IsDynamicActionsWorkflow() { + // For GitHub-managed (dynamic) workflows, we offer built-in support for private registries that customers can set up. + message = message + + "Organizations [can grant access to private registries for GitHub security products](https://docs.github.com/en/code-security/how-tos/secure-at-scale/configure-organization-security/manage-usage-and-access/giving-org-access-private-registries). " + } else { + if util.IsActionsWorkflow() { + // For custom workflows, users can add a workflow step to set up credentials or environment variables. + message = message + + "To set up access to a private registry, add a step to your workflow which sets up the necessary credentials and environment variables. " + } else { + // Otherwise, we are running locally or in some other CI system. + message = message + + "To set up access to private registries, ensure that the necessary credentials and environment variables are set up for `go` to use. " + } + + // This should be less likely since we improved Go project discovery. We only include it in the message if we are not running in a + // GitHub-managed workflow, since users would not be able to act on this there. + message = message + + "If any of the packages are already present in the repository, but were not found, then you may need a [custom build command](https://docs.github.com/en/code-security/how-tos/scan-code-for-vulnerabilities/manage-your-configuration/codeql-code-scanning-for-compiled-languages)." + } + + emitDiagnosticTo( + writer, "go/autobuilder/package-not-found", "Some packages could not be found", - fmt.Sprintf( - "%d package%s could not be found:\n\n%s.\n\nDefinitions in those packages may not be recognized by CodeQL, and files that use them may only be partially analyzed.\n\nCheck that the paths are correct and make sure any private packages can be accessed. If any of the packages are present in the repository then you may need a [custom build command](https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-the-codeql-workflow-for-compiled-languages).", - numPkgPaths, - plural(len(pkgPaths), "", "s"), - secondLine), + message, severityWarning, fullVisibility, noLocation, @@ -508,3 +568,25 @@ func EmitExtractionFailedForProjects(path []string) { noLocation, ) } + +func EmitPrivateRegistryUsed(writer DiagnosticsWriter, configs []string) { + n := len(configs) + lines := make([]string, n) + + for i := range configs { + lines[i] = fmt.Sprintf("* %s", configs[i]) + } + + emitDiagnosticTo( + writer, + "go/autobuilder/analysis-using-private-registries", + "Go extraction used private package registries", + fmt.Sprintf( + "Go was extracted using the following private package registr%s:\n\n%s\n", + plural(n, "y", "ies"), + strings.Join(lines, "\n")), + severityNote, + fullVisibility, + noLocation, + ) +} diff --git a/go/extractor/diagnostics/diagnostics_test.go b/go/extractor/diagnostics/diagnostics_test.go new file mode 100644 index 000000000000..3c28a57d4b5b --- /dev/null +++ b/go/extractor/diagnostics/diagnostics_test.go @@ -0,0 +1,128 @@ +package diagnostics + +import ( + "testing" + + "github.com/stretchr/testify/assert" +) + +type memoryDiagnosticsWriter struct { + diagnostics []diagnostic +} + +func newMemoryDiagnosticsWriter() *memoryDiagnosticsWriter { + return &memoryDiagnosticsWriter{[]diagnostic{}} +} + +func (writer *memoryDiagnosticsWriter) WriteDiagnostic(d diagnostic) { + writer.diagnostics = append(writer.diagnostics, d) +} + +func Test_EmitCannotFindPackages_Default(t *testing.T) { + writer := newMemoryDiagnosticsWriter() + + // Clear environment variables that affect the diagnostic message. + t.Setenv("GITHUB_EVENT_NAME", "") + t.Setenv("GITHUB_ACTIONS", "") + + EmitCannotFindPackages(writer, []string{"github.com/github/foo"}) + + assert.Len(t, writer.diagnostics, 1, "Expected one diagnostic to be emitted") + + d := writer.diagnostics[0] + assert.Equal(t, d.Source.Id, "go/autobuilder/package-not-found") + assert.Equal(t, d.Severity, string(severityWarning)) + assert.True(t, d.Visibility.CliSummaryTable) + assert.True(t, d.Visibility.StatusPage) + assert.True(t, d.Visibility.Telemetry) + // Non-Actions suggestion for private registries + assert.Contains(t, d.MarkdownMessage, "ensure that the necessary credentials and environment variables are set up") + // Custom build command suggestion + assert.Contains(t, d.MarkdownMessage, "If any of the packages are already present in the repository") +} + +func Test_EmitCannotFindPackages_Dynamic(t *testing.T) { + writer := newMemoryDiagnosticsWriter() + + // Set environment variables that affect the diagnostic message. + t.Setenv("GITHUB_EVENT_NAME", "dynamic") + t.Setenv("GITHUB_ACTIONS", "true") + + EmitCannotFindPackages(writer, []string{"github.com/github/foo"}) + + assert.Len(t, writer.diagnostics, 1, "Expected one diagnostic to be emitted") + + d := writer.diagnostics[0] + assert.Equal(t, d.Source.Id, "go/autobuilder/package-not-found") + assert.Equal(t, d.Severity, string(severityWarning)) + // Dynamic workflow suggestion for private registries + assert.Contains(t, d.MarkdownMessage, "can grant access to private registries for GitHub security products") + // No default suggestions for private registries and custom build command + assert.NotContains(t, d.MarkdownMessage, "ensure that the necessary credentials and environment variables are set up") + assert.NotContains(t, d.MarkdownMessage, "If any of the packages are already present in the repository") +} + +func Test_EmitCannotFindPackages_Actions(t *testing.T) { + writer := newMemoryDiagnosticsWriter() + + // Set environment variables that affect the diagnostic message. + t.Setenv("GITHUB_EVENT_NAME", "push") + t.Setenv("GITHUB_ACTIONS", "true") + + EmitCannotFindPackages(writer, []string{"github.com/github/foo"}) + + assert.Len(t, writer.diagnostics, 1, "Expected one diagnostic to be emitted") + + d := writer.diagnostics[0] + assert.Equal(t, d.Source.Id, "go/autobuilder/package-not-found") + assert.Equal(t, d.Severity, string(severityWarning)) + // Advanced workflow suggestion for private registries + assert.Contains(t, d.MarkdownMessage, "add a step to your workflow which sets up") + // No default suggestion for private registries + assert.NotContains(t, d.MarkdownMessage, "ensure that the necessary credentials and environment variables are set up") + // Custom build command suggestion + assert.Contains(t, d.MarkdownMessage, "If any of the packages are already present in the repository") +} + +func Test_EmitPrivateRegistryUsed_Single(t *testing.T) { + writer := newMemoryDiagnosticsWriter() + + testItems := []string{ + "https://github.com/github/example (Git Source)", + } + + EmitPrivateRegistryUsed(writer, testItems) + + assert.Len(t, writer.diagnostics, 1, "Expected one diagnostic to be emitted") + + d := writer.diagnostics[0] + assert.Equal(t, d.Source.Id, "go/autobuilder/analysis-using-private-registries") + assert.Equal(t, d.Severity, string(severityNote)) + assert.Contains(t, d.MarkdownMessage, "following private package registry") + + for i := range testItems { + assert.Contains(t, d.MarkdownMessage, testItems[i]) + } +} + +func Test_EmitPrivateRegistryUsed_Multiple(t *testing.T) { + writer := newMemoryDiagnosticsWriter() + + testItems := []string{ + "https://github.com/github/example (Git Source)", + "https://example.com/goproxy (GOPROXY Server)", + } + + EmitPrivateRegistryUsed(writer, testItems) + + assert.Len(t, writer.diagnostics, 1, "Expected one diagnostic to be emitted") + + d := writer.diagnostics[0] + assert.Equal(t, d.Source.Id, "go/autobuilder/analysis-using-private-registries") + assert.Equal(t, d.Severity, string(severityNote)) + assert.Contains(t, d.MarkdownMessage, "following private package registries") + + for i := range testItems { + assert.Contains(t, d.MarkdownMessage, testItems[i]) + } +} diff --git a/go/extractor/extractor.go b/go/extractor/extractor.go index 314fb8a56c13..bbcd32c10d24 100644 --- a/go/extractor/extractor.go +++ b/go/extractor/extractor.go @@ -223,7 +223,7 @@ func ExtractWithFlags(buildFlags []string, patterns []string, extractTests bool, }) if len(pkgsNotFound) > 0 { - diagnostics.EmitCannotFindPackages(pkgsNotFound) + diagnostics.EmitCannotFindPackages(diagnostics.DefaultWriter, pkgsNotFound) } for _, pkg := range pkgs { diff --git a/go/extractor/go.mod b/go/extractor/go.mod index 62d42b037ef6..46d189d005e5 100644 --- a/go/extractor/go.mod +++ b/go/extractor/go.mod @@ -1,16 +1,23 @@ module github.com/github/codeql-go/extractor -go 1.25 +go 1.26 -toolchain go1.25.0 +toolchain go1.26.0 // when updating this, run // bazel run @rules_go//go -- mod tidy // when adding or removing dependencies, run // bazel mod tidy require ( - golang.org/x/mod v0.32.0 - golang.org/x/tools v0.41.0 + golang.org/x/mod v0.33.0 + golang.org/x/tools v0.42.0 ) -require golang.org/x/sync v0.19.0 // indirect +require github.com/stretchr/testify v1.11.1 + +require ( + github.com/davecgh/go-spew v1.1.1 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect + golang.org/x/sync v0.19.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect +) diff --git a/go/extractor/go.sum b/go/extractor/go.sum index d462d8f36686..ade080a41ad3 100644 --- a/go/extractor/go.sum +++ b/go/extractor/go.sum @@ -1,8 +1,18 @@ +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -golang.org/x/mod v0.32.0 h1:9F4d3PHLljb6x//jOyokMv3eX+YDeepZSEo3mFJy93c= -golang.org/x/mod v0.32.0/go.mod h1:SgipZ/3h2Ci89DlEtEXWUk/HteuRin+HHhN+WbNhguU= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= +github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= +golang.org/x/mod v0.33.0 h1:tHFzIWbBifEmbwtGz65eaWyGiGZatSrT9prnU8DbVL8= +golang.org/x/mod v0.33.0/go.mod h1:swjeQEj+6r7fODbD2cqrnje9PnziFuw4bmLbBZFrQ5w= golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4= golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= -golang.org/x/tools v0.41.0 h1:a9b8iMweWG+S0OBnlU36rzLp20z1Rp10w+IY2czHTQc= -golang.org/x/tools v0.41.0/go.mod h1:XSY6eDqxVNiYgezAVqqCeihT4j1U2CCsqvH3WhQpnlg= +golang.org/x/tools v0.42.0 h1:uNgphsn75Tdz5Ji2q36v/nsFSfR/9BRFvqhGBaJGd5k= +golang.org/x/tools v0.42.0/go.mod h1:Ma6lCIwGZvHK6XtgbswSoWroEkhugApmsXyrUmBhfr0= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/go/extractor/registries/BUILD.bazel b/go/extractor/registries/BUILD.bazel new file mode 100644 index 000000000000..7947556ee5d8 --- /dev/null +++ b/go/extractor/registries/BUILD.bazel @@ -0,0 +1,17 @@ +# generated running `bazel run //go/gazelle`, do not edit + +load("@rules_go//go:def.bzl", "go_library", "go_test") + +go_library( + name = "registries", + srcs = ["registryproxy.go"], + importpath = "github.com/github/codeql-go/extractor/registries", + visibility = ["//visibility:public"], + deps = ["//go/extractor/diagnostics"], +) + +go_test( + name = "registries_test", + srcs = ["registryproxy_test.go"], + embed = [":registries"], +) diff --git a/go/extractor/util/registryproxy.go b/go/extractor/registries/registryproxy.go similarity index 85% rename from go/extractor/util/registryproxy.go rename to go/extractor/registries/registryproxy.go index 1f20832e8d81..39578af476be 100644 --- a/go/extractor/util/registryproxy.go +++ b/go/extractor/registries/registryproxy.go @@ -1,4 +1,4 @@ -package util +package registries import ( "encoding/json" @@ -8,6 +8,8 @@ import ( "os" "os/exec" "strings" + + "github.com/github/codeql-go/extractor/diagnostics" ) const PROXY_HOST = "CODEQL_PROXY_HOST" @@ -22,6 +24,19 @@ type RegistryConfig struct { URL string `json:"url"` } +func (config *RegistryConfig) Pretty() string { + pretty_type := "other" + + switch config.Type { + case GIT_SOURCE: + pretty_type = "Git Source" + case GOPROXY_SERVER: + pretty_type = "GOPROXY Server" + } + + return fmt.Sprintf("`%s` (%s)", config.URL, pretty_type) +} + // The address of the proxy including protocol and port (e.g. http://localhost:1234) var proxy_address string @@ -97,24 +112,40 @@ func getEnvVars() []string { if err != nil { slog.Error("Unable to parse proxy configurations", slog.String("error", err.Error())) } else { + activeConfigs := make([]RegistryConfig, 0, len(val)) + // We only care about private registry configurations that are relevant to Go and // filter others out at this point. for _, cfg := range val { if cfg.Type == GOPROXY_SERVER { goproxy_servers = append(goproxy_servers, cfg.URL) slog.Info("Found GOPROXY server", slog.String("url", cfg.URL)) + activeConfigs = append(activeConfigs, cfg) } else if cfg.Type == GIT_SOURCE { parsed, err := url.Parse(cfg.URL) if err == nil && parsed.Hostname() != "" { git_source := parsed.Hostname() + parsed.Path + "*" git_sources = append(git_sources, git_source) slog.Info("Found Git source", slog.String("source", git_source)) + activeConfigs = append(activeConfigs, cfg) } else { slog.Warn("Not a valid URL for Git source", slog.String("url", cfg.URL)) } } } + // Emit a diagnostic to make it easy for users to see that private registry + // configurations were picked up by the Go analysis. + if len(activeConfigs) > 0 { + prettyConfigs := []string{} + for i := range activeConfigs { + prettyConfigs = append(prettyConfigs, activeConfigs[i].Pretty()) + } + + diagnostics.EmitPrivateRegistryUsed(diagnostics.DefaultWriter, prettyConfigs) + } + + // Assemble environment variables for Go. goprivate := []string{} if len(goproxy_servers) > 0 { diff --git a/go/extractor/util/registryproxy_test.go b/go/extractor/registries/registryproxy_test.go similarity index 99% rename from go/extractor/util/registryproxy_test.go rename to go/extractor/registries/registryproxy_test.go index ef63bd9d3f87..c564040ff1b6 100644 --- a/go/extractor/util/registryproxy_test.go +++ b/go/extractor/registries/registryproxy_test.go @@ -1,4 +1,4 @@ -package util +package registries import ( "testing" diff --git a/go/extractor/toolchain/BUILD.bazel b/go/extractor/toolchain/BUILD.bazel index 583749993239..16c591f2a96a 100644 --- a/go/extractor/toolchain/BUILD.bazel +++ b/go/extractor/toolchain/BUILD.bazel @@ -7,7 +7,10 @@ go_library( srcs = ["toolchain.go"], importpath = "github.com/github/codeql-go/extractor/toolchain", visibility = ["//visibility:public"], - deps = ["//go/extractor/util"], + deps = [ + "//go/extractor/registries", + "//go/extractor/util", + ], ) go_test( diff --git a/go/extractor/toolchain/toolchain.go b/go/extractor/toolchain/toolchain.go index 01b3ab813bd5..fb9d5512cd83 100644 --- a/go/extractor/toolchain/toolchain.go +++ b/go/extractor/toolchain/toolchain.go @@ -10,6 +10,7 @@ import ( "path/filepath" "strings" + "github.com/github/codeql-go/extractor/registries" "github.com/github/codeql-go/extractor/util" ) @@ -140,7 +141,7 @@ func SupportsWorkspaces() bool { // Constructs a `*exec.Cmd` for `go` with the specified arguments. func GoCommand(arg ...string) *exec.Cmd { cmd := exec.Command("go", arg...) - util.ApplyProxyEnvVars(cmd) + registries.ApplyProxyEnvVars(cmd) return cmd } diff --git a/go/extractor/util/BUILD.bazel b/go/extractor/util/BUILD.bazel index ee090607ced5..ccebf5ebd865 100644 --- a/go/extractor/util/BUILD.bazel +++ b/go/extractor/util/BUILD.bazel @@ -8,7 +8,6 @@ go_library( "extractvendordirs.go", "logging.go", "overlays.go", - "registryproxy.go", "semver.go", "util.go", ], @@ -21,7 +20,6 @@ go_test( name = "util_test", srcs = [ "logging_test.go", - "registryproxy_test.go", "semver_test.go", "util_test.go", ], diff --git a/go/extractor/util/util.go b/go/extractor/util/util.go index 5cb97a7bc1d6..0925d1439d87 100644 --- a/go/extractor/util/util.go +++ b/go/extractor/util/util.go @@ -312,3 +312,16 @@ func IsGolangVendorDirectory(dirPath string) bool { fileExists(filepath.Join(dirPath, "../Gopkg.lock")) || fileExists(filepath.Join(dirPath, "../vendor.conf"))) } + +// Returns true if the `GITHUB_ACTIONS` environment variable is set to `true`. +// This is the case in GitHub Actions workflows. +func IsActionsWorkflow() bool { + return os.Getenv("GITHUB_ACTIONS") == "true" +} + +// Returns true if the `GITHUB_EVENT_NAME` environment variable is set and suggests that +// we are running in a GitHub Actions workflow that was triggered by the `dynamic` event. +// This is the case for e.g. Default Setup. +func IsDynamicActionsWorkflow() bool { + return os.Getenv("GITHUB_EVENT_NAME") == "dynamic" +} diff --git a/go/ql/consistency-queries/CHANGELOG.md b/go/ql/consistency-queries/CHANGELOG.md index 8718668249fd..d0c8171cdf67 100644 --- a/go/ql/consistency-queries/CHANGELOG.md +++ b/go/ql/consistency-queries/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.41 + +No user-facing changes. + ## 1.0.40 No user-facing changes. diff --git a/go/ql/consistency-queries/change-notes/released/1.0.41.md b/go/ql/consistency-queries/change-notes/released/1.0.41.md new file mode 100644 index 000000000000..b9e9f7a5c44d --- /dev/null +++ b/go/ql/consistency-queries/change-notes/released/1.0.41.md @@ -0,0 +1,3 @@ +## 1.0.41 + +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 326e4b5da674..d496eab6eb95 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.40 +lastReleaseVersion: 1.0.41 diff --git a/go/ql/consistency-queries/qlpack.yml b/go/ql/consistency-queries/qlpack.yml index 8e49b3c32254..9db7c50224de 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.40 +version: 1.0.42-dev groups: - go - queries diff --git a/go/ql/integration-tests/diagnostics/package-not-found-with-go-mod/diagnostics.expected b/go/ql/integration-tests/diagnostics/package-not-found-with-go-mod/diagnostics.expected index 31204020a029..7af3c3a0cd00 100644 --- a/go/ql/integration-tests/diagnostics/package-not-found-with-go-mod/diagnostics.expected +++ b/go/ql/integration-tests/diagnostics/package-not-found-with-go-mod/diagnostics.expected @@ -1,5 +1,5 @@ { - "markdownMessage": "110 packages could not be found:\n\n`github.com/nosuchorg/nosuchrepo000`, `github.com/nosuchorg/nosuchrepo001`, `github.com/nosuchorg/nosuchrepo002`, `github.com/nosuchorg/nosuchrepo003`, `github.com/nosuchorg/nosuchrepo004` and 105 more.\n\nDefinitions in those packages may not be recognized by CodeQL, and files that use them may only be partially analyzed.\n\nCheck that the paths are correct and make sure any private packages can be accessed. If any of the packages are present in the repository then you may need a [custom build command](https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-the-codeql-workflow-for-compiled-languages).", + "markdownMessage": "110 packages could not be found:\n\n`github.com/nosuchorg/nosuchrepo000`, `github.com/nosuchorg/nosuchrepo001`, `github.com/nosuchorg/nosuchrepo002`, `github.com/nosuchorg/nosuchrepo003`, `github.com/nosuchorg/nosuchrepo004` and 105 more.\n\nCodeQL is able to analyze your code without those packages, but definitions from them may not be recognized and source files that use them may only be partially analyzed.\n\nTo ensure that you have comprehensive alert coverage, check that the paths are correct and make sure any private packages can be accessed by CodeQL. To set up access to a private registry, add a step to your workflow which sets up the necessary credentials and environment variables. If any of the packages are already present in the repository, but were not found, then you may need a [custom build command](https://docs.github.com/en/code-security/how-tos/scan-code-for-vulnerabilities/manage-your-configuration/codeql-code-scanning-for-compiled-languages).", "severity": "warning", "source": { "extractorName": "go", diff --git a/go/ql/integration-tests/diagnostics/package-not-found-with-go-mod/test.py b/go/ql/integration-tests/diagnostics/package-not-found-with-go-mod/test.py index 1800c6ddda87..854924199691 100644 --- a/go/ql/integration-tests/diagnostics/package-not-found-with-go-mod/test.py +++ b/go/ql/integration-tests/diagnostics/package-not-found-with-go-mod/test.py @@ -4,4 +4,10 @@ def test(codeql, go, check_build_environment): check_build_environment.source_root = "work" os.environ["LGTM_INDEX_IMPORT_PATH"] = "test" + + # The diagnostic message depends on the environment we are running in. To ensure consistent + # output, we set `GITHUB_ACTIONS` to `true` if we are not actually running in a workflow. + if (os.environ.get("GITHUB_ACTIONS", "") != "true"): + os.environ["GITHUB_ACTIONS"] = "true" + codeql.database.create(source_root="work") diff --git a/go/ql/integration-tests/diagnostics/package-not-found-without-go-mod/diagnostics.expected b/go/ql/integration-tests/diagnostics/package-not-found-without-go-mod/diagnostics.expected index 4f3f4e643434..f39fb5b324c8 100644 --- a/go/ql/integration-tests/diagnostics/package-not-found-without-go-mod/diagnostics.expected +++ b/go/ql/integration-tests/diagnostics/package-not-found-without-go-mod/diagnostics.expected @@ -1,5 +1,5 @@ { - "markdownMessage": "1 package could not be found:\n\n`github.com/linode/linode-docs-theme`.\n\nDefinitions in those packages may not be recognized by CodeQL, and files that use them may only be partially analyzed.\n\nCheck that the paths are correct and make sure any private packages can be accessed. If any of the packages are present in the repository then you may need a [custom build command](https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-the-codeql-workflow-for-compiled-languages).", + "markdownMessage": "1 package could not be found:\n\n`github.com/linode/linode-docs-theme`.\n\nCodeQL is able to analyze your code without those packages, but definitions from them may not be recognized and source files that use them may only be partially analyzed.\n\nTo ensure that you have comprehensive alert coverage, check that the paths are correct and make sure any private packages can be accessed by CodeQL. To set up access to a private registry, add a step to your workflow which sets up the necessary credentials and environment variables. If any of the packages are already present in the repository, but were not found, then you may need a [custom build command](https://docs.github.com/en/code-security/how-tos/scan-code-for-vulnerabilities/manage-your-configuration/codeql-code-scanning-for-compiled-languages).", "severity": "warning", "source": { "extractorName": "go", diff --git a/go/ql/integration-tests/diagnostics/package-not-found-without-go-mod/test.py b/go/ql/integration-tests/diagnostics/package-not-found-without-go-mod/test.py index 1800c6ddda87..854924199691 100644 --- a/go/ql/integration-tests/diagnostics/package-not-found-without-go-mod/test.py +++ b/go/ql/integration-tests/diagnostics/package-not-found-without-go-mod/test.py @@ -4,4 +4,10 @@ def test(codeql, go, check_build_environment): check_build_environment.source_root = "work" os.environ["LGTM_INDEX_IMPORT_PATH"] = "test" + + # The diagnostic message depends on the environment we are running in. To ensure consistent + # output, we set `GITHUB_ACTIONS` to `true` if we are not actually running in a workflow. + if (os.environ.get("GITHUB_ACTIONS", "") != "true"): + os.environ["GITHUB_ACTIONS"] = "true" + codeql.database.create(source_root="work") diff --git a/go/ql/lib/CHANGELOG.md b/go/ql/lib/CHANGELOG.md index 97391d2342af..126058537cef 100644 --- a/go/ql/lib/CHANGELOG.md +++ b/go/ql/lib/CHANGELOG.md @@ -1,3 +1,9 @@ +## 6.0.1 + +### Minor Analysis Improvements + +* The predicate `SummarizedCallable.propagatesFlow` has been extended with the columns `Provenance p` and `boolean isExact`, and as a consequence the predicates `SummarizedCallable.hasProvenance` and `SummarizedCallable.hasExactModel` have been removed. + ## 6.0.0 ### Breaking Changes diff --git a/go/ql/lib/change-notes/2026-01-20-go-version-1-26.md b/go/ql/lib/change-notes/2026-01-20-go-version-1-26.md new file mode 100644 index 000000000000..97f022480c4c --- /dev/null +++ b/go/ql/lib/change-notes/2026-01-20-go-version-1-26.md @@ -0,0 +1,4 @@ +--- +category: majorAnalysis +--- +* Go 1.26 is now supported. diff --git a/go/ql/lib/change-notes/2026-01-28-shared-basic-block-library.md b/go/ql/lib/change-notes/2026-01-28-shared-basic-block-library.md new file mode 100644 index 000000000000..f26aeb9c07ab --- /dev/null +++ b/go/ql/lib/change-notes/2026-01-28-shared-basic-block-library.md @@ -0,0 +1,4 @@ +--- +category: breaking +--- +* The `BasicBlock` class is now defined using the shared basic blocks library. `BasicBlock.getRoot` has been replaced by `BasicBlock.getScope`. `BasicBlock.getAPredecessor` and `BasicBlock.getASuccessor` now take a `SuccessorType` argument. `ReachableJoinBlock.inDominanceFrontierOf` has been removed, so use `BasicBlock.inDominanceFrontier` instead, swapping the receiver and the argument. diff --git a/go/ql/lib/change-notes/released/6.0.1.md b/go/ql/lib/change-notes/released/6.0.1.md new file mode 100644 index 000000000000..7b5e8dad5a86 --- /dev/null +++ b/go/ql/lib/change-notes/released/6.0.1.md @@ -0,0 +1,5 @@ +## 6.0.1 + +### Minor Analysis Improvements + +* The predicate `SummarizedCallable.propagatesFlow` has been extended with the columns `Provenance p` and `boolean isExact`, and as a consequence the predicates `SummarizedCallable.hasProvenance` and `SummarizedCallable.hasExactModel` have been removed. diff --git a/go/ql/lib/codeql-pack.release.yml b/go/ql/lib/codeql-pack.release.yml index f8c4fa43ccb7..d1f3c68c8120 100644 --- a/go/ql/lib/codeql-pack.release.yml +++ b/go/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 6.0.0 +lastReleaseVersion: 6.0.1 diff --git a/go/ql/lib/ext/builtin.model.yml b/go/ql/lib/ext/builtin.model.yml index 816c89008a84..616e6bc23b01 100644 --- a/go/ql/lib/ext/builtin.model.yml +++ b/go/ql/lib/ext/builtin.model.yml @@ -11,3 +11,4 @@ extensions: - ["", "", False, "copy", "", "", "Argument[1].ArrayElement", "Argument[0].ArrayElement", "value", "manual"] - ["", "", False, "max", "", "", "Argument[0..1000]", "ReturnValue", "value", "manual"] - ["", "", False, "min", "", "", "Argument[0..1000]", "ReturnValue", "value", "manual"] + - ["", "", False, "new", "", "", "Argument[0]", "ReturnValue.Dereference", "value", "manual"] diff --git a/go/ql/lib/ext/bytes.model.yml b/go/ql/lib/ext/bytes.model.yml index 762d0ca16ee6..b55749f828bf 100644 --- a/go/ql/lib/ext/bytes.model.yml +++ b/go/ql/lib/ext/bytes.model.yml @@ -43,6 +43,7 @@ extensions: - ["bytes", "", False, "TrimSuffix", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["bytes", "Buffer", True, "Bytes", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] - ["bytes", "Buffer", True, "Next", "", "", "Argument[receiver]", "ReturnValue", "taint", "manual"] + - ["bytes", "Buffer", True, "Peek", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] - ["bytes", "Buffer", True, "ReadBytes", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] - ["bytes", "Buffer", True, "ReadString", "", "", "Argument[receiver]", "ReturnValue[0]", "taint", "manual"] - ["bytes", "Reader", True, "Reset", "", "", "Argument[0]", "Argument[receiver]", "taint", "manual"] diff --git a/go/ql/lib/ext/errors.model.yml b/go/ql/lib/ext/errors.model.yml index a94c8e558ff4..36b17a49ee02 100644 --- a/go/ql/lib/ext/errors.model.yml +++ b/go/ql/lib/ext/errors.model.yml @@ -4,5 +4,6 @@ extensions: extensible: summaryModel data: - ["errors", "", False, "As", "", "", "Argument[0]", "Argument[1]", "taint", "manual"] + - ["errors", "", False, "AsType", "", "", "Argument[0]", "ReturnValue[0]", "taint", "manual"] - ["errors", "", False, "New", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["errors", "", False, "Unwrap", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] diff --git a/go/ql/lib/qlpack.yml b/go/ql/lib/qlpack.yml index 89863fc641af..758bb94451cb 100644 --- a/go/ql/lib/qlpack.yml +++ b/go/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-all -version: 6.0.0 +version: 6.0.2-dev groups: go dbscheme: go.dbscheme extractor: go @@ -7,6 +7,7 @@ library: true upgrades: upgrades dependencies: codeql/concepts: ${workspace} + codeql/controlflow: ${workspace} codeql/dataflow: ${workspace} codeql/mad: ${workspace} codeql/threat-models: ${workspace} diff --git a/go/ql/lib/semmle/go/AST.qll b/go/ql/lib/semmle/go/AST.qll index c5e388ba000f..6a840f81cbbe 100644 --- a/go/ql/lib/semmle/go/AST.qll +++ b/go/ql/lib/semmle/go/AST.qll @@ -84,6 +84,16 @@ class AstNode extends @node, Locatable { pragma[nomagic] FuncDef getEnclosingFunction() { result = this.getParent().parentInSameFunction*() } + /** Gets the innermost block statement to which this AST node belongs, if any. */ + BlockStmt getEnclosingBlock() { + exists(AstNode p | p = this.getParent() | + result = p + or + not p instanceof BlockStmt and + result = p.getEnclosingBlock() + ) + } + /** * Gets a comma-separated list of the names of the primary CodeQL classes to which this element belongs. */ diff --git a/go/ql/lib/semmle/go/controlflow/BasicBlocks.qll b/go/ql/lib/semmle/go/controlflow/BasicBlocks.qll index 8380c6d6d5d2..43b8c7e8dd39 100644 --- a/go/ql/lib/semmle/go/controlflow/BasicBlocks.qll +++ b/go/ql/lib/semmle/go/controlflow/BasicBlocks.qll @@ -4,140 +4,53 @@ import go private import ControlFlowGraphImpl +private import codeql.controlflow.BasicBlock as BB +private import codeql.controlflow.SuccessorType + +private module Input implements BB::InputSig { + /** A delineated part of the AST with its own CFG. */ + class CfgScope = ControlFlow::Root; + + /** The class of control flow nodes. */ + class Node = ControlFlowNode; + + /** Gets the CFG scope in which this node occurs. */ + CfgScope nodeGetCfgScope(Node node) { node.getRoot() = result } + + /** Gets an immediate successor of this node. */ + Node nodeGetASuccessor(Node node, SuccessorType t) { + result = node.getASuccessor() and + ( + not result instanceof ControlFlow::ConditionGuardNode and t instanceof DirectSuccessor + or + t.(BooleanSuccessor).getValue() = result.(ControlFlow::ConditionGuardNode).getOutcome() + ) + } -/** - * Holds if `nd` starts a new basic block. - */ -private predicate startsBB(ControlFlow::Node nd) { - count(nd.getAPredecessor()) != 1 - or - nd.getAPredecessor().isBranch() -} - -/** - * Holds if the first node of basic block `succ` is a control flow - * successor of the last node of basic block `bb`. - */ -private predicate succBB(BasicBlock bb, BasicBlock succ) { succ = bb.getLastNode().getASuccessor() } - -/** - * Holds if the first node of basic block `bb` is a control flow - * successor of the last node of basic block `pre`. - */ -private predicate predBB(BasicBlock bb, BasicBlock pre) { succBB(pre, bb) } - -/** Holds if `bb` is an entry basic block. */ -private predicate entryBB(BasicBlock bb) { bb.getFirstNode().isEntryNode() } - -/** Holds if `bb` is an exit basic block. */ -private predicate exitBB(BasicBlock bb) { bb.getLastNode().isExitNode() } - -cached -private module Internal { /** - * Holds if `succ` is a control flow successor of `nd` within the same basic block. + * Holds if `node` represents an entry node to be used when calculating + * dominance. */ - private predicate intraBBSucc(ControlFlow::Node nd, ControlFlow::Node succ) { - succ = nd.getASuccessor() and - not startsBB(succ) - } + predicate nodeIsDominanceEntry(Node node) { node instanceof EntryNode } /** - * Holds if `nd` is the `i`th node in basic block `bb`. - * - * In other words, `i` is the shortest distance from a node `bb` - * that starts a basic block to `nd` along the `intraBBSucc` relation. + * Holds if `node` represents an exit node to be used when calculating + * post dominance. */ - cached - predicate bbIndex(BasicBlock bb, ControlFlow::Node nd, int i) = - shortestDistances(startsBB/1, intraBBSucc/2)(bb, nd, i) - - cached - int bbLength(BasicBlock bb) { result = strictcount(ControlFlow::Node nd | bbIndex(bb, nd, _)) } - - cached - predicate reachableBB(BasicBlock bb) { - entryBB(bb) - or - exists(BasicBlock predBB | succBB(predBB, bb) | reachableBB(predBB)) - } + predicate nodeIsPostDominanceExit(Node node) { node instanceof ExitNode } } -private import Internal - -/** Holds if `dom` is an immediate dominator of `bb`. */ -cached -private predicate bbIDominates(BasicBlock dom, BasicBlock bb) = - idominance(entryBB/1, succBB/2)(_, dom, bb) - -/** Holds if `dom` is an immediate post-dominator of `bb`. */ -cached -private predicate bbIPostDominates(BasicBlock dom, BasicBlock bb) = - idominance(exitBB/1, predBB/2)(_, dom, bb) - -/** - * A basic block, that is, a maximal straight-line sequence of control flow nodes - * without branches or joins. - * - * At the database level, a basic block is represented by its first control flow node. - */ -class BasicBlock extends TControlFlowNode { - BasicBlock() { startsBB(this) } - - /** Gets a basic block succeeding this one. */ - BasicBlock getASuccessor() { succBB(this, result) } - - /** Gets a basic block preceding this one. */ - BasicBlock getAPredecessor() { result.getASuccessor() = this } - - /** Gets a node in this block. */ - ControlFlow::Node getANode() { result = this.getNode(_) } - - /** Gets the node at the given position in this block. */ - ControlFlow::Node getNode(int pos) { bbIndex(this, result, pos) } - - /** Gets the first node in this block. */ - ControlFlow::Node getFirstNode() { result = this } +private module BbImpl = BB::Make; - /** Gets the last node in this block. */ - ControlFlow::Node getLastNode() { result = this.getNode(this.length() - 1) } +class BasicBlock = BbImpl::BasicBlock; - /** Gets the length of this block. */ - int length() { result = bbLength(this) } +class EntryBasicBlock = BbImpl::EntryBasicBlock; - /** Gets the basic block that immediately dominates this basic block. */ - ReachableBasicBlock getImmediateDominator() { bbIDominates(result, this) } - - /** Gets the innermost function or file to which this basic block belongs. */ - ControlFlow::Root getRoot() { result = this.getFirstNode().getRoot() } - - /** Gets a textual representation of this basic block. */ - string toString() { result = "basic block" } - - /** Gets the source location for this element. */ - Location getLocation() { result = this.getFirstNode().getLocation() } - - /** - * DEPRECATED: Use `getLocation()` instead. - * - * Holds if this basic block is at the specified location. - * The location spans column `startcolumn` of line `startline` to - * column `endcolumn` of line `endline` in file `filepath`. - * For more information, see - * [Locations](https://codeql.github.com/docs/writing-codeql-queries/providing-locations-in-codeql-queries/). - */ - deprecated predicate hasLocationInfo( - string filepath, int startline, int startcolumn, int endline, int endcolumn - ) { - this.getLocation().hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn) - } -} - -/** - * An entry basic block, that is, a basic block whose first node is an entry node. - */ -class EntryBasicBlock extends BasicBlock { - EntryBasicBlock() { entryBB(this) } +cached +private predicate reachableBB(BasicBlock bb) { + bb instanceof EntryBasicBlock + or + exists(BasicBlock predBB | predBB.getASuccessor(_) = bb | reachableBB(predBB)) } /** @@ -145,38 +58,6 @@ class EntryBasicBlock extends BasicBlock { */ class ReachableBasicBlock extends BasicBlock { ReachableBasicBlock() { reachableBB(this) } - - /** - * Holds if this basic block strictly dominates `bb`. - */ - cached - predicate strictlyDominates(ReachableBasicBlock bb) { bbIDominates+(this, bb) } - - /** - * Holds if this basic block dominates `bb`. - * - * This predicate is reflexive: each reachable basic block dominates itself. - */ - predicate dominates(ReachableBasicBlock bb) { - bb = this or - this.strictlyDominates(bb) - } - - /** - * Holds if this basic block strictly post-dominates `bb`. - */ - cached - predicate strictlyPostDominates(ReachableBasicBlock bb) { bbIPostDominates+(this, bb) } - - /** - * Holds if this basic block post-dominates `bb`. - * - * This predicate is reflexive: each reachable basic block post-dominates itself. - */ - predicate postDominates(ReachableBasicBlock bb) { - bb = this or - this.strictlyPostDominates(bb) - } } /** @@ -184,21 +65,4 @@ class ReachableBasicBlock extends BasicBlock { */ class ReachableJoinBlock extends ReachableBasicBlock { ReachableJoinBlock() { this.getFirstNode().isJoin() } - - /** - * Holds if this basic block belongs to the dominance frontier of `b`, that is - * `b` dominates a predecessor of this block, but not this block itself. - * - * Algorithm from Cooper et al., "A Simple, Fast Dominance Algorithm" (Figure 5), - * who in turn attribute it to Ferrante et al., "The program dependence graph and - * its use in optimization". - */ - predicate inDominanceFrontierOf(ReachableBasicBlock b) { - b = this.getAPredecessor() and not b = this.getImmediateDominator() - or - exists(ReachableBasicBlock prev | this.inDominanceFrontierOf(prev) | - b = prev.getImmediateDominator() and - not b = this.getImmediateDominator() - ) - } } diff --git a/go/ql/lib/semmle/go/controlflow/ControlFlowGraph.qll b/go/ql/lib/semmle/go/controlflow/ControlFlowGraph.qll index 1e66bc61dc45..88adb88c0264 100644 --- a/go/ql/lib/semmle/go/controlflow/ControlFlowGraph.qll +++ b/go/ql/lib/semmle/go/controlflow/ControlFlowGraph.qll @@ -313,6 +313,9 @@ module ControlFlow { */ Expr getCondition() { result = cond } + /** Gets the value of the condition that this node corresponds to. */ + boolean getOutcome() { result = outcome } + override Root getRoot() { result.isRootOf(cond) } override string toString() { result = cond + " is " + outcome } @@ -350,4 +353,6 @@ module ControlFlow { } } +class ControlFlowNode = ControlFlow::Node; + class Write = ControlFlow::WriteNode; diff --git a/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll b/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll index 8ce765267282..388921224ad8 100644 --- a/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll +++ b/go/ql/lib/semmle/go/dataflow/ExternalFlow.qll @@ -153,7 +153,10 @@ module ModelValidation { not part = "" and not (part = "Argument" and pred = "sink") and not parseArg(part, _) and - not part.getName() = "Field" + // If the database does not contain any fields/pointer types then no + // FieldContent/PointerContent exists, so we spuriously think that + // these spec components are invalid. + not part.getName() = ["Field", "Dereference"] or part = input.getToken(0) and parseParam(part, _) @@ -176,7 +179,10 @@ module ModelValidation { invalidSpecComponent(output, part) and not part = "" and not (part = ["Argument", "Parameter"] and pred = "source") and - not part.getName() = "Field" + // If the database does not contain any fields/pointer types then no + // FieldContent/PointerContent exists, so we spuriously think that + // these spec components are invalid. + not part.getName() = ["Field", "Dereference"] or invalidIndexComponent(output, part) ) and @@ -503,44 +509,23 @@ predicate barrierNode(DataFlow::Node node, string kind) { barrierNode(node, kind // adapter class for converting Mad summaries to `SummarizedCallable`s private class SummarizedCallableAdapter extends Public::SummarizedCallable { - SummarizedCallableAdapter() { summaryElement(this, _, _, _, _, _) } + string input_; + string output_; + string kind; + Public::Provenance p_; + string model_; - private predicate relevantSummaryElementManual( - string input, string output, string kind, string model - ) { - exists(Public::Provenance provenance | - summaryElement(this, input, output, kind, provenance, model) and - provenance.isManual() - ) - } - - private predicate relevantSummaryElementGenerated( - string input, string output, string kind, string model - ) { - exists(Public::Provenance provenance | - summaryElement(this, input, output, kind, provenance, model) and - provenance.isGenerated() - ) and - not exists(Public::Provenance provenance | - neutralElement(this, "summary", provenance) and - provenance.isManual() - ) - } + SummarizedCallableAdapter() { summaryElement(this, input_, output_, kind, p_, model_) } override predicate propagatesFlow( - string input, string output, boolean preservesValue, string model + string input, string output, boolean preservesValue, Public::Provenance p, boolean isExact, + string model ) { - exists(string kind | - this.relevantSummaryElementManual(input, output, kind, model) - or - not this.relevantSummaryElementManual(_, _, _, _) and - this.relevantSummaryElementGenerated(input, output, kind, model) - | - if kind = "value" then preservesValue = true else preservesValue = false - ) - } - - override predicate hasProvenance(Public::Provenance provenance) { - summaryElement(this, _, _, _, provenance, _) + input = input_ and + output = output_ and + (if kind = "value" then preservesValue = true else preservesValue = false) and + p = p_ and + isExact = true and + model = model_ } } diff --git a/go/ql/lib/semmle/go/dataflow/FlowSummary.qll b/go/ql/lib/semmle/go/dataflow/FlowSummary.qll index f38cfafc056e..749e1c92e06d 100644 --- a/go/ql/lib/semmle/go/dataflow/FlowSummary.qll +++ b/go/ql/lib/semmle/go/dataflow/FlowSummary.qll @@ -18,6 +18,11 @@ deprecated class SummaryComponentStack = Impl::Private::SummaryComponentStack; deprecated module SummaryComponentStack = Impl::Private::SummaryComponentStack; -class SummarizedCallable = Impl::Public::SummarizedCallable; +/** Provides the `Range` class used to define the extent of `SummarizedCallable`. */ +module SummarizedCallable { + class Range = Impl::Public::SummarizedCallable; +} + +class SummarizedCallable = Impl::Public::RelevantSummarizedCallable; deprecated class RequiredSummaryComponentStack = Impl::Private::RequiredSummaryComponentStack; diff --git a/go/ql/lib/semmle/go/dataflow/SSA.qll b/go/ql/lib/semmle/go/dataflow/SSA.qll index 98dae5f3d014..69fffa393c19 100644 --- a/go/ql/lib/semmle/go/dataflow/SSA.qll +++ b/go/ql/lib/semmle/go/dataflow/SSA.qll @@ -144,7 +144,7 @@ class SsaDefinition extends TSsaDefinition { abstract string prettyPrintRef(); /** Gets the innermost function or file to which this SSA definition belongs. */ - ControlFlow::Root getRoot() { result = this.getBasicBlock().getRoot() } + ControlFlow::Root getRoot() { result = this.getBasicBlock().getScope() } /** Gets a textual representation of this element. */ string toString() { result = this.prettyPrintDef() } @@ -285,7 +285,7 @@ abstract class SsaPseudoDefinition extends SsaImplicitDefinition { */ class SsaPhiNode extends SsaPseudoDefinition, TPhi { override SsaVariable getAnInput() { - result = getDefReachingEndOf(this.getBasicBlock().getAPredecessor(), this.getSourceVariable()) + result = getDefReachingEndOf(this.getBasicBlock().getAPredecessor(_), this.getSourceVariable()) } override predicate definesAt(ReachableBasicBlock bb, int i, SsaSourceVariable v) { diff --git a/go/ql/lib/semmle/go/dataflow/SsaImpl.qll b/go/ql/lib/semmle/go/dataflow/SsaImpl.qll index 8549d9b497ad..026c8114f9fb 100644 --- a/go/ql/lib/semmle/go/dataflow/SsaImpl.qll +++ b/go/ql/lib/semmle/go/dataflow/SsaImpl.qll @@ -71,7 +71,7 @@ private module Internal { private predicate inDefDominanceFrontier(ReachableJoinBlock bb, SsaSourceVariable v) { exists(ReachableBasicBlock defbb, SsaDefinition def | def.definesAt(defbb, _, v) and - bb.inDominanceFrontierOf(defbb) + defbb.inDominanceFrontier(bb) ) } @@ -86,7 +86,7 @@ private module Internal { /** Holds if the `i`th node of `bb` in function `f` is an entry node. */ private predicate entryNode(FuncDef f, ReachableBasicBlock bb, int i) { - f = bb.getRoot() and + f = bb.getScope() and bb.getNode(i).isEntryNode() } @@ -94,7 +94,7 @@ private module Internal { * Holds if the `i`th node of `bb` in function `f` is a function call. */ private predicate callNode(FuncDef f, ReachableBasicBlock bb, int i) { - f = bb.getRoot() and + f = bb.getScope() and bb.getNode(i).(IR::EvalInstruction).getExpr() instanceof CallExpr } @@ -186,7 +186,7 @@ private module Internal { * Holds if `v` is live at the beginning of any successor of basic block `bb`. */ private predicate liveAtSuccEntry(ReachableBasicBlock bb, SsaSourceVariable v) { - liveAtEntry(bb.getASuccessor(), v) + liveAtEntry(bb.getASuccessor(_), v) } /** @@ -317,7 +317,7 @@ private module Internal { SsaSourceVariable v, ReachableBasicBlock b1, ReachableBasicBlock b2 ) { varOccursInBlock(v, b1) and - b2 = b1.getASuccessor() + b2 = b1.getASuccessor(_) } /** @@ -335,7 +335,7 @@ private module Internal { ) { varBlockReaches(v, b1, mid) and not varOccursInBlock(v, mid) and - b2 = mid.getASuccessor() + b2 = mid.getASuccessor(_) } /** diff --git a/go/ql/lib/semmle/go/dataflow/internal/FlowSummaryImpl.qll b/go/ql/lib/semmle/go/dataflow/internal/FlowSummaryImpl.qll index 633864fbf8c6..f09f42872ea2 100644 --- a/go/ql/lib/semmle/go/dataflow/internal/FlowSummaryImpl.qll +++ b/go/ql/lib/semmle/go/dataflow/internal/FlowSummaryImpl.qll @@ -29,6 +29,8 @@ module Input implements InputSig { class SinkBase = Void; + predicate callableFromSource(SummarizedCallableBase c) { exists(c.getFuncDef()) } + predicate neutralElement( Input::SummarizedCallableBase c, string kind, string provenance, boolean isExact ) { @@ -36,8 +38,7 @@ module Input implements InputSig { neutralModel(namespace, type, name, signature, kind, provenance) and c.asFunction() = interpretElement(namespace, type, false, name, signature, "").asEntity() ) and - // isExact is not needed for Go. - isExact = false + isExact = true } ArgumentPosition callbackSelfParameterPosition() { result = -1 } diff --git a/go/ql/lib/semmle/go/frameworks/stdlib/NetHttp.qll b/go/ql/lib/semmle/go/frameworks/stdlib/NetHttp.qll index c6adc5c57406..a2aab2517d7a 100644 --- a/go/ql/lib/semmle/go/frameworks/stdlib/NetHttp.qll +++ b/go/ql/lib/semmle/go/frameworks/stdlib/NetHttp.qll @@ -157,7 +157,7 @@ module NetHttp { | this = call.getASyntacticArgument() and callable = call.getACalleeIncludingExternals() and - callable.propagatesFlow(input, output, _, _) + callable.propagatesFlow(input, output, _, _, _, _) | // A modeled function conveying taint from some input to the response writer, // e.g. `io.Copy(responseWriter, someTaintedReader)` diff --git a/go/ql/src/CHANGELOG.md b/go/ql/src/CHANGELOG.md index 8a2f1355eec8..f2475a92207c 100644 --- a/go/ql/src/CHANGELOG.md +++ b/go/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.5.5 + +No user-facing changes. + ## 1.5.4 No user-facing changes. diff --git a/go/ql/src/Security/CWE-020/IncompleteHostnameRegexp.ql b/go/ql/src/Security/CWE-020/IncompleteHostnameRegexp.ql index f6e3df7d1d91..a6321b7d7cb3 100644 --- a/go/ql/src/Security/CWE-020/IncompleteHostnameRegexp.ql +++ b/go/ql/src/Security/CWE-020/IncompleteHostnameRegexp.ql @@ -45,7 +45,7 @@ predicate writesHttpError(ReachableBasicBlock b) { predicate onlyErrors(BasicBlock block) { writesHttpError(block) or - forex(ReachableBasicBlock pred | pred = block.getAPredecessor() | onlyErrors(pred)) + forex(ReachableBasicBlock pred | pred = block.getAPredecessor(_) | onlyErrors(pred)) } /** Gets a node that refers to a handler that is considered to return an HTTP error. */ diff --git a/go/ql/src/change-notes/released/1.5.5.md b/go/ql/src/change-notes/released/1.5.5.md new file mode 100644 index 000000000000..76d0ac894891 --- /dev/null +++ b/go/ql/src/change-notes/released/1.5.5.md @@ -0,0 +1,3 @@ +## 1.5.5 + +No user-facing changes. diff --git a/go/ql/src/codeql-pack.release.yml b/go/ql/src/codeql-pack.release.yml index c216828ee1c3..1c73e9d9ce9e 100644 --- a/go/ql/src/codeql-pack.release.yml +++ b/go/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.5.4 +lastReleaseVersion: 1.5.5 diff --git a/go/ql/src/qlpack.yml b/go/ql/src/qlpack.yml index e6c835ad42a9..cb2e964d4402 100644 --- a/go/ql/src/qlpack.yml +++ b/go/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-queries -version: 1.5.4 +version: 1.5.6-dev groups: - go - queries diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/go.mod b/go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/go.mod index f5b1162fa7a7..d5f2af3e7879 100644 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/go.mod +++ b/go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/go.mod @@ -1,5 +1,5 @@ module semmle.go.Packages -go 1.13 +go 1.26 require github.com/nonexistent/test v0.0.0-20200203000000-0000000000000 diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/sinks.expected b/go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/sinks.expected index b39135f827e3..e5966200370e 100644 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/sinks.expected +++ b/go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/sinks.expected @@ -44,4 +44,6 @@ invalidModelRow | test.go:199:23:199:26 | arg2 | qltest | | test.go:199:29:199:32 | arg3 | qltest | | test.go:202:22:202:25 | temp | qltest | -| test.go:206:10:206:12 | src | qltest | +| test.go:204:10:204:17 | call to new | qltest | +| test.go:205:10:205:18 | star expression | qltest | +| test.go:209:10:209:12 | src | qltest | diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/srcs.expected b/go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/srcs.expected index f99ee92a4928..e04fcf753095 100644 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/srcs.expected +++ b/go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/srcs.expected @@ -22,4 +22,4 @@ invalidModelRow | test.go:187:24:187:31 | call to Src1 | qltest | | test.go:191:24:191:31 | call to Src1 | qltest | | test.go:201:10:201:28 | selection of SourceVariable | qltest | -| test.go:205:15:205:17 | definition of src | qltest | +| test.go:208:15:208:17 | definition of src | qltest | diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/test.go b/go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/test.go index c9d732e74002..d244bc676aab 100644 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/test.go +++ b/go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow/test.go @@ -200,6 +200,9 @@ func simpleflow() { temp := test.SourceVariable test.SinkVariable = temp // $ hasTaintFlow="temp" + + b.Sink1(new(src)) // $ hasTaintFlow="call to new" + b.Sink1(*new(src)) // $ hasTaintFlow="star expression" } func srcParam(src string, b test.B) { diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/go.mod b/go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/go.mod index 57813acac558..d5f2af3e7879 100644 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/go.mod +++ b/go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/go.mod @@ -1,5 +1,5 @@ module semmle.go.Packages -go 1.21 +go 1.26 require github.com/nonexistent/test v0.0.0-20200203000000-0000000000000 diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/sinks.expected b/go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/sinks.expected index e7421a9ad147..f3fef94dfa6e 100644 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/sinks.expected +++ b/go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/sinks.expected @@ -50,4 +50,6 @@ invalidModelRow | test.go:206:10:206:26 | call to min | qltest | | test.go:207:10:207:26 | call to min | qltest | | test.go:210:22:210:25 | temp | qltest | -| test.go:214:10:214:12 | src | qltest | +| test.go:212:10:212:17 | call to new | qltest | +| test.go:213:10:213:18 | star expression | qltest | +| test.go:217:10:217:12 | src | qltest | diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/srcs.expected b/go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/srcs.expected index 009238baa4d8..f5768d49d1b5 100644 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/srcs.expected +++ b/go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/srcs.expected @@ -22,4 +22,4 @@ invalidModelRow | test.go:187:24:187:31 | call to Src1 | qltest | | test.go:191:24:191:31 | call to Src1 | qltest | | test.go:209:10:209:28 | selection of SourceVariable | qltest | -| test.go:213:15:213:17 | definition of src | qltest | +| test.go:216:15:216:17 | definition of src | qltest | diff --git a/go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/test.go b/go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/test.go index 3c172e6082d2..4e4b0527787c 100644 --- a/go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/test.go +++ b/go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow/test.go @@ -208,6 +208,9 @@ func simpleflow() { temp := test.SourceVariable test.SinkVariable = temp // $ hasValueFlow="temp" + + b.Sink1(new(src)) + b.Sink1(*new(src)) // $ hasValueFlow="star expression" } func srcParam(src string, b test.B) { diff --git a/go/ql/test/library-tests/semmle/go/frameworks/StdlibTaintFlow/Builtin.go b/go/ql/test/library-tests/semmle/go/frameworks/StdlibTaintFlow/Builtin.go new file mode 100644 index 000000000000..f83dfa4ee23f --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/frameworks/StdlibTaintFlow/Builtin.go @@ -0,0 +1,116 @@ +package main + +// Also tested in go/ql/test/library-tests/semmle/go/dataflow/ExternalValueFlow +// and go/ql/test/library-tests/semmle/go/dataflow/ExternalTaintFlow. + +func TaintStepTest_Append1(sourceCQL interface{}) interface{} { + from := sourceCQL.([]byte) + var intoInterface interface{} + intoInterface = append(from, "a string"...) + return intoInterface +} + +func TaintStepTest_Append2(sourceCQL interface{}) interface{} { + from := sourceCQL.(int) + slice := []int{from} + var intoInterface []int + intoInterface = append(slice, 0) + return intoInterface[0] +} + +func TaintStepTest_Append3(sourceCQL interface{}) interface{} { + from := sourceCQL.(string) + var intoInterface interface{} + intoInterface = append([]byte{}, from...) + return intoInterface +} + +func TaintStepTest_Append4(sourceCQL interface{}) interface{} { + from := sourceCQL.(int) + var intoInterface []int + intoInterface = append([]int{}, 0, from, 1) + return intoInterface[0] +} + +func TaintStepTest_Copy1(sourceCQL interface{}) interface{} { + from := sourceCQL.(string) + var intoInterface []byte + copy(intoInterface, from) + return intoInterface +} + +func TaintStepTest_Copy2(sourceCQL interface{}) interface{} { + from := []int{sourceCQL.(int)} + var intoInterface []int + copy(intoInterface, from) + return intoInterface[0] +} + +func TaintStepTest_Max(sourceCQL interface{}) interface{} { + from := sourceCQL.(int) + var intoInterface int + intoInterface = max(0, 1, from, 2, 3) + return intoInterface +} + +func TaintStepTest_Min(sourceCQL interface{}) interface{} { + from := sourceCQL.(int) + var intoInterface int + intoInterface = min(0, 1, from, 2, 3) + return intoInterface +} + +func TaintStepTest_New(sourceCQL interface{}) interface{} { + from := sourceCQL.(int) + var intoInterface *int + intoInterface = new(from) + return *intoInterface +} + +func RunAllTaints_Builtin() { + { + source := newSource(0) + out := TaintStepTest_Append1(source) + sink(0, out) + } + { + source := newSource(1) + out := TaintStepTest_Append2(source) + sink(1, out) + } + { + source := newSource(2) + out := TaintStepTest_Append3(source) + sink(2, out) + } + { + source := newSource(3) + out := TaintStepTest_Append4(source) + sink(3, out) + } + { + source := newSource(4) + out := TaintStepTest_Copy1(source) + sink(4, out) + } + { + source := newSource(5) + out := TaintStepTest_Copy2(source) + sink(5, out) + } + { + source := newSource(3) + out := TaintStepTest_Max(source) + sink(3, out) + } + { + source := newSource(4) + out := TaintStepTest_Min(source) + sink(4, out) + } + { + source := newSource(5) + out := TaintStepTest_New(source) + sink(5, out) + } +} diff --git a/go/ql/test/library-tests/semmle/go/frameworks/StdlibTaintFlow/Bytes.go b/go/ql/test/library-tests/semmle/go/frameworks/StdlibTaintFlow/Bytes.go index 8e31c32aba4f..ac528c46267d 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/StdlibTaintFlow/Bytes.go +++ b/go/ql/test/library-tests/semmle/go/frameworks/StdlibTaintFlow/Bytes.go @@ -349,6 +349,12 @@ func TaintStepTest_CutSuffix(sourceCQL interface{}) interface{} { return result } +func TaintStepTest_BytesBufferPeek(sourceCQL interface{}) interface{} { + fromBuffer := sourceCQL.(bytes.Buffer) + intoByte, _ := fromBuffer.Peek(128) + return intoByte +} + func RunAllTaints_Bytes() { { source := newSource(0) @@ -625,4 +631,9 @@ func RunAllTaints_Bytes() { out := TaintStepTest_Clone(source) sink(54, out) } + { + source := newSource(55) + out := TaintStepTest_BytesBufferPeek(source) + sink(55, out) + } } diff --git a/go/ql/test/library-tests/semmle/go/frameworks/StdlibTaintFlow/Errors.go b/go/ql/test/library-tests/semmle/go/frameworks/StdlibTaintFlow/Errors.go index 324f1e36ae70..71b7f9441f81 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/StdlibTaintFlow/Errors.go +++ b/go/ql/test/library-tests/semmle/go/frameworks/StdlibTaintFlow/Errors.go @@ -35,6 +35,13 @@ func TaintStepTest_ErrorsJoin2(sourceCQL interface{}) interface{} { return intoError957 } +func TaintStepTest_ErrorsAsType(sourceCQL interface{}) interface{} { + fromError := sourceCQL.(error) + var intoInterface interface{} + intoInterface, _ = errors.AsType[error](fromError) + return intoInterface +} + func RunAllTaints_Errors() { { source := newSource(0) @@ -61,4 +68,9 @@ func RunAllTaints_Errors() { out := TaintStepTest_ErrorsJoin2(source) sink(4, out) } + { + source := newSource(5) + out := TaintStepTest_ErrorsAsType(source) + sink(5, out) + } } diff --git a/go/ql/test/library-tests/semmle/go/frameworks/StdlibTaintFlow/go.mod b/go/ql/test/library-tests/semmle/go/frameworks/StdlibTaintFlow/go.mod index 5ba39421f3b8..1a8220297f27 100644 --- a/go/ql/test/library-tests/semmle/go/frameworks/StdlibTaintFlow/go.mod +++ b/go/ql/test/library-tests/semmle/go/frameworks/StdlibTaintFlow/go.mod @@ -1,6 +1,6 @@ module example.com/m -go 1.24 +go 1.26 require ( golang.org/x/net v0.0.0-20201010224723-4f7140c49acb diff --git a/java/documentation/library-coverage/coverage.csv b/java/documentation/library-coverage/coverage.csv index c0cac724f934..60a20a483f15 100644 --- a/java/documentation/library-coverage/coverage.csv +++ b/java/documentation/library-coverage/coverage.csv @@ -96,7 +96,7 @@ java.security,21,,583,,,11,10,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,285,29 java.sql,15,1,292,,,,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,4,,9,,,,,,,,,,1,,,,274,18 java.text,,,154,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,82 java.time,,,131,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,27,104 -java.util,48,2,1339,,,,,,,,,1,,,,,,,,,,,34,,,,3,,,,5,2,,1,2,,,,,,,,,,,,,,2,,,558,781 +java.util,48,2,1340,,,,,,,,,1,,,,,,,,,,,34,,,,3,,,,5,2,,1,2,,,,,,,,,,,,,,2,,,558,782 javafx.scene.web,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,, javax.accessibility,,,63,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,28,35 javax.activation,2,,7,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,1,,,,,,,,,,,,,,,,7, @@ -153,7 +153,7 @@ org.acegisecurity,,,49,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,49, org.antlr.runtime,1,,,,,,,,,,,,,,,,,,,,,,,,,,1,,,,,,,,,,,,,,,,,,,,,,,,,, org.apache.commons.codec,,,6,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,6, org.apache.commons.collections,,,800,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,17,783 -org.apache.commons.collections4,,,800,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,17,783 +org.apache.commons.collections4,,,806,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,17,789 org.apache.commons.compress.archivers.tar,,,4,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,4, org.apache.commons.exec,10,,,,6,,,,,,4,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, org.apache.commons.fileupload,,11,4,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,11,4, @@ -262,7 +262,7 @@ org.springframework.web.portlet,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,, org.springframework.web.reactive.function.client,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,,,,,,,,, org.springframework.web.servlet,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,,, org.springframework.web.socket,,8,6,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,8,6, -org.springframework.web.util,,9,157,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,9,132,25 +org.springframework.web.util,,9,159,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,9,134,25 org.thymeleaf,2,,2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,,,,,,,,,,,,,2, org.xml.sax,,,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1, org.xmlpull.v1,,3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3,, diff --git a/java/documentation/library-coverage/coverage.rst b/java/documentation/library-coverage/coverage.rst index fc3b041d08e0..a7f940ad5717 100644 --- a/java/documentation/library-coverage/coverage.rst +++ b/java/documentation/library-coverage/coverage.rst @@ -9,7 +9,7 @@ Java framework & library support Framework / library,Package,Flow sources,Taint & value steps,Sinks (total),`CWE‑022` :sub:`Path injection`,`CWE‑079` :sub:`Cross-site scripting`,`CWE‑089` :sub:`SQL injection`,`CWE‑090` :sub:`LDAP injection`,`CWE‑094` :sub:`Code injection`,`CWE‑918` :sub:`Request Forgery` Android,``android.*``,52,481,181,1,3,67,,, Android extensions,``androidx.*``,5,183,60,,,,,, - `Apache Commons Collections `_,"``org.apache.commons.collections``, ``org.apache.commons.collections4``",,1600,,,,,,, + `Apache Commons Collections `_,"``org.apache.commons.collections``, ``org.apache.commons.collections4``",,1606,,,,,,, `Apache Commons IO `_,``org.apache.commons.io``,,570,124,105,,,,,15 `Apache Commons Lang `_,``org.apache.commons.lang3``,,425,7,,,,,, `Apache Commons Text `_,``org.apache.commons.text``,,272,,,,,,, @@ -26,7 +26,7 @@ Java framework & library support `JBoss Logging `_,``org.jboss.logging``,,,324,,,,,, `JSON-java `_,``org.json``,,236,,,,,,, `Jackson `_,``com.fasterxml.jackson.*``,,9,2,2,,,,, - Java Standard Library,``java.*``,10,4628,260,99,,9,,,26 + Java Standard Library,``java.*``,10,4629,260,99,,9,,,26 Java extensions,"``javax.*``, ``jakarta.*``",101,4185,90,10,4,2,1,1,4 `Jetty `_,``org.eclipse.jetty.client``,,,2,,,,,,2 Kotlin Standard Library,``kotlin*``,,1849,16,14,,,,,2 @@ -37,9 +37,9 @@ Java framework & library support `Retrofit `_,``retrofit2``,,1,1,,,,,,1 `SLF4J `_,``org.slf4j``,,6,55,,,,,, `SnakeYAML `_,``org.yaml.snakeyaml``,,1,,,,,,, - `Spring `_,``org.springframework.*``,46,492,143,26,,28,14,,35 + `Spring `_,``org.springframework.*``,46,494,143,26,,28,14,,35 `Thymeleaf `_,``org.thymeleaf``,,2,2,,,,,, `jOOQ `_,``org.jooq``,,,1,,,1,,, Others,"``actions.osgi``, ``antlr``, ``ch.ethz.ssh2``, ``cn.hutool.core.codec``, ``com.alibaba.com.caucho.hessian.io``, ``com.alibaba.druid.sql``, ``com.alibaba.fastjson2``, ``com.amazonaws.auth``, ``com.auth0.jwt.algorithms``, ``com.azure.identity``, ``com.caucho.burlap.io``, ``com.caucho.hessian.io``, ``com.cedarsoftware.util.io``, ``com.esotericsoftware.kryo.io``, ``com.esotericsoftware.kryo5.io``, ``com.esotericsoftware.yamlbeans``, ``com.hubspot.jinjava``, ``com.jcraft.jsch``, ``com.microsoft.sqlserver.jdbc``, ``com.mitchellbosecke.pebble``, ``com.opensymphony.xwork2``, ``com.sshtools.j2ssh.authentication``, ``com.sun.crypto.provider``, ``com.sun.jndi.ldap``, ``com.sun.net.httpserver``, ``com.sun.net.ssl``, ``com.sun.rowset``, ``com.sun.security.auth.module``, ``com.sun.security.ntlm``, ``com.sun.security.sasl.digest``, ``com.thoughtworks.xstream``, ``com.trilead.ssh2``, ``com.unboundid.ldap.sdk``, ``com.zaxxer.hikari``, ``flexjson``, ``hudson``, ``io.jsonwebtoken``, ``io.undertow.server.handlers.resource``, ``javafx.scene.web``, ``jenkins``, ``jodd.json``, ``liquibase.database.jvm``, ``liquibase.statement.core``, ``net.lingala.zip4j``, ``net.schmizz.sshj``, ``net.sf.json``, ``net.sf.saxon.s9api``, ``ognl``, ``org.acegisecurity``, ``org.antlr.runtime``, ``org.apache.commons.codec``, ``org.apache.commons.compress.archivers.tar``, ``org.apache.commons.exec``, ``org.apache.commons.fileupload``, ``org.apache.commons.httpclient.util``, ``org.apache.commons.jelly``, ``org.apache.commons.jexl2``, ``org.apache.commons.jexl3``, ``org.apache.commons.lang``, ``org.apache.commons.logging``, ``org.apache.commons.net``, ``org.apache.commons.ognl``, ``org.apache.cxf.catalog``, ``org.apache.cxf.common.classloader``, ``org.apache.cxf.common.jaxb``, ``org.apache.cxf.common.logging``, ``org.apache.cxf.configuration.jsse``, ``org.apache.cxf.helpers``, ``org.apache.cxf.resource``, ``org.apache.cxf.staxutils``, ``org.apache.cxf.tools.corba.utils``, ``org.apache.cxf.tools.util``, ``org.apache.cxf.transform``, ``org.apache.directory.ldap.client.api``, ``org.apache.hadoop.fs``, ``org.apache.hadoop.hive.metastore``, ``org.apache.hadoop.hive.ql.exec``, ``org.apache.hadoop.hive.ql.metadata``, ``org.apache.hc.client5.http.async.methods``, ``org.apache.hc.client5.http.classic.methods``, ``org.apache.hc.client5.http.fluent``, ``org.apache.hive.hcatalog.templeton``, ``org.apache.ibatis.jdbc``, ``org.apache.ibatis.mapping``, ``org.apache.log4j``, ``org.apache.shiro.authc``, ``org.apache.shiro.codec``, ``org.apache.shiro.jndi``, ``org.apache.shiro.mgt``, ``org.apache.sshd.client.session``, ``org.apache.tools.ant``, ``org.apache.tools.zip``, ``org.codehaus.cargo.container.installer``, ``org.dom4j``, ``org.exolab.castor.xml``, ``org.fusesource.leveldbjni``, ``org.geogebra.web.full.main``, ``org.gradle.api.file``, ``org.ho.yaml``, ``org.influxdb``, ``org.jabsorb``, ``org.jboss.vfs``, ``org.jdbi.v3.core``, ``org.jenkins.ui.icon``, ``org.jenkins.ui.symbol``, ``org.keycloak.models.map.storage``, ``org.kohsuke.stapler``, ``org.lastaflute.web``, ``org.mvel2``, ``org.openjdk.jmh.runner.options``, ``org.owasp.esapi``, ``org.pac4j.jwt.config.encryption``, ``org.pac4j.jwt.config.signature``, ``org.scijava.log``, ``org.xml.sax``, ``org.xmlpull.v1``, ``play.libs.ws``, ``play.mvc``, ``ratpack.core.form``, ``ratpack.core.handling``, ``ratpack.core.http``, ``ratpack.exec``, ``ratpack.form``, ``ratpack.func``, ``ratpack.handling``, ``ratpack.http``, ``ratpack.util``, ``software.amazon.awssdk.transfer.s3.model``, ``sun.jvmstat.perfdata.monitor.protocol.local``, ``sun.jvmstat.perfdata.monitor.protocol.rmi``, ``sun.misc``, ``sun.net.ftp``, ``sun.net.www.protocol.http``, ``sun.security.acl``, ``sun.security.jgss.krb5``, ``sun.security.krb5``, ``sun.security.pkcs``, ``sun.security.pkcs11``, ``sun.security.provider``, ``sun.security.ssl``, ``sun.security.x509``, ``sun.tools.jconsole``",108,6034,757,131,6,14,18,,185 - Totals,,363,26372,2681,404,16,134,33,1,409 + Totals,,363,26381,2681,404,16,134,33,1,409 diff --git a/java/kotlin-extractor/BUILD.bazel b/java/kotlin-extractor/BUILD.bazel index a714e06d4111..a4356af1835b 100644 --- a/java/kotlin-extractor/BUILD.bazel +++ b/java/kotlin-extractor/BUILD.bazel @@ -124,13 +124,7 @@ kt_javac_options( javac_opts = ":javac-options", kotlinc_opts = ":kotlinc-options-%s" % v, module_name = "codeql-kotlin-extractor", - # resource_strip_prefix is very nit-picky: the following makes it work from - # `codeql`, `@codeql_kotlin_embeddable` and `semmle-code` - resource_strip_prefix = ( - ("../%s/" % repo_name() if repo_name() else "") + - ("%s/" % package_name() if package_name() else "") + - v - ), + resource_strip_prefix = v, resources = [ ":resources-%s" % v, ], diff --git a/java/kotlin-extractor/deps/kotlin-compiler-1.6.0.jar b/java/kotlin-extractor/deps/kotlin-compiler-1.6.0.jar deleted file mode 100644 index 4a98879e43e6..000000000000 --- a/java/kotlin-extractor/deps/kotlin-compiler-1.6.0.jar +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4bd7a92568fd89c23b7f9f36d4380886beed18d3d54ea6adf49bebae627db805 -size 51408858 diff --git a/java/kotlin-extractor/deps/kotlin-compiler-1.6.20.jar b/java/kotlin-extractor/deps/kotlin-compiler-1.6.20.jar deleted file mode 100644 index 5a467a5af518..000000000000 --- a/java/kotlin-extractor/deps/kotlin-compiler-1.6.20.jar +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:90567c5cf297985d028fa39aa3a7904dc8096173e1c7f3d3f35fe7074581098e -size 53370229 diff --git a/java/kotlin-extractor/deps/kotlin-compiler-1.7.0.jar b/java/kotlin-extractor/deps/kotlin-compiler-1.7.0.jar deleted file mode 100644 index ef54ce1e6532..000000000000 --- a/java/kotlin-extractor/deps/kotlin-compiler-1.7.0.jar +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ce85fafb3e24712d62a0d02d277c2d56197d74afdd4f5ca995eaf33d2c504663 -size 53906809 diff --git a/java/kotlin-extractor/deps/kotlin-compiler-1.7.20.jar b/java/kotlin-extractor/deps/kotlin-compiler-1.7.20.jar deleted file mode 100644 index 442aea3e3425..000000000000 --- a/java/kotlin-extractor/deps/kotlin-compiler-1.7.20.jar +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0e36d98c56f7c9685ab9d9e1fac9be36a5214939adb3f905b93c62de76023618 -size 54773087 diff --git a/java/kotlin-extractor/deps/kotlin-compiler-2.3.0.jar b/java/kotlin-extractor/deps/kotlin-compiler-2.3.0.jar new file mode 100644 index 000000000000..58a4dfadbe9d --- /dev/null +++ b/java/kotlin-extractor/deps/kotlin-compiler-2.3.0.jar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:03e377b3beffa83e26674d0663f746bfb969b197fd8aed9432cfd8abd60db0c5 +size 59091069 diff --git a/java/kotlin-extractor/deps/kotlin-compiler-embeddable-1.6.0.jar b/java/kotlin-extractor/deps/kotlin-compiler-embeddable-1.6.0.jar deleted file mode 100644 index eafb6508d449..000000000000 --- a/java/kotlin-extractor/deps/kotlin-compiler-embeddable-1.6.0.jar +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0366843cd2defdd583c6b16b10bc32b85f28c5bf9510f10e44c886f5bd24c388 -size 49978431 diff --git a/java/kotlin-extractor/deps/kotlin-compiler-embeddable-1.6.20.jar b/java/kotlin-extractor/deps/kotlin-compiler-embeddable-1.6.20.jar deleted file mode 100644 index f426dae65b1e..000000000000 --- a/java/kotlin-extractor/deps/kotlin-compiler-embeddable-1.6.20.jar +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:be634faaafb56816b6ef6d583e57ab33e4d6e5180cde2f505ccf7d45dc738ef8 -size 51976423 diff --git a/java/kotlin-extractor/deps/kotlin-compiler-embeddable-1.7.0.jar b/java/kotlin-extractor/deps/kotlin-compiler-embeddable-1.7.0.jar deleted file mode 100644 index 0857bed8c9e1..000000000000 --- a/java/kotlin-extractor/deps/kotlin-compiler-embeddable-1.7.0.jar +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:573935b492e65b93a792eaa6270295532f580cd4f26f9f6eb105ecbafcd182d4 -size 52514265 diff --git a/java/kotlin-extractor/deps/kotlin-compiler-embeddable-1.7.20.jar b/java/kotlin-extractor/deps/kotlin-compiler-embeddable-1.7.20.jar deleted file mode 100644 index b95097b6935e..000000000000 --- a/java/kotlin-extractor/deps/kotlin-compiler-embeddable-1.7.20.jar +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5ec2be1872dc47b9dcb466f1781eded6c59d9eee18657d4b0f1148e619caea36 -size 53395419 diff --git a/java/kotlin-extractor/deps/kotlin-compiler-embeddable-2.3.0.jar b/java/kotlin-extractor/deps/kotlin-compiler-embeddable-2.3.0.jar new file mode 100644 index 000000000000..00ec4cb68016 --- /dev/null +++ b/java/kotlin-extractor/deps/kotlin-compiler-embeddable-2.3.0.jar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8dbd882fa58c3d17e683a27390288315f8b490f8e3e3b1be4dc3e280d37e285a +size 57669576 diff --git a/java/kotlin-extractor/deps/kotlin-stdlib-1.6.0.jar b/java/kotlin-extractor/deps/kotlin-stdlib-1.6.0.jar deleted file mode 100644 index 3ad56eecdc2d..000000000000 --- a/java/kotlin-extractor/deps/kotlin-stdlib-1.6.0.jar +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:115daea30b0d484afcf2360237b9d9537f48a4a2f03f3cc2a16577dfc6e90342 -size 1508076 diff --git a/java/kotlin-extractor/deps/kotlin-stdlib-1.6.20.jar b/java/kotlin-extractor/deps/kotlin-stdlib-1.6.20.jar deleted file mode 100644 index b170c1da738b..000000000000 --- a/java/kotlin-extractor/deps/kotlin-stdlib-1.6.20.jar +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:eeb51c2b67b26233fd81d0bc4f8044ec849718890905763ceffd84a31e2cb799 -size 1509405 diff --git a/java/kotlin-extractor/deps/kotlin-stdlib-1.7.0.jar b/java/kotlin-extractor/deps/kotlin-stdlib-1.7.0.jar deleted file mode 100644 index bed18f8429b7..000000000000 --- a/java/kotlin-extractor/deps/kotlin-stdlib-1.7.0.jar +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:aa88e9625577957f3249a46cb6e166ee09b369e600f7a11d148d16b0a6d87f05 -size 1524619 diff --git a/java/kotlin-extractor/deps/kotlin-stdlib-1.7.20.jar b/java/kotlin-extractor/deps/kotlin-stdlib-1.7.20.jar deleted file mode 100644 index 9998f1e65920..000000000000 --- a/java/kotlin-extractor/deps/kotlin-stdlib-1.7.20.jar +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:7779ec96b9acbf92ca023858ac04543f9d2c3bdf1722425fff42f25ff3acfc9b -size 1537347 diff --git a/java/kotlin-extractor/deps/kotlin-stdlib-2.3.0.jar b/java/kotlin-extractor/deps/kotlin-stdlib-2.3.0.jar new file mode 100644 index 000000000000..5a668eba5f1d --- /dev/null +++ b/java/kotlin-extractor/deps/kotlin-stdlib-2.3.0.jar @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:887587c91713250ad52fe14ad9166d042c33835049890e9437f355ffc5a195b1 +size 1796996 diff --git a/java/kotlin-extractor/dev/wrapper.py b/java/kotlin-extractor/dev/wrapper.py index aeef81e5c1d2..8aa5b55ee672 100755 --- a/java/kotlin-extractor/dev/wrapper.py +++ b/java/kotlin-extractor/dev/wrapper.py @@ -27,7 +27,7 @@ import io import os -DEFAULT_VERSION = "2.2.0" +DEFAULT_VERSION = "2.3.10" def options(): diff --git a/java/kotlin-extractor/src/main/kotlin/KotlinExtractorComponentRegistrar.kt b/java/kotlin-extractor/src/main/kotlin/KotlinExtractorComponentRegistrar.kt index 7fd6416dcd62..81e3c2bba360 100644 --- a/java/kotlin-extractor/src/main/kotlin/KotlinExtractorComponentRegistrar.kt +++ b/java/kotlin-extractor/src/main/kotlin/KotlinExtractorComponentRegistrar.kt @@ -4,6 +4,7 @@ package com.github.codeql import com.intellij.mock.MockProject +import com.intellij.openapi.extensions.LoadingOrder import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension import org.jetbrains.kotlin.config.CompilerConfiguration @@ -16,14 +17,18 @@ class KotlinExtractorComponentRegistrar : Kotlin2ComponentRegistrar() { if (invocationTrapFile == null) { throw Exception("Required argument for TRAP invocation file not given") } - IrGenerationExtension.registerExtension( - project, + // Register with LoadingOrder.LAST to ensure the extractor runs after other + // IR generation plugins (like kotlinx.serialization) have generated their code. + val extensionPoint = project.extensionArea.getExtensionPoint(IrGenerationExtension.extensionPointName) + extensionPoint.registerExtension( KotlinExtractorExtension( invocationTrapFile, configuration[KEY_CHECK_TRAP_IDENTICAL] ?: false, configuration[KEY_COMPILATION_STARTTIME], configuration[KEY_EXIT_AFTER_EXTRACTION] ?: false - ) + ), + LoadingOrder.LAST, + project ) } } diff --git a/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt b/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt index 72c766bb0828..1c2ed959caf2 100644 --- a/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt +++ b/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt @@ -415,6 +415,7 @@ open class KotlinFileExtractor( private fun extractClassModifiers(c: IrClass, id: Label) { with("class modifiers", c) { + @Suppress("REDUNDANT_ELSE_IN_WHEN") when (c.modality) { Modality.FINAL -> addModifiers(id, "final") Modality.SEALED -> addModifiers(id, "sealed") @@ -1342,7 +1343,7 @@ open class KotlinFileExtractor( extractTypeAccessRecursive(substitutedType, location, id, -1) } val syntheticParameterNames = - isUnderscoreParameter(vp) || + vp.origin == IrDeclarationOrigin.UNDERSCORE_PARAMETER || ((vp.parent as? IrFunction)?.let { hasSynthesizedParameterNames(it) } ?: true) val javaParameter = when (val callable = (vp.parent as? IrFunction)?.let { getJavaCallable(it) }) { @@ -1644,7 +1645,7 @@ open class KotlinFileExtractor( extractMethodAndParameterTypeAccesses: Boolean, typeSubstitution: TypeSubstitution?, classTypeArgsIncludingOuterClasses: List? - ) = + ) : Label = forceExtractFunction( f, parentId, @@ -2801,6 +2802,7 @@ open class KotlinFileExtractor( private fun extractBody(b: IrBody, callable: Label) { with("body", b) { + @Suppress("REDUNDANT_ELSE_IN_WHEN") when (b) { is IrBlockBody -> extractBlockBody(b, callable) is IrSyntheticBody -> extractSyntheticBody(b, callable) @@ -2834,7 +2836,7 @@ open class KotlinFileExtractor( when { kind == IrSyntheticBodyKind.ENUM_VALUES -> tw.writeKtSyntheticBody(callable, 1) kind == IrSyntheticBodyKind.ENUM_VALUEOF -> tw.writeKtSyntheticBody(callable, 2) - kind == kind_ENUM_ENTRIES -> tw.writeKtSyntheticBody(callable, 3) + kind == IrSyntheticBodyKind.ENUM_ENTRIES -> tw.writeKtSyntheticBody(callable, 3) else -> { logger.errorElement("Unhandled synthetic body kind " + kind, b) } @@ -2973,13 +2975,22 @@ open class KotlinFileExtractor( val locId = tw.getLocation(s) tw.writeStmts_block(blockId, parent, idx, callable) tw.writeHasLocation(blockId, locId) - extractVariable(s.delegate, callable, blockId, 0) - + // For Kotlin < 2.3, s.delegate is not-nullable, but for Kotlin >= 2.3 + // it is nullable. Cast to nullable to handle both cases uniformly. + // For Kotlin >= 2.3, the cast is redundant, hence the suppress. + @Suppress("USELESS_CAST") + val delegate: IrVariable? = s.delegate as IrVariable? val propId = tw.getFreshIdLabel() - tw.writeKtProperties(propId, s.name.asString()) - tw.writeHasLocation(propId, locId) - tw.writeKtPropertyDelegates(propId, useVariable(s.delegate)) + if (delegate == null) { + // This is not expected to happen, as the plugin hooks into the pipeline before IR lowering. + logger.errorElement("Local delegated property is missing delegate", s) + } else { + extractVariable(delegate, callable, blockId, 0) + tw.writeKtProperties(propId, s.name.asString()) + tw.writeHasLocation(propId, locId) + tw.writeKtPropertyDelegates(propId, useVariable(delegate)) + } // Getter: extractStatement(s.getter, callable, blockId, 1) val getterLabel = getLocallyVisibleFunctionLabels(s.getter).function @@ -3332,7 +3343,7 @@ open class KotlinFileExtractor( // that specified the default values, which will in turn dynamically dispatch back to the // relevant override. val overriddenCallTarget = - (callTarget as? IrSimpleFunction)?.allOverriddenIncludingSelf()?.firstOrNull { + (callTarget as? IrSimpleFunction)?.allOverridden(includeSelf = true)?.firstOrNull { it.overriddenSymbols.isEmpty() && it.valueParameters.any { p -> p.defaultValue != null } } ?: callTarget diff --git a/java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt b/java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt index 83cbec771fc5..93e032a05413 100644 --- a/java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt +++ b/java/kotlin-extractor/src/main/kotlin/KotlinUsesExtractor.kt @@ -849,9 +849,6 @@ open class KotlinUsesExtractor( } private fun useSimpleType(s: IrSimpleType, context: TypeContext): TypeResults { - if (s.abbreviation != null) { - // TODO: Extract this information - } // We use this when we don't actually have an IrClass for a class // we want to refer to // TODO: Eliminate the need for this if possible @@ -939,7 +936,7 @@ open class KotlinUsesExtractor( return arrayInfo.componentTypeResults } owner is IrClass -> { - val args = if (s.codeQlIsRawType()) null else s.arguments + val args = if (s.isRawType()) null else s.arguments return useSimpleTypeClass(owner, args, s.isNullableCodeQL()) } @@ -1836,6 +1833,7 @@ open class KotlinUsesExtractor( // Note this function doesn't return a signature because type arguments are never // incorporated into function signatures. + @Suppress("REDUNDANT_ELSE_IN_WHEN") return when (arg) { is IrStarProjection -> { val anyTypeLabel = diff --git a/java/kotlin-extractor/src/main/kotlin/MetaAnnotationSupport.kt b/java/kotlin-extractor/src/main/kotlin/MetaAnnotationSupport.kt index 368600267c11..96d5dd8bbbdd 100644 --- a/java/kotlin-extractor/src/main/kotlin/MetaAnnotationSupport.kt +++ b/java/kotlin-extractor/src/main/kotlin/MetaAnnotationSupport.kt @@ -1,6 +1,5 @@ package com.github.codeql -import com.github.codeql.utils.versions.copyParameterToFunction import com.github.codeql.utils.versions.createImplicitParameterDeclarationWithWrappedDescriptor import java.lang.annotation.ElementType import java.util.HashSet @@ -21,7 +20,9 @@ import org.jetbrains.kotlin.ir.declarations.IrClass import org.jetbrains.kotlin.ir.declarations.IrConstructor import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin import org.jetbrains.kotlin.ir.declarations.IrEnumEntry +import org.jetbrains.kotlin.ir.declarations.IrFunction import org.jetbrains.kotlin.ir.declarations.IrProperty +import org.jetbrains.kotlin.ir.declarations.IrValueParameter import org.jetbrains.kotlin.ir.expressions.IrClassReference import org.jetbrains.kotlin.ir.expressions.IrConstructorCall import org.jetbrains.kotlin.ir.expressions.IrGetEnumValue @@ -31,6 +32,7 @@ import org.jetbrains.kotlin.ir.symbols.IrClassSymbol import org.jetbrains.kotlin.ir.types.typeWith import org.jetbrains.kotlin.ir.util.constructedClass import org.jetbrains.kotlin.ir.util.constructors +import org.jetbrains.kotlin.ir.util.copyTo import org.jetbrains.kotlin.ir.util.deepCopyWithSymbols import org.jetbrains.kotlin.ir.util.defaultType import org.jetbrains.kotlin.ir.util.fqNameWhenAvailable @@ -330,7 +332,7 @@ class MetaAnnotationSupport( ) return } - val newParam = copyParameterToFunction(thisReceiever, this) + val newParam = thisReceiever.copyTo(this) dispatchReceiverParameter = newParam body = factory diff --git a/java/kotlin-extractor/src/main/kotlin/utils/ClassNames.kt b/java/kotlin-extractor/src/main/kotlin/utils/ClassNames.kt index a18dd06247f7..97eb6d0bca46 100644 --- a/java/kotlin-extractor/src/main/kotlin/utils/ClassNames.kt +++ b/java/kotlin-extractor/src/main/kotlin/utils/ClassNames.kt @@ -12,9 +12,11 @@ import org.jetbrains.kotlin.ir.util.fqNameWhenAvailable import org.jetbrains.kotlin.ir.util.parentClassOrNull import org.jetbrains.kotlin.load.java.sources.JavaSourceElement import org.jetbrains.kotlin.load.java.structure.impl.classFiles.BinaryJavaClass +import org.jetbrains.kotlin.load.kotlin.FacadeClassSource import org.jetbrains.kotlin.load.kotlin.JvmPackagePartSource import org.jetbrains.kotlin.load.kotlin.KotlinJvmBinarySourceElement import org.jetbrains.kotlin.load.kotlin.VirtualFileKotlinClass +import org.jetbrains.kotlin.name.FqName // Adapted from Kotlin's interpreter/Utils.kt function 'internalName' // Translates class names into their JLS section 13.1 binary name, @@ -31,6 +33,40 @@ fun getFileClassName(f: IrFile) = .replaceFirst(Regex("""\.kt$"""), "") .replaceFirstChar { it.uppercase() }) + "Kt") +fun getFileClassFqName(d: IrDeclaration): FqName? { + // d is in a file class. + // Get the name in a similar way to the compiler's ExternalPackageParentPatcherLowering + // visitMemberAccess/generateOrGetFacadeClass. + + // But first, fields aren't IrMemberWithContainerSource, so we need + // to get back to the property (if there is one) + if (d is IrField) { + val propSym = d.correspondingPropertySymbol + if (propSym != null) { + return getFileClassFqName(propSym.owner) + } + } + + // Now the main code + if (d is IrMemberWithContainerSource) { + val containerSource = d.containerSource + if (containerSource is FacadeClassSource) { + val facadeClassName = containerSource.facadeClassName + if (facadeClassName != null) { + // TODO: This is really a multifile-class rather than a file-class, + // but for now we treat them the same. + return facadeClassName.fqNameForTopLevelClassMaybeWithDollars + } else { + return containerSource.className.fqNameForTopLevelClassMaybeWithDollars + } + } else { + return null + } + } else { + return null + } +} + fun getIrElementBinaryName(that: IrElement): String { if (that is IrFile) { val shortName = getFileClassName(that) diff --git a/java/kotlin-extractor/src/main/kotlin/utils/GetByFqName.kt b/java/kotlin-extractor/src/main/kotlin/utils/GetByFqName.kt index a3f5bb80a48e..8f85ca7ebd36 100644 --- a/java/kotlin-extractor/src/main/kotlin/utils/GetByFqName.kt +++ b/java/kotlin-extractor/src/main/kotlin/utils/GetByFqName.kt @@ -2,19 +2,31 @@ package com.github.codeql.utils import org.jetbrains.kotlin.backend.common.extensions.IrPluginContext import org.jetbrains.kotlin.ir.symbols.* +import org.jetbrains.kotlin.name.CallableId +import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name +fun getClassByFqName(pluginContext: IrPluginContext, fqName: FqName): IrClassSymbol? { + val id = ClassId.topLevel(fqName) + return getClassByClassId(pluginContext, id) +} + fun getClassByFqName(pluginContext: IrPluginContext, fqName: String): IrClassSymbol? { return getClassByFqName(pluginContext, FqName(fqName)) } +fun getClassByClassId(pluginContext: IrPluginContext, id: ClassId): IrClassSymbol? { + return pluginContext.referenceClass(id) +} + fun getFunctionsByFqName( pluginContext: IrPluginContext, pkgName: String, name: String ): Collection { - return getFunctionsByFqName(pluginContext, FqName(pkgName), Name.identifier(name)) + val id = CallableId(FqName(pkgName), Name.identifier(name)) + return pluginContext.referenceFunctions(id) } fun getPropertiesByFqName( @@ -22,5 +34,6 @@ fun getPropertiesByFqName( pkgName: String, name: String ): Collection { - return getPropertiesByFqName(pluginContext, FqName(pkgName), Name.identifier(name)) + val id = CallableId(FqName(pkgName), Name.identifier(name)) + return pluginContext.referenceProperties(id) } diff --git a/java/kotlin-extractor/src/main/kotlin/utils/JvmNames.kt b/java/kotlin-extractor/src/main/kotlin/utils/JvmNames.kt index ec7c17b39fc6..02059b3db649 100644 --- a/java/kotlin-extractor/src/main/kotlin/utils/JvmNames.kt +++ b/java/kotlin-extractor/src/main/kotlin/utils/JvmNames.kt @@ -1,6 +1,5 @@ package com.github.codeql.utils -import com.github.codeql.utils.versions.allOverriddenIncludingSelf import com.github.codeql.utils.versions.CodeQLIrConst import org.jetbrains.kotlin.builtins.StandardNames import org.jetbrains.kotlin.ir.declarations.IrAnnotationContainer @@ -9,6 +8,7 @@ import org.jetbrains.kotlin.ir.declarations.IrFunction import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction import org.jetbrains.kotlin.ir.expressions.IrConstructorCall import org.jetbrains.kotlin.ir.types.IrSimpleType +import org.jetbrains.kotlin.ir.util.allOverridden import org.jetbrains.kotlin.ir.util.fqNameWhenAvailable import org.jetbrains.kotlin.ir.util.packageFqName import org.jetbrains.kotlin.ir.util.parentClassOrNull @@ -62,7 +62,7 @@ private val specialFunctionShortNames = specialFunctions.keys.map { it.functionN private fun getSpecialJvmName(f: IrFunction): String? { if (specialFunctionShortNames.contains(f.name) && f is IrSimpleFunction) { - f.allOverriddenIncludingSelf().forEach { overriddenFunc -> + f.allOverridden(includeSelf = true).forEach { overriddenFunc -> overriddenFunc.parentClassOrNull?.fqNameWhenAvailable?.let { parentFqName -> specialFunctions[MethodKey(parentFqName, f.name)]?.let { return it diff --git a/java/kotlin-extractor/src/main/kotlin/utils/TypeSubstitution.kt b/java/kotlin-extractor/src/main/kotlin/utils/TypeSubstitution.kt index fb39b6675759..10f0dbde887a 100644 --- a/java/kotlin-extractor/src/main/kotlin/utils/TypeSubstitution.kt +++ b/java/kotlin-extractor/src/main/kotlin/utils/TypeSubstitution.kt @@ -3,7 +3,6 @@ package com.github.codeql.utils import com.github.codeql.KotlinUsesExtractor import com.github.codeql.Logger import com.github.codeql.getJavaEquivalentClassId -import com.github.codeql.utils.versions.codeQlWithHasQuestionMark import com.github.codeql.utils.versions.createImplicitParameterDeclarationWithWrappedDescriptor import com.github.codeql.utils.versions.* import org.jetbrains.kotlin.backend.common.extensions.IrPluginContext @@ -21,6 +20,8 @@ import org.jetbrains.kotlin.ir.symbols.IrTypeParameterSymbol import org.jetbrains.kotlin.ir.symbols.impl.DescriptorlessExternalPackageFragmentSymbol import org.jetbrains.kotlin.ir.types.addAnnotations import org.jetbrains.kotlin.ir.types.classifierOrNull +import org.jetbrains.kotlin.ir.types.makeNotNull +import org.jetbrains.kotlin.ir.types.makeNullable import org.jetbrains.kotlin.ir.types.typeWith import org.jetbrains.kotlin.ir.types.IrSimpleType import org.jetbrains.kotlin.ir.types.IrStarProjection @@ -36,6 +37,14 @@ import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.types.Variance import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull +fun IrType.codeQlWithHasQuestionMark(b: Boolean): IrType { + if (b) { + return this.makeNullable() + } else { + return this.makeNotNull() + } +} + fun IrType.substituteTypeArguments(params: List, arguments: List) = when (this) { is IrSimpleType -> substituteTypeArguments(params.map { it.symbol }.zip(arguments).toMap()) @@ -111,6 +120,7 @@ private fun subProjectedType( } ?: makeTypeProjection(t.substituteTypeArguments(substitutionMap), outerVariance) private fun IrTypeArgument.upperBound(context: IrPluginContext) = + @Suppress("REDUNDANT_ELSE_IN_WHEN") when (this) { is IrStarProjection -> context.irBuiltIns.anyNType is IrTypeProjection -> @@ -125,6 +135,7 @@ private fun IrTypeArgument.upperBound(context: IrPluginContext) = } private fun IrTypeArgument.lowerBound(context: IrPluginContext) = + @Suppress("REDUNDANT_ELSE_IN_WHEN") when (this) { is IrStarProjection -> context.irBuiltIns.nothingType is IrTypeProjection -> @@ -209,6 +220,7 @@ fun IrClass.toRawType(): IrType { } fun IrTypeArgument.withQuestionMark(b: Boolean): IrTypeArgument = + @Suppress("REDUNDANT_ELSE_IN_WHEN") when (this) { is IrStarProjection -> this is IrTypeProjection -> diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/ExperimentalCompilerApi.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/ExperimentalCompilerApi.kt deleted file mode 100644 index 9b40a26bc511..000000000000 --- a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/ExperimentalCompilerApi.kt +++ /dev/null @@ -1,4 +0,0 @@ -package org.jetbrains.kotlin.compiler.plugin - -@RequiresOptIn("This API is experimental. There are no stability guarantees for it") -annotation class ExperimentalCompilerApi diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/IsUnderscoreParameter.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/IsUnderscoreParameter.kt deleted file mode 100644 index cb0fae2555b6..000000000000 --- a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/IsUnderscoreParameter.kt +++ /dev/null @@ -1,21 +0,0 @@ -package com.github.codeql.utils.versions - -import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI -import org.jetbrains.kotlin.ir.declarations.IrValueParameter -import org.jetbrains.kotlin.psi.KtParameter -import org.jetbrains.kotlin.resolve.DescriptorToSourceUtils -import org.jetbrains.kotlin.resolve.calls.util.isSingleUnderscore -import org.jetbrains.kotlin.utils.addToStdlib.safeAs - -@OptIn(ObsoleteDescriptorBasedAPI::class) -fun isUnderscoreParameter(vp: IrValueParameter) = - try { - DescriptorToSourceUtils.getSourceFromDescriptor(vp.descriptor) - ?.safeAs() - ?.isSingleUnderscore == true - } catch (e: NotImplementedError) { - // Some kinds of descriptor throw in `getSourceFromDescriptor` as that method is not - // normally expected to - // be applied to synthetic functions. - false - } diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/ReferenceEntity.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/ReferenceEntity.kt deleted file mode 100644 index 22e49c974443..000000000000 --- a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/ReferenceEntity.kt +++ /dev/null @@ -1,33 +0,0 @@ -package com.github.codeql.utils - -import org.jetbrains.kotlin.backend.common.extensions.IrPluginContext -import org.jetbrains.kotlin.ir.symbols.* -import org.jetbrains.kotlin.name.ClassId -import org.jetbrains.kotlin.name.FqName -import org.jetbrains.kotlin.name.Name - -fun getClassByFqName(pluginContext: IrPluginContext, fqName: FqName): IrClassSymbol? { - return pluginContext.referenceClass(fqName) -} - -fun getClassByClassId(pluginContext: IrPluginContext, id: ClassId): IrClassSymbol? { - return getClassByFqName(pluginContext, id.asSingleFqName()) -} - -fun getFunctionsByFqName( - pluginContext: IrPluginContext, - pkgName: FqName, - name: Name -): Collection { - val fqName = pkgName.child(name) - return pluginContext.referenceFunctions(fqName) -} - -fun getPropertiesByFqName( - pluginContext: IrPluginContext, - pkgName: FqName, - name: Name -): Collection { - val fqName = pkgName.child(name) - return pluginContext.referenceProperties(fqName) -} diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/SyntheticBodyKind.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/SyntheticBodyKind.kt deleted file mode 100644 index 2d71b430c9f3..000000000000 --- a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/SyntheticBodyKind.kt +++ /dev/null @@ -1,5 +0,0 @@ -package com.github.codeql.utils.versions - -import org.jetbrains.kotlin.ir.expressions.IrSyntheticBodyKind - -val kind_ENUM_ENTRIES: IrSyntheticBodyKind? = null diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/Types.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/Types.kt deleted file mode 100644 index 61a580e2a279..000000000000 --- a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/Types.kt +++ /dev/null @@ -1,6 +0,0 @@ -package com.github.codeql.utils.versions - -import org.jetbrains.kotlin.backend.jvm.codegen.isRawType -import org.jetbrains.kotlin.ir.types.IrSimpleType - -fun IrSimpleType.codeQlIsRawType() = this.isRawType() diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/allOverriddenIncludingSelf.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/allOverriddenIncludingSelf.kt deleted file mode 100644 index 24ac7e40f481..000000000000 --- a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/allOverriddenIncludingSelf.kt +++ /dev/null @@ -1,6 +0,0 @@ -package com.github.codeql.utils.versions - -import org.jetbrains.kotlin.backend.common.ir.allOverridden -import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction - -fun IrSimpleFunction.allOverriddenIncludingSelf() = this.allOverridden(includeSelf = true) diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/copyTo.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/copyTo.kt deleted file mode 100644 index a0d46acc56e8..000000000000 --- a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/copyTo.kt +++ /dev/null @@ -1,7 +0,0 @@ -package com.github.codeql.utils.versions - -import org.jetbrains.kotlin.backend.common.ir.copyTo -import org.jetbrains.kotlin.ir.declarations.IrFunction -import org.jetbrains.kotlin.ir.declarations.IrValueParameter - -fun copyParameterToFunction(p: IrValueParameter, f: IrFunction) = p.copyTo(f) diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/createImplicitParameterDeclarationWithWrappedDescriptor.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/createImplicitParameterDeclarationWithWrappedDescriptor.kt deleted file mode 100644 index 36016980af19..000000000000 --- a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/createImplicitParameterDeclarationWithWrappedDescriptor.kt +++ /dev/null @@ -1,7 +0,0 @@ -package com.github.codeql.utils.versions - -import org.jetbrains.kotlin.backend.common.ir.createImplicitParameterDeclarationWithWrappedDescriptor -import org.jetbrains.kotlin.ir.declarations.IrClass - -fun IrClass.createImplicitParameterDeclarationWithWrappedDescriptor() = - this.createImplicitParameterDeclarationWithWrappedDescriptor() diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/getFileClassFqName.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/getFileClassFqName.kt deleted file mode 100644 index 4400589ae343..000000000000 --- a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/getFileClassFqName.kt +++ /dev/null @@ -1,8 +0,0 @@ -package com.github.codeql.utils.versions - -import org.jetbrains.kotlin.ir.declarations.IrDeclaration -import org.jetbrains.kotlin.name.FqName - -fun getFileClassFqName(@Suppress("UNUSED_PARAMETER") d: IrDeclaration): FqName? { - return null -} diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/getKotlinType.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/getKotlinType.kt deleted file mode 100644 index 3f21550f13f6..000000000000 --- a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/getKotlinType.kt +++ /dev/null @@ -1,6 +0,0 @@ -package com.github.codeql.utils.versions - -import org.jetbrains.kotlin.ir.types.IrSimpleType -import org.jetbrains.kotlin.ir.types.impl.IrTypeBase - -fun getKotlinType(s: IrSimpleType) = (s as? IrTypeBase)?.kotlinType diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/withHasQuestionMark.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/withHasQuestionMark.kt deleted file mode 100644 index 114391ae6bfe..000000000000 --- a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/withHasQuestionMark.kt +++ /dev/null @@ -1,8 +0,0 @@ -package com.github.codeql.utils.versions - -import org.jetbrains.kotlin.ir.types.IrType -import org.jetbrains.kotlin.ir.types.withHasQuestionMark - -fun IrType.codeQlWithHasQuestionMark(b: Boolean): IrType { - return this.withHasQuestionMark(b) -} diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_20/IsUnderscoreParameter.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_20/IsUnderscoreParameter.kt deleted file mode 100644 index d727126ffc4a..000000000000 --- a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_20/IsUnderscoreParameter.kt +++ /dev/null @@ -1,7 +0,0 @@ -package com.github.codeql.utils.versions - -import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin -import org.jetbrains.kotlin.ir.declarations.IrValueParameter - -fun isUnderscoreParameter(vp: IrValueParameter) = - vp.origin == IrDeclarationOrigin.UNDERSCORE_PARAMETER diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_20/Types.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_20/Types.kt deleted file mode 100644 index 7db5d520b29f..000000000000 --- a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_20/Types.kt +++ /dev/null @@ -1,6 +0,0 @@ -package com.github.codeql.utils.versions - -import org.jetbrains.kotlin.backend.jvm.ir.isRawType -import org.jetbrains.kotlin.ir.types.IrSimpleType - -fun IrSimpleType.codeQlIsRawType() = this.isRawType() diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_7_0/getFileClassFqName.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_7_0/getFileClassFqName.kt deleted file mode 100644 index 82275ba0342d..000000000000 --- a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_7_0/getFileClassFqName.kt +++ /dev/null @@ -1,41 +0,0 @@ -package com.github.codeql.utils.versions - -import org.jetbrains.kotlin.ir.declarations.IrDeclaration -import org.jetbrains.kotlin.ir.declarations.IrField -import org.jetbrains.kotlin.ir.declarations.IrMemberWithContainerSource -import org.jetbrains.kotlin.load.kotlin.FacadeClassSource -import org.jetbrains.kotlin.name.FqName - -fun getFileClassFqName(d: IrDeclaration): FqName? { - // d is in a file class. - // Get the name in a similar way to the compiler's ExternalPackageParentPatcherLowering - // visitMemberAccess/generateOrGetFacadeClass. - - // But first, fields aren't IrMemberWithContainerSource, so we need - // to get back to the property (if there is one) - if (d is IrField) { - val propSym = d.correspondingPropertySymbol - if (propSym != null) { - return getFileClassFqName(propSym.owner) - } - } - - // Now the main code - if (d is IrMemberWithContainerSource) { - val containerSource = d.containerSource - if (containerSource is FacadeClassSource) { - val facadeClassName = containerSource.facadeClassName - if (facadeClassName != null) { - // TODO: This is really a multifile-class rather than a file-class, - // but for now we treat them the same. - return facadeClassName.fqNameForTopLevelClassMaybeWithDollars - } else { - return containerSource.className.fqNameForTopLevelClassMaybeWithDollars - } - } else { - return null - } - } else { - return null - } -} diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_7_0/withHasQuestionMark.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_7_0/withHasQuestionMark.kt deleted file mode 100644 index f4e171f8fb2a..000000000000 --- a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_7_0/withHasQuestionMark.kt +++ /dev/null @@ -1,13 +0,0 @@ -package com.github.codeql.utils.versions - -import org.jetbrains.kotlin.ir.types.IrType -import org.jetbrains.kotlin.ir.types.makeNotNull -import org.jetbrains.kotlin.ir.types.makeNullable - -fun IrType.codeQlWithHasQuestionMark(b: Boolean): IrType { - if (b) { - return this.makeNullable() - } else { - return this.makeNotNull() - } -} diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_7_20/allOverriddenIncludingSelf.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_7_20/allOverriddenIncludingSelf.kt deleted file mode 100644 index 2d33930ecbcf..000000000000 --- a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_7_20/allOverriddenIncludingSelf.kt +++ /dev/null @@ -1,6 +0,0 @@ -package com.github.codeql.utils.versions - -import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction -import org.jetbrains.kotlin.ir.util.allOverridden - -fun IrSimpleFunction.allOverriddenIncludingSelf() = this.allOverridden(includeSelf = true) diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_7_20/copyTo.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_7_20/copyTo.kt deleted file mode 100644 index a68e93432470..000000000000 --- a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_7_20/copyTo.kt +++ /dev/null @@ -1,7 +0,0 @@ -package com.github.codeql.utils.versions - -import org.jetbrains.kotlin.ir.declarations.IrFunction -import org.jetbrains.kotlin.ir.declarations.IrValueParameter -import org.jetbrains.kotlin.ir.util.copyTo - -fun copyParameterToFunction(p: IrValueParameter, f: IrFunction) = p.copyTo(f) diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/CodeQLIrConst.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_8_0/CodeQLIrConst.kt similarity index 100% rename from java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/CodeQLIrConst.kt rename to java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_8_0/CodeQLIrConst.kt diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/CodeQLIsRoot.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_8_0/CodeQLIsRoot.kt similarity index 100% rename from java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/CodeQLIsRoot.kt rename to java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_8_0/CodeQLIsRoot.kt diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/CommentExtractorLighterAST.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_8_0/CommentExtractorLighterAST.kt similarity index 100% rename from java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/CommentExtractorLighterAST.kt rename to java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_8_0/CommentExtractorLighterAST.kt diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_8_0/ExperimentalCompilerApi.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_8_0/ExperimentalCompilerApi.kt deleted file mode 100644 index 48829cc30c5f..000000000000 --- a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_8_0/ExperimentalCompilerApi.kt +++ /dev/null @@ -1,4 +0,0 @@ -package com.github.codeql - -// The compiler provides the annotation class, so we don't need to do -// anything diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/FirMetadataSourceFirFile.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_8_0/FirMetadataSourceFirFile.kt similarity index 100% rename from java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/FirMetadataSourceFirFile.kt rename to java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_8_0/FirMetadataSourceFirFile.kt diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/IrLazyFunction.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_8_0/IrLazyFunction.kt similarity index 100% rename from java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/IrLazyFunction.kt rename to java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_8_0/IrLazyFunction.kt diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/IrSymbolInternals.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_8_0/IrSymbolInternals.kt similarity index 100% rename from java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/IrSymbolInternals.kt rename to java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_8_0/IrSymbolInternals.kt diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/IrVisitor.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_8_0/IrVisitor.kt similarity index 100% rename from java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/IrVisitor.kt rename to java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_8_0/IrVisitor.kt diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/JvmDefaultModeIsNoCompatibility.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_8_0/JvmDefaultModeIsNoCompatibility.kt similarity index 100% rename from java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/JvmDefaultModeIsNoCompatibility.kt rename to java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_8_0/JvmDefaultModeIsNoCompatibility.kt diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/Kotlin2ComponentRegistrar.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_8_0/Kotlin2ComponentRegistrar.kt similarity index 100% rename from java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/Kotlin2ComponentRegistrar.kt rename to java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_8_0/Kotlin2ComponentRegistrar.kt diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/LinesOfCodeLighterAST.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_8_0/LinesOfCodeLighterAST.kt similarity index 100% rename from java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/LinesOfCodeLighterAST.kt rename to java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_8_0/LinesOfCodeLighterAST.kt diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/Psi2Ir.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_8_0/Psi2Ir.kt similarity index 100% rename from java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/Psi2Ir.kt rename to java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_8_0/Psi2Ir.kt diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_8_0/ReferenceEntity.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_8_0/ReferenceEntity.kt deleted file mode 100644 index 666e4e38386a..000000000000 --- a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_8_0/ReferenceEntity.kt +++ /dev/null @@ -1,35 +0,0 @@ -package com.github.codeql.utils - -import org.jetbrains.kotlin.backend.common.extensions.IrPluginContext -import org.jetbrains.kotlin.ir.symbols.* -import org.jetbrains.kotlin.name.CallableId -import org.jetbrains.kotlin.name.ClassId -import org.jetbrains.kotlin.name.FqName -import org.jetbrains.kotlin.name.Name - -fun getClassByFqName(pluginContext: IrPluginContext, fqName: FqName): IrClassSymbol? { - val id = ClassId.topLevel(fqName) - return getClassByClassId(pluginContext, id) -} - -fun getClassByClassId(pluginContext: IrPluginContext, id: ClassId): IrClassSymbol? { - return pluginContext.referenceClass(id) -} - -fun getFunctionsByFqName( - pluginContext: IrPluginContext, - pkgName: FqName, - name: Name -): Collection { - val id = CallableId(pkgName, name) - return pluginContext.referenceFunctions(id) -} - -fun getPropertiesByFqName( - pluginContext: IrPluginContext, - pkgName: FqName, - name: Name -): Collection { - val id = CallableId(pkgName, name) - return pluginContext.referenceProperties(id) -} diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_8_0/SyntheticBodyKind.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_8_0/SyntheticBodyKind.kt deleted file mode 100644 index 4c654282ca78..000000000000 --- a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_8_0/SyntheticBodyKind.kt +++ /dev/null @@ -1,5 +0,0 @@ -package com.github.codeql.utils.versions - -import org.jetbrains.kotlin.ir.expressions.IrSyntheticBodyKind - -val kind_ENUM_ENTRIES: IrSyntheticBodyKind? = IrSyntheticBodyKind.ENUM_ENTRIES diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/UsesK2.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_8_0/UsesK2.kt similarity index 100% rename from java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/UsesK2.kt rename to java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_8_0/UsesK2.kt diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/VirtualFileBasedSourceElement.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_8_0/VirtualFileBasedSourceElement.kt similarity index 100% rename from java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/VirtualFileBasedSourceElement.kt rename to java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_8_0/VirtualFileBasedSourceElement.kt diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_7_20/createImplicitParameterDeclarationWithWrappedDescriptor.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_8_0/createImplicitParameterDeclarationWithWrappedDescriptor.kt similarity index 100% rename from java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_7_20/createImplicitParameterDeclarationWithWrappedDescriptor.kt rename to java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_8_0/createImplicitParameterDeclarationWithWrappedDescriptor.kt diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/getJvmDefaultMode.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_8_0/getJvmDefaultMode.kt similarity index 100% rename from java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/getJvmDefaultMode.kt rename to java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_8_0/getJvmDefaultMode.kt diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/getJvmModuleNameForDeserializedDescriptor.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_8_0/getJvmModuleNameForDeserializedDescriptor.kt similarity index 100% rename from java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/getJvmModuleNameForDeserializedDescriptor.kt rename to java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_8_0/getJvmModuleNameForDeserializedDescriptor.kt diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_7_0/getKotlinType.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_8_0/getKotlinType.kt similarity index 100% rename from java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_7_0/getKotlinType.kt rename to java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_8_0/getKotlinType.kt diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/isDispatchReceiver.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_8_0/isDispatchReceiver.kt similarity index 100% rename from java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/isDispatchReceiver.kt rename to java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_8_0/isDispatchReceiver.kt diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/packageFqName.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_8_0/packageFqName.kt similarity index 100% rename from java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/packageFqName.kt rename to java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_8_0/packageFqName.kt diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/parameterIndexExcludingReceivers.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_8_0/parameterIndexExcludingReceivers.kt similarity index 100% rename from java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/parameterIndexExcludingReceivers.kt rename to java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_8_0/parameterIndexExcludingReceivers.kt diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/parents.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_8_0/parents.kt similarity index 100% rename from java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/parents.kt rename to java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_8_0/parents.kt diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/typeUtils.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_8_0/typeUtils.kt similarity index 100% rename from java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_6_0/typeUtils.kt rename to java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_8_0/typeUtils.kt diff --git a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_9_0-Beta/Kotlin2ComponentRegistrar.kt b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_9_0-Beta/Kotlin2ComponentRegistrar.kt index 323d8e2c2836..e20c45ddc4d4 100644 --- a/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_9_0-Beta/Kotlin2ComponentRegistrar.kt +++ b/java/kotlin-extractor/src/main/kotlin/utils/versions/v_1_9_0-Beta/Kotlin2ComponentRegistrar.kt @@ -1,5 +1,5 @@ // For ComponentRegistrar -@file:Suppress("DEPRECATION") +@file:Suppress("DEPRECATION", "DEPRECATION_ERROR") package com.github.codeql diff --git a/java/kotlin-extractor/versions.bzl b/java/kotlin-extractor/versions.bzl index 95897f49cc81..33fca7a37f86 100644 --- a/java/kotlin-extractor/versions.bzl +++ b/java/kotlin-extractor/versions.bzl @@ -1,9 +1,5 @@ # when updating this list, `bazel mod tidy` should be run from `codeql` to update `MODULE.bazel` VERSIONS = [ - "1.6.0", - "1.6.20", - "1.7.0", - "1.7.20", "1.8.0", "1.9.0-Beta", "1.9.20-Beta", @@ -13,6 +9,7 @@ VERSIONS = [ "2.1.20-Beta1", "2.2.0-Beta1", "2.2.20-Beta2", + "2.3.0", ] def _version_to_tuple(v): diff --git a/java/ql/consistency-queries/UnaryExpr.ql b/java/ql/consistency-queries/UnaryExpr.ql index 29a895eca6a2..f71d51f19d18 100644 --- a/java/ql/consistency-queries/UnaryExpr.ql +++ b/java/ql/consistency-queries/UnaryExpr.ql @@ -2,7 +2,7 @@ import java from UnaryExpr ue where - not exists(ue.getExpr()) + not exists(ue.getOperand()) or exists(Expr e, int i | e.isNthChildOf(ue, i) and i != 0) select ue diff --git a/java/ql/examples/snippets/returnstatement.ql b/java/ql/examples/snippets/returnstatement.ql index 14270dc87c20..f2b6c601fb56 100644 --- a/java/ql/examples/snippets/returnstatement.ql +++ b/java/ql/examples/snippets/returnstatement.ql @@ -10,5 +10,5 @@ import java from ReturnStmt r -where r.getResult() instanceof NullLiteral +where r.getExpr() instanceof NullLiteral select r diff --git a/java/ql/examples/snippets/ternaryconditional.ql b/java/ql/examples/snippets/ternaryconditional.ql index bbd82770a16f..867ea024674a 100644 --- a/java/ql/examples/snippets/ternaryconditional.ql +++ b/java/ql/examples/snippets/ternaryconditional.ql @@ -11,7 +11,7 @@ import java from ConditionalExpr e where - e.getTrueExpr().getType() != e.getFalseExpr().getType() and - not e.getTrueExpr().getType() instanceof NullType and - not e.getFalseExpr().getType() instanceof NullType + e.getThen().getType() != e.getElse().getType() and + not e.getThen().getType() instanceof NullType and + not e.getElse().getType() instanceof NullType select e diff --git a/java/ql/integration-tests/kotlin/all-platforms/compiler_arguments/app/build.gradle b/java/ql/integration-tests/kotlin/all-platforms/compiler_arguments/app/build.gradle index c0bc33405247..8b91012467ec 100644 --- a/java/ql/integration-tests/kotlin/all-platforms/compiler_arguments/app/build.gradle +++ b/java/ql/integration-tests/kotlin/all-platforms/compiler_arguments/app/build.gradle @@ -8,7 +8,7 @@ plugins { // Apply the org.jetbrains.kotlin.jvm Plugin to add support for Kotlin. - id 'org.jetbrains.kotlin.jvm' version '1.7.0' + id 'org.jetbrains.kotlin.jvm' version '1.8.0' // Apply the application plugin to add support for building a CLI application in Java. id 'application' diff --git a/java/ql/integration-tests/kotlin/all-platforms/diagnostics/kotlin-version-too-new/diagnostics.expected b/java/ql/integration-tests/kotlin/all-platforms/diagnostics/kotlin-version-too-new/diagnostics.expected index 50cbd2609f26..bbc580f1e48b 100644 --- a/java/ql/integration-tests/kotlin/all-platforms/diagnostics/kotlin-version-too-new/diagnostics.expected +++ b/java/ql/integration-tests/kotlin/all-platforms/diagnostics/kotlin-version-too-new/diagnostics.expected @@ -1,5 +1,5 @@ { - "markdownMessage": "The Kotlin version installed (`999.999.999`) is too recent for this version of CodeQL. Install a version lower than 2.2.30.", + "markdownMessage": "The Kotlin version installed (`999.999.999`) is too recent for this version of CodeQL. Install a version lower than 2.3.20.", "severity": "error", "source": { "extractorName": "java", diff --git a/java/ql/integration-tests/kotlin/all-platforms/gradle_groovy_app/app/build.gradle b/java/ql/integration-tests/kotlin/all-platforms/gradle_groovy_app/app/build.gradle index 8ef1009376c9..8b91012467ec 100644 --- a/java/ql/integration-tests/kotlin/all-platforms/gradle_groovy_app/app/build.gradle +++ b/java/ql/integration-tests/kotlin/all-platforms/gradle_groovy_app/app/build.gradle @@ -8,7 +8,7 @@ plugins { // Apply the org.jetbrains.kotlin.jvm Plugin to add support for Kotlin. - id 'org.jetbrains.kotlin.jvm' version '1.6.0' + id 'org.jetbrains.kotlin.jvm' version '1.8.0' // Apply the application plugin to add support for building a CLI application in Java. id 'application' diff --git a/java/ql/integration-tests/kotlin/all-platforms/gradle_kotlinx_serialization/PrintAst.expected b/java/ql/integration-tests/kotlin/all-platforms/gradle_kotlinx_serialization/PrintAst.expected index 752db3cd6471..f76dc45cf3b1 100644 --- a/java/ql/integration-tests/kotlin/all-platforms/gradle_kotlinx_serialization/PrintAst.expected +++ b/java/ql/integration-tests/kotlin/all-platforms/gradle_kotlinx_serialization/PrintAst.expected @@ -248,9 +248,7 @@ app/src/main/kotlin/testProject/App.kt: # 0| 2: [ArrayInit] {...} # 0| 3: [VarAccess] DeprecationLevel.HIDDEN # 0| -1: [TypeAccess] DeprecationLevel -# 0| 1: [FieldDeclaration] SerialDescriptor descriptor; -# 0| -1: [TypeAccess] SerialDescriptor -# 0| 2: [Method] childSerializers +# 0| 1: [Method] childSerializers #-----| 1: (Annotations) # 0| 1: [Annotation] NotNull # 0| 3: [TypeAccess] KSerializer[] @@ -260,9 +258,11 @@ app/src/main/kotlin/testProject/App.kt: # 7| 0: [ReturnStmt] return ... # 7| 0: [ArrayCreationExpr] new KSerializer[] # 7| -2: [ArrayInit] {...} +# 7| 0: [VarAccess] INSTANCE +# 7| 1: [VarAccess] INSTANCE # 7| -1: [TypeAccess] KSerializer # 7| 0: [IntegerLiteral] 2 -# 0| 3: [Method] deserialize +# 0| 2: [Method] deserialize #-----| 1: (Annotations) # 0| 1: [Annotation] NotNull # 0| 3: [TypeAccess] Project @@ -404,15 +404,15 @@ app/src/main/kotlin/testProject/App.kt: # 7| 1: [VarAccess] tmp4_local0 # 7| 2: [VarAccess] tmp5_local1 # 7| 3: [NullLiteral] null -# 0| 4: [Method] getDescriptor +# 0| 3: [Method] getDescriptor #-----| 1: (Annotations) # 0| 1: [Annotation] NotNull # 0| 3: [TypeAccess] SerialDescriptor -# 0| 5: [BlockStmt] { ... } -# 0| 0: [ReturnStmt] return ... -# 0| 0: [VarAccess] this.descriptor -# 0| -1: [ThisAccess] this -# 0| 5: [Method] serialize +# 7| 5: [BlockStmt] { ... } +# 7| 0: [ReturnStmt] return ... +# 7| 0: [VarAccess] this.descriptor +# 7| -1: [ThisAccess] this +# 0| 4: [Method] serialize # 0| 3: [TypeAccess] Unit #-----| 4: (Parameters) # 0| 0: [Parameter] encoder @@ -443,7 +443,7 @@ app/src/main/kotlin/testProject/App.kt: # 7| 0: [MethodCall] endStructure(...) # 7| -1: [VarAccess] tmp1_output # 7| 0: [VarAccess] tmp0_desc -# 7| 6: [Constructor] $serializer +# 7| 5: [Constructor] $serializer # 7| 5: [BlockStmt] { ... } # 7| 0: [SuperConstructorInvocationStmt] super(...) # 7| 1: [BlockStmt] { ... } @@ -471,6 +471,8 @@ app/src/main/kotlin/testProject/App.kt: # 7| -1: [ThisAccess] $serializer.this # 7| 0: [TypeAccess] $serializer # 7| 1: [VarAccess] tmp0_serialDesc +# 7| 6: [FieldDeclaration] PluginGeneratedSerialDescriptor descriptor; +# 7| -1: [TypeAccess] PluginGeneratedSerialDescriptor # 7| 7: [Method] typeParametersSerializers # 7| 3: [TypeAccess] KSerializer[] # 7| 0: [TypeAccess] KSerializer @@ -645,9 +647,7 @@ app/src/main/kotlin/testProject/App.kt: # 0| 2: [ArrayInit] {...} # 0| 3: [VarAccess] DeprecationLevel.HIDDEN # 0| -1: [TypeAccess] DeprecationLevel -# 0| 1: [FieldDeclaration] SerialDescriptor descriptor; -# 0| -1: [TypeAccess] SerialDescriptor -# 0| 2: [Method] childSerializers +# 0| 1: [Method] childSerializers #-----| 1: (Annotations) # 0| 1: [Annotation] NotNull # 0| 3: [TypeAccess] KSerializer[] @@ -657,9 +657,10 @@ app/src/main/kotlin/testProject/App.kt: # 14| 0: [ReturnStmt] return ... # 14| 0: [ArrayCreationExpr] new KSerializer[] # 14| -2: [ArrayInit] {...} +# 14| 0: [VarAccess] INSTANCE # 14| -1: [TypeAccess] KSerializer # 14| 0: [IntegerLiteral] 1 -# 0| 3: [Method] deserialize +# 0| 2: [Method] deserialize #-----| 1: (Annotations) # 0| 1: [Annotation] NotNull # 0| 3: [TypeAccess] X @@ -765,15 +766,15 @@ app/src/main/kotlin/testProject/App.kt: # 14| 0: [VarAccess] tmp3_bitMask0 # 14| 1: [VarAccess] tmp4_local0 # 14| 2: [NullLiteral] null -# 0| 4: [Method] getDescriptor +# 0| 3: [Method] getDescriptor #-----| 1: (Annotations) # 0| 1: [Annotation] NotNull # 0| 3: [TypeAccess] SerialDescriptor -# 0| 5: [BlockStmt] { ... } -# 0| 0: [ReturnStmt] return ... -# 0| 0: [VarAccess] this.descriptor -# 0| -1: [ThisAccess] this -# 0| 5: [Method] serialize +# 14| 5: [BlockStmt] { ... } +# 14| 0: [ReturnStmt] return ... +# 14| 0: [VarAccess] this.descriptor +# 14| -1: [ThisAccess] this +# 0| 4: [Method] serialize # 0| 3: [TypeAccess] Unit #-----| 4: (Parameters) # 0| 0: [Parameter] encoder @@ -804,7 +805,7 @@ app/src/main/kotlin/testProject/App.kt: # 14| 0: [MethodCall] endStructure(...) # 14| -1: [VarAccess] tmp1_output # 14| 0: [VarAccess] tmp0_desc -# 14| 6: [Constructor] $serializer +# 14| 5: [Constructor] $serializer # 14| 5: [BlockStmt] { ... } # 14| 0: [SuperConstructorInvocationStmt] super(...) # 14| 1: [BlockStmt] { ... } @@ -827,6 +828,8 @@ app/src/main/kotlin/testProject/App.kt: # 14| -1: [ThisAccess] $serializer.this # 14| 0: [TypeAccess] $serializer # 14| 1: [VarAccess] tmp0_serialDesc +# 14| 6: [FieldDeclaration] PluginGeneratedSerialDescriptor descriptor; +# 14| -1: [TypeAccess] PluginGeneratedSerialDescriptor # 14| 7: [Method] typeParametersSerializers # 14| 3: [TypeAccess] KSerializer[] # 14| 0: [TypeAccess] KSerializer diff --git a/java/ql/integration-tests/kotlin/all-platforms/gradle_kotlinx_serialization/app/build.gradle b/java/ql/integration-tests/kotlin/all-platforms/gradle_kotlinx_serialization/app/build.gradle index 528b73cabc5a..2b13663941d1 100644 --- a/java/ql/integration-tests/kotlin/all-platforms/gradle_kotlinx_serialization/app/build.gradle +++ b/java/ql/integration-tests/kotlin/all-platforms/gradle_kotlinx_serialization/app/build.gradle @@ -1,6 +1,6 @@ plugins { - id 'org.jetbrains.kotlin.jvm' version '1.6.10' - id 'org.jetbrains.kotlin.plugin.serialization' version '1.6.10' + id 'org.jetbrains.kotlin.jvm' version '1.8.10' + id 'org.jetbrains.kotlin.plugin.serialization' version '1.8.10' } repositories { @@ -8,6 +8,5 @@ repositories { } dependencies { - implementation "org.jetbrains.kotlin:kotlin-serialization:1.6.10" - implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.3.2" + implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.0" } diff --git a/java/ql/integration-tests/kotlin/all-platforms/gradle_kotlinx_serialization/diag.expected b/java/ql/integration-tests/kotlin/all-platforms/gradle_kotlinx_serialization/diag.expected index 96a297f9cb28..e69de29bb2d1 100644 --- a/java/ql/integration-tests/kotlin/all-platforms/gradle_kotlinx_serialization/diag.expected +++ b/java/ql/integration-tests/kotlin/all-platforms/gradle_kotlinx_serialization/diag.expected @@ -1,2 +0,0 @@ -| CodeQL Kotlin extractor | 5 | | Unbound symbol found, skipping extraction of expression | app/src/main/kotlin/testProject/App.kt:7:1:8:55 | app/src/main/kotlin/testProject/App.kt:7:1:8:55 | -| CodeQL Kotlin extractor | 5 | | Unbound symbol found, skipping extraction of expression | app/src/main/kotlin/testProject/App.kt:14:1:17:1 | app/src/main/kotlin/testProject/App.kt:14:1:17:1 | diff --git a/java/ql/integration-tests/kotlin/all-platforms/java_modifiers/test.expected b/java/ql/integration-tests/kotlin/all-platforms/java_modifiers/test.expected index a8040f7d82bb..459a8d9209de 100644 --- a/java/ql/integration-tests/kotlin/all-platforms/java_modifiers/test.expected +++ b/java/ql/integration-tests/kotlin/all-platforms/java_modifiers/test.expected @@ -1,2 +1,2 @@ | extlib.jar/extlib/A.class:0:0:0:0 | m | protected | -| test.kt:4:3:4:22 | m | override, protected | +| test.kt:4:12:4:22 | m | override, protected | diff --git a/java/ql/integration-tests/kotlin/all-platforms/jvmoverloads-external-class/test.expected b/java/ql/integration-tests/kotlin/all-platforms/jvmoverloads-external-class/test.expected index db5d2c766806..26a090843edf 100644 --- a/java/ql/integration-tests/kotlin/all-platforms/jvmoverloads-external-class/test.expected +++ b/java/ql/integration-tests/kotlin/all-platforms/jvmoverloads-external-class/test.expected @@ -1,8 +1,8 @@ -| test.kt:3:3:3:45 | f | test.kt:3:23:3:32 | x | -| test.kt:3:3:3:45 | f | test.kt:3:35:3:40 | y | -| test.kt:3:3:3:45 | f | test.kt:3:35:3:40 | y | -| test.kt:3:3:3:45 | f$default | test.kt:3:3:3:45 | p0 | -| test.kt:3:3:3:45 | f$default | test.kt:3:3:3:45 | p1 | -| test.kt:3:3:3:45 | f$default | test.kt:3:3:3:45 | p2 | -| test.kt:3:3:3:45 | f$default | test.kt:3:3:3:45 | p3 | -| test.kt:3:3:3:45 | f$default | test.kt:3:3:3:45 | p4 | +| test.kt:3:17:3:45 | f | test.kt:3:23:3:32 | x | +| test.kt:3:17:3:45 | f | test.kt:3:35:3:40 | y | +| test.kt:3:17:3:45 | f | test.kt:3:35:3:40 | y | +| test.kt:3:17:3:45 | f$default | test.kt:3:17:3:45 | p0 | +| test.kt:3:17:3:45 | f$default | test.kt:3:17:3:45 | p1 | +| test.kt:3:17:3:45 | f$default | test.kt:3:17:3:45 | p2 | +| test.kt:3:17:3:45 | f$default | test.kt:3:17:3:45 | p3 | +| test.kt:3:17:3:45 | f$default | test.kt:3:17:3:45 | p4 | diff --git a/java/ql/integration-tests/kotlin/all-platforms/kotlin_java_static_fields/test.expected b/java/ql/integration-tests/kotlin/all-platforms/kotlin_java_static_fields/test.expected index 9470b5e1e263..5839116cf34a 100644 --- a/java/ql/integration-tests/kotlin/all-platforms/kotlin_java_static_fields/test.expected +++ b/java/ql/integration-tests/kotlin/all-platforms/kotlin_java_static_fields/test.expected @@ -1,22 +1,22 @@ edges -| hasFields.kt:5:5:5:34 | constField : String | ReadsFields.java:5:10:5:29 | HasFields.constField | provenance | | -| hasFields.kt:5:28:5:34 | "taint" : String | hasFields.kt:5:5:5:34 | constField : String | provenance | | -| hasFields.kt:7:5:7:38 | : String | hasFields.kt:7:5:7:38 | : String | provenance | | -| hasFields.kt:7:5:7:38 | : String | hasFields.kt:7:5:7:38 | lateinitField : String | provenance | | -| hasFields.kt:7:5:7:38 | lateinitField : String | ReadsFields.java:6:10:6:32 | HasFields.lateinitField | provenance | | -| hasFields.kt:9:5:9:50 | jvmFieldAnnotatedField : String | ReadsFields.java:7:10:7:41 | HasFields.jvmFieldAnnotatedField | provenance | | -| hasFields.kt:9:44:9:50 | "taint" : String | hasFields.kt:9:5:9:50 | jvmFieldAnnotatedField : String | provenance | | -| hasFields.kt:14:21:14:27 | "taint" : String | hasFields.kt:7:5:7:38 | : String | provenance | | +| hasFields.kt:5:11:5:34 | constField : String | ReadsFields.java:5:10:5:29 | HasFields.constField | provenance | | +| hasFields.kt:5:28:5:34 | "taint" : String | hasFields.kt:5:11:5:34 | constField : String | provenance | | +| hasFields.kt:7:14:7:38 | : String | hasFields.kt:7:14:7:38 | : String | provenance | | +| hasFields.kt:7:14:7:38 | : String | hasFields.kt:7:14:7:38 | lateinitField : String | provenance | | +| hasFields.kt:7:14:7:38 | lateinitField : String | ReadsFields.java:6:10:6:32 | HasFields.lateinitField | provenance | | +| hasFields.kt:9:15:9:50 | jvmFieldAnnotatedField : String | ReadsFields.java:7:10:7:41 | HasFields.jvmFieldAnnotatedField | provenance | | +| hasFields.kt:9:44:9:50 | "taint" : String | hasFields.kt:9:15:9:50 | jvmFieldAnnotatedField : String | provenance | | +| hasFields.kt:14:21:14:27 | "taint" : String | hasFields.kt:7:14:7:38 | : String | provenance | | nodes | ReadsFields.java:5:10:5:29 | HasFields.constField | semmle.label | HasFields.constField | | ReadsFields.java:6:10:6:32 | HasFields.lateinitField | semmle.label | HasFields.lateinitField | | ReadsFields.java:7:10:7:41 | HasFields.jvmFieldAnnotatedField | semmle.label | HasFields.jvmFieldAnnotatedField | -| hasFields.kt:5:5:5:34 | constField : String | semmle.label | constField : String | +| hasFields.kt:5:11:5:34 | constField : String | semmle.label | constField : String | | hasFields.kt:5:28:5:34 | "taint" : String | semmle.label | "taint" : String | -| hasFields.kt:7:5:7:38 | : String | semmle.label | : String | -| hasFields.kt:7:5:7:38 | : String | semmle.label | : String | -| hasFields.kt:7:5:7:38 | lateinitField : String | semmle.label | lateinitField : String | -| hasFields.kt:9:5:9:50 | jvmFieldAnnotatedField : String | semmle.label | jvmFieldAnnotatedField : String | +| hasFields.kt:7:14:7:38 | : String | semmle.label | : String | +| hasFields.kt:7:14:7:38 | : String | semmle.label | : String | +| hasFields.kt:7:14:7:38 | lateinitField : String | semmle.label | lateinitField : String | +| hasFields.kt:9:15:9:50 | jvmFieldAnnotatedField : String | semmle.label | jvmFieldAnnotatedField : String | | hasFields.kt:9:44:9:50 | "taint" : String | semmle.label | "taint" : String | | hasFields.kt:14:21:14:27 | "taint" : String | semmle.label | "taint" : String | subpaths diff --git a/java/ql/integration-tests/kotlin/all-platforms/kotlin_kfunction/app/build.gradle b/java/ql/integration-tests/kotlin/all-platforms/kotlin_kfunction/app/build.gradle index 924524190cff..8b91012467ec 100644 --- a/java/ql/integration-tests/kotlin/all-platforms/kotlin_kfunction/app/build.gradle +++ b/java/ql/integration-tests/kotlin/all-platforms/kotlin_kfunction/app/build.gradle @@ -8,7 +8,7 @@ plugins { // Apply the org.jetbrains.kotlin.jvm Plugin to add support for Kotlin. - id 'org.jetbrains.kotlin.jvm' version '1.6.20' + id 'org.jetbrains.kotlin.jvm' version '1.8.0' // Apply the application plugin to add support for building a CLI application in Java. id 'application' diff --git a/java/ql/integration-tests/kotlin/all-platforms/nullability-annotations/test.expected b/java/ql/integration-tests/kotlin/all-platforms/nullability-annotations/test.expected index 8dd20ad64a46..89eb06d26c34 100644 --- a/java/ql/integration-tests/kotlin/all-platforms/nullability-annotations/test.expected +++ b/java/ql/integration-tests/kotlin/all-platforms/nullability-annotations/test.expected @@ -22,7 +22,7 @@ | ktUser.kt:0:0:0:0 | nullableAnnotated | parameter | ktUser.kt:0:0:0:0 | Nullable | | ktUser.kt:0:0:0:0 | nullableAnnotated | return value | ktUser.kt:0:0:0:0 | A | | ktUser.kt:0:0:0:0 | nullableAnnotated | return value | ktUser.kt:0:0:0:0 | Nullable | -| ktUser.kt:5:3:5:105 | f | parameter | ktUser.kt:0:0:0:0 | NotNull | -| ktUser.kt:5:3:5:105 | f | parameter | ktUser.kt:5:12:5:13 | A | -| ktUser.kt:5:3:5:105 | f | return value | ktUser.kt:0:0:0:0 | NotNull | -| ktUser.kt:5:3:5:105 | f | return value | ktUser.kt:5:3:5:4 | A | +| ktUser.kt:5:6:5:105 | f | parameter | ktUser.kt:0:0:0:0 | NotNull | +| ktUser.kt:5:6:5:105 | f | parameter | ktUser.kt:5:12:5:13 | A | +| ktUser.kt:5:6:5:105 | f | return value | ktUser.kt:0:0:0:0 | NotNull | +| ktUser.kt:5:6:5:105 | f | return value | ktUser.kt:5:3:5:4 | A | diff --git a/java/ql/integration-tests/kotlin/posix/module_mangled_names/test.expected b/java/ql/integration-tests/kotlin/posix/module_mangled_names/test.expected index 51b4fd853fff..a1fc953a2546 100644 --- a/java/ql/integration-tests/kotlin/posix/module_mangled_names/test.expected +++ b/java/ql/integration-tests/kotlin/posix/module_mangled_names/test.expected @@ -1,4 +1,4 @@ | User.java:3:21:3:24 | test | -| test1.kt:3:3:3:22 | f$main | -| test2.kt:3:3:3:22 | f$mymodule | -| test3.kt:3:3:3:22 | f$reservedchars___ | +| test1.kt:3:12:3:22 | f$main | +| test2.kt:3:12:3:22 | f$mymodule | +| test3.kt:3:12:3:22 | f$reservedchars___ | diff --git a/java/ql/lib/CHANGELOG.md b/java/ql/lib/CHANGELOG.md index cd0db2ab96f5..f238699b4e5b 100644 --- a/java/ql/lib/CHANGELOG.md +++ b/java/ql/lib/CHANGELOG.md @@ -1,3 +1,24 @@ +## 8.0.0 + +### Breaking Changes + +* Support for Kotlin 1.6.x and 1.7.x series has been dropped + +### New Features + +* Kotlin versions up to 2.3.0*x* are now supported. + +### Minor Analysis Improvements + +* Added support for Struts 7.x package names in the Struts framework library. The library now recognizes both the legacy `com.opensymphony.xwork2` package names (Struts 2.x-6.x) and the new `org.apache.struts2` package names (Struts 7.x+), maintaining backward compatibility while enabling analysis of code using the latest Struts versions. +* The query `java/unreleased-lock` no longer applies to lock types with names ending in "Pool", as these typically manage a collection of resources and the `lock` and `unlock` methods typically only lock one resource at a time. This may lead to a reduction in false positives. +* The predicate `SummarizedCallable.propagatesFlow` has been extended with the columns `Provenance p` and `boolean isExact`, and as a consequence the predicates `SummarizedCallable.hasProvenance` and `SummarizedCallable.hasExactModel` have been removed. +* When Maven-compatible private package registries are configured for an organisation for Default Setup, CodeQL will now configure Maven to also use these as plugin repositories. CodeQL previously already configured Maven to use them as regular package repositories. This should now allow Maven plugins to be obtained from private registries. + +### Bug Fixes + +* Kotlin: The Kotlin extractor now registers as the last IR generation extension, ensuring that code generated by other compiler plugins (such as kotlinx.serialization) is correctly captured. + ## 7.8.4 ### Minor Analysis Improvements @@ -77,7 +98,7 @@ No user-facing changes. ### New Features -* Kotlin versions up to 2.2.2\ *x* are now supported. +* Kotlin versions up to 2.2.2*x* are now supported. ## 7.4.0 @@ -118,7 +139,7 @@ No user-facing changes. ### New Features -* Kotlin versions up to 2.2.0\ *x* are now supported. Support for the Kotlin 1.5.x series is dropped (so the minimum Kotlin version is now 1.6.0). +* Kotlin versions up to 2.2.0*x* are now supported. Support for the Kotlin 1.5.x series is dropped (so the minimum Kotlin version is now 1.6.0). ## 7.1.4 @@ -255,7 +276,7 @@ No user-facing changes. ### New Features * The Java extractor and QL libraries now support Java 23. -* Kotlin versions up to 2.1.0\ *x* are now supported. +* Kotlin versions up to 2.1.0*x* are now supported. ## 4.0.0 diff --git a/java/ql/lib/change-notes/2026-02-04-renames.md b/java/ql/lib/change-notes/2026-02-04-renames.md new file mode 100644 index 000000000000..9392bcbb4f62 --- /dev/null +++ b/java/ql/lib/change-notes/2026-02-04-renames.md @@ -0,0 +1,12 @@ +--- +category: deprecated +--- +* Renamed the following predicates to increase uniformity across languages. The `getBody` predicate already existed on `LoopStmt`, but is now properly inherited. + - `UnaryExpr.getExpr` to `getOperand`. + - `ConditionalExpr.getTrueExpr` to `getThen`. + - `ConditionalExpr.getFalseExpr` to `getElse`. + - `ReturnStmt.getResult` to `getExpr`. + - `WhileStmt.getStmt` to `getBody`. + - `DoStmt.getStmt` to `getBody`. + - `ForStmt.getStmt` to `getBody`. + - `EnhancedForStmt.getStmt` to `getBody`. diff --git a/java/ql/lib/change-notes/2026-02-06-kotlin-2.3.10.md b/java/ql/lib/change-notes/2026-02-06-kotlin-2.3.10.md new file mode 100644 index 000000000000..49b62ea6bbda --- /dev/null +++ b/java/ql/lib/change-notes/2026-02-06-kotlin-2.3.10.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Kotlin versions up to 2.3.10 are now supported. diff --git a/java/ql/lib/change-notes/2026-02-12-deprecate-unreachableblocks.md b/java/ql/lib/change-notes/2026-02-12-deprecate-unreachableblocks.md new file mode 100644 index 000000000000..24748cbb09ec --- /dev/null +++ b/java/ql/lib/change-notes/2026-02-12-deprecate-unreachableblocks.md @@ -0,0 +1,4 @@ +--- +category: deprecated +--- +* The `UnreachableBlocks.qll` library has been deprecated. diff --git a/java/ql/lib/change-notes/2026-02-12-pattern-annotation-ssrf-sanitizer.md b/java/ql/lib/change-notes/2026-02-12-pattern-annotation-ssrf-sanitizer.md new file mode 100644 index 000000000000..20d3d08b3009 --- /dev/null +++ b/java/ql/lib/change-notes/2026-02-12-pattern-annotation-ssrf-sanitizer.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* More ways of checking that a string matches a regular expression are now considered as sanitizers for various queries, including `java/ssrf` and `java/path-injection`. In particular, being annotated with `@javax.validation.constraints.Pattern` is now recognised as a sanitizer for those queries. diff --git a/java/ql/lib/change-notes/2026-02-14-pattern-annotation-log-injection-sanitizer.md b/java/ql/lib/change-notes/2026-02-14-pattern-annotation-log-injection-sanitizer.md new file mode 100644 index 000000000000..ceff0714ab89 --- /dev/null +++ b/java/ql/lib/change-notes/2026-02-14-pattern-annotation-log-injection-sanitizer.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Using a regular expression to check that a string doesn't contain any line breaks is already a sanitizer for `java/log-injection`. Additional ways of doing the regular expression check are now recognised, including annotation with `@javax.validation.constraints.Pattern`. diff --git a/java/ql/lib/change-notes/released/4.1.0.md b/java/ql/lib/change-notes/released/4.1.0.md index 579567e1edd0..d24446bd8c1a 100644 --- a/java/ql/lib/change-notes/released/4.1.0.md +++ b/java/ql/lib/change-notes/released/4.1.0.md @@ -10,4 +10,4 @@ ### New Features * The Java extractor and QL libraries now support Java 23. -* Kotlin versions up to 2.1.0\ *x* are now supported. +* Kotlin versions up to 2.1.0*x* are now supported. diff --git a/java/ql/lib/change-notes/released/7.2.0.md b/java/ql/lib/change-notes/released/7.2.0.md index 7714e3eeb326..e3585377d0b2 100644 --- a/java/ql/lib/change-notes/released/7.2.0.md +++ b/java/ql/lib/change-notes/released/7.2.0.md @@ -2,4 +2,4 @@ ### New Features -* Kotlin versions up to 2.2.0\ *x* are now supported. Support for the Kotlin 1.5.x series is dropped (so the minimum Kotlin version is now 1.6.0). +* Kotlin versions up to 2.2.0*x* are now supported. Support for the Kotlin 1.5.x series is dropped (so the minimum Kotlin version is now 1.6.0). diff --git a/java/ql/lib/change-notes/released/7.5.0.md b/java/ql/lib/change-notes/released/7.5.0.md index 415dab5dfe4f..36cc6112a12e 100644 --- a/java/ql/lib/change-notes/released/7.5.0.md +++ b/java/ql/lib/change-notes/released/7.5.0.md @@ -2,4 +2,4 @@ ### New Features -* Kotlin versions up to 2.2.2\ *x* are now supported. +* Kotlin versions up to 2.2.2*x* are now supported. diff --git a/java/ql/lib/change-notes/released/8.0.0.md b/java/ql/lib/change-notes/released/8.0.0.md new file mode 100644 index 000000000000..efe82a7db857 --- /dev/null +++ b/java/ql/lib/change-notes/released/8.0.0.md @@ -0,0 +1,20 @@ +## 8.0.0 + +### Breaking Changes + +* Support for Kotlin 1.6.x and 1.7.x series has been dropped + +### New Features + +* Kotlin versions up to 2.3.0 are now supported. + +### Minor Analysis Improvements + +* Added support for Struts 7.x package names in the Struts framework library. The library now recognizes both the legacy `com.opensymphony.xwork2` package names (Struts 2.x-6.x) and the new `org.apache.struts2` package names (Struts 7.x+), maintaining backward compatibility while enabling analysis of code using the latest Struts versions. +* The query `java/unreleased-lock` no longer applies to lock types with names ending in "Pool", as these typically manage a collection of resources and the `lock` and `unlock` methods typically only lock one resource at a time. This may lead to a reduction in false positives. +* The predicate `SummarizedCallable.propagatesFlow` has been extended with the columns `Provenance p` and `boolean isExact`, and as a consequence the predicates `SummarizedCallable.hasProvenance` and `SummarizedCallable.hasExactModel` have been removed. +* When Maven-compatible private package registries are configured for an organisation for Default Setup, CodeQL will now configure Maven to also use these as plugin repositories. CodeQL previously already configured Maven to use them as regular package repositories. This should now allow Maven plugins to be obtained from private registries. + +### Bug Fixes + +* Kotlin: The Kotlin extractor now registers as the last IR generation extension, ensuring that code generated by other compiler plugins (such as kotlinx.serialization) is correctly captured. diff --git a/java/ql/lib/codeql-pack.release.yml b/java/ql/lib/codeql-pack.release.yml index c8145c25bf66..0f48687270dc 100644 --- a/java/ql/lib/codeql-pack.release.yml +++ b/java/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 7.8.4 +lastReleaseVersion: 8.0.0 diff --git a/java/ql/lib/ext/java.util.model.yml b/java/ql/lib/ext/java.util.model.yml index bfae915d36ad..ad4a326dfdc0 100644 --- a/java/ql/lib/ext/java.util.model.yml +++ b/java/ql/lib/ext/java.util.model.yml @@ -398,6 +398,7 @@ extensions: - ["java.util", "StringJoiner", False, "toString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.util", "StringTokenizer", False, "StringTokenizer", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] - ["java.util", "StringTokenizer", False, "nextElement", "()", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["java.util", "StringTokenizer", False, "nextElement", "()", "", "Argument[this].Element", "ReturnValue", "value", "manual"] - ["java.util", "StringTokenizer", False, "nextToken", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["java.util", "TreeMap", False, "TreeMap", "(Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] - ["java.util", "TreeMap", False, "TreeMap", "(Map)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] diff --git a/java/ql/lib/ext/org.apache.commons.collections4.map.model.yml b/java/ql/lib/ext/org.apache.commons.collections4.map.model.yml index abf97a49f19a..352358ecd554 100644 --- a/java/ql/lib/ext/org.apache.commons.collections4.map.model.yml +++ b/java/ql/lib/ext/org.apache.commons.collections4.map.model.yml @@ -70,10 +70,10 @@ extensions: - ["org.apache.commons.collections4.map", "ListOrderedMap", True, "keyList", "", "", "Argument[this].MapKey", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4.map", "ListOrderedMap", True, "listOrderedMap", "", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["org.apache.commons.collections4.map", "ListOrderedMap", True, "listOrderedMap", "", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["org.apache.commons.collections4.map", "ListOrderedMap", True, "put", "", "", "Argument[1]", "Argument[this].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.map", "ListOrderedMap", True, "put", "", "", "Argument[2]", "Argument[this].MapValue", "value", "manual"] - - ["org.apache.commons.collections4.map", "ListOrderedMap", True, "putAll", "", "", "Argument[1].MapKey", "Argument[this].MapKey", "value", "manual"] - - ["org.apache.commons.collections4.map", "ListOrderedMap", True, "putAll", "", "", "Argument[1].MapValue", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.map", "ListOrderedMap", True, "put", "(int,Object,Object)", "", "Argument[1]", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.map", "ListOrderedMap", True, "put", "(int,Object,Object)", "", "Argument[2]", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.map", "ListOrderedMap", True, "putAll", "(int,Map)", "", "Argument[1].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.map", "ListOrderedMap", True, "putAll", "(int,Map)", "", "Argument[1].MapValue", "Argument[this].MapValue", "value", "manual"] - ["org.apache.commons.collections4.map", "ListOrderedMap", True, "remove", "(int)", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] - ["org.apache.commons.collections4.map", "ListOrderedMap", True, "setValue", "", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] - ["org.apache.commons.collections4.map", "ListOrderedMap", True, "valueList", "", "", "Argument[this].MapValue", "ReturnValue.Element", "value", "manual"] @@ -87,6 +87,8 @@ extensions: - ["org.apache.commons.collections4.map", "MultiKeyMap", True, "put", "(Object,Object,Object,Object,Object)", "", "Argument[4]", "Argument[this].MapValue", "value", "manual"] - ["org.apache.commons.collections4.map", "MultiKeyMap", True, "put", "(Object,Object,Object,Object,Object,Object)", "", "Argument[0..4]", "Argument[this].MapKey.Element", "value", "manual"] - ["org.apache.commons.collections4.map", "MultiKeyMap", True, "put", "(Object,Object,Object,Object,Object,Object)", "", "Argument[5]", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4.map", "MultiKeyMap", True, "put", "(MultiKey,Object)", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.map", "MultiKeyMap", True, "put", "(MultiKey,Object)", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] - ["org.apache.commons.collections4.map", "MultiKeyMap", True, "removeMultiKey", "", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] - ["org.apache.commons.collections4.map", "MultiValueMap", True, "getCollection", "", "", "Argument[this].MapValue.Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4.map", "MultiValueMap", True, "iterator", "()", "", "Argument[this].MapKey", "ReturnValue.Element.MapKey", "value", "manual"] @@ -98,6 +100,8 @@ extensions: - ["org.apache.commons.collections4.map", "MultiValueMap", True, "putAll", "(Map)", "", "Argument[0].MapValue.Element", "Argument[this].MapValue.Element", "value", "manual"] - ["org.apache.commons.collections4.map", "MultiValueMap", True, "putAll", "(Object,Collection)", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] - ["org.apache.commons.collections4.map", "MultiValueMap", True, "putAll", "(Object,Collection)", "", "Argument[1].Element", "Argument[this].MapValue.Element", "value", "manual"] + - ["org.apache.commons.collections4.map", "MultiValueMap", True, "putAll", "(Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4.map", "MultiValueMap", True, "putAll", "(Map)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] - ["org.apache.commons.collections4.map", "MultiValueMap", True, "values", "", "", "Argument[this].MapValue.Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4.map", "PassiveExpiringMap", True, "PassiveExpiringMap", "(PassiveExpiringMap$ExpirationPolicy,Map)", "", "Argument[1].MapKey", "Argument[this].MapKey", "value", "manual"] - ["org.apache.commons.collections4.map", "PassiveExpiringMap", True, "PassiveExpiringMap", "(PassiveExpiringMap$ExpirationPolicy,Map)", "", "Argument[1].MapValue", "Argument[this].MapValue", "value", "manual"] diff --git a/java/ql/lib/ext/org.apache.commons.collections4.model.yml b/java/ql/lib/ext/org.apache.commons.collections4.model.yml index fd1f8b405821..b9c6b6e2838b 100644 --- a/java/ql/lib/ext/org.apache.commons.collections4.model.yml +++ b/java/ql/lib/ext/org.apache.commons.collections4.model.yml @@ -287,7 +287,7 @@ extensions: - ["org.apache.commons.collections4", "MapUtils", True, "unmodifiableMap", "", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] - ["org.apache.commons.collections4", "MapUtils", True, "unmodifiableSortedMap", "", "", "Argument[0].MapKey", "ReturnValue.MapKey", "value", "manual"] - ["org.apache.commons.collections4", "MapUtils", True, "unmodifiableSortedMap", "", "", "Argument[0].MapValue", "ReturnValue.MapValue", "value", "manual"] - - ["org.apache.commons.collections4", "MultiMap", True, "get", "", "", "Argument[this].MapValue.Element", "ReturnValue.Element", "value", "manual"] + - ["org.apache.commons.collections4", "MultiMap", True, "get", "", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] - ["org.apache.commons.collections4", "MultiMap", True, "put", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] - ["org.apache.commons.collections4", "MultiMap", True, "put", "", "", "Argument[1]", "Argument[this].MapValue.Element", "value", "manual"] - ["org.apache.commons.collections4", "MultiMap", True, "values", "", "", "Argument[this].MapValue.Element", "ReturnValue.Element", "value", "manual"] @@ -331,9 +331,9 @@ extensions: - ["org.apache.commons.collections4", "OrderedMap", True, "lastKey", "", "", "Argument[this].MapKey", "ReturnValue", "value", "manual"] - ["org.apache.commons.collections4", "OrderedMap", True, "nextKey", "", "", "Argument[this].MapKey", "ReturnValue", "value", "manual"] - ["org.apache.commons.collections4", "OrderedMap", True, "previousKey", "", "", "Argument[this].MapKey", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections4", "Put", True, "put", "", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] - - ["org.apache.commons.collections4", "Put", True, "put", "", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] - - ["org.apache.commons.collections4", "Put", True, "put", "", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] + - ["org.apache.commons.collections4", "Put", True, "put", "(Object,Object)", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] + - ["org.apache.commons.collections4", "Put", True, "put", "(Object,Object)", "", "Argument[0]", "Argument[this].MapKey", "value", "manual"] + - ["org.apache.commons.collections4", "Put", True, "put", "(Object,Object)", "", "Argument[1]", "Argument[this].MapValue", "value", "manual"] - ["org.apache.commons.collections4", "Put", True, "putAll", "(Map)", "", "Argument[0].MapKey", "Argument[this].MapKey", "value", "manual"] - ["org.apache.commons.collections4", "Put", True, "putAll", "(Map)", "", "Argument[0].MapValue", "Argument[this].MapValue", "value", "manual"] - ["org.apache.commons.collections4", "QueueUtils", True, "predicatedQueue", "", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] diff --git a/java/ql/lib/ext/org.apache.commons.collections4.set.model.yml b/java/ql/lib/ext/org.apache.commons.collections4.set.model.yml index 829b9a4d0d07..ecb6d4f46fb1 100644 --- a/java/ql/lib/ext/org.apache.commons.collections4.set.model.yml +++ b/java/ql/lib/ext/org.apache.commons.collections4.set.model.yml @@ -20,7 +20,9 @@ extensions: - ["org.apache.commons.collections4.set", "CompositeSet$SetMutator", True, "addAll", "", "", "Argument[2].Element", "Argument[0].Element", "value", "manual"] - ["org.apache.commons.collections4.set", "CompositeSet$SetMutator", True, "addAll", "", "", "Argument[2].Element", "Argument[1].Element.Element", "value", "manual"] - ["org.apache.commons.collections4.set", "ListOrderedSet", True, "add", "", "", "Argument[1]", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.set", "ListOrderedSet", True, "add", "(Object)", "", "Argument[0]", "Argument[this].Element", "value", "manual"] - ["org.apache.commons.collections4.set", "ListOrderedSet", True, "addAll", "", "", "Argument[1].Element", "Argument[this].Element", "value", "manual"] + - ["org.apache.commons.collections4.set", "ListOrderedSet", True, "addAll", "(Collection)", "", "Argument[0].Element", "Argument[this].Element", "value", "manual"] - ["org.apache.commons.collections4.set", "ListOrderedSet", True, "asList", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"] - ["org.apache.commons.collections4.set", "ListOrderedSet", True, "get", "", "", "Argument[this].Element", "ReturnValue", "value", "manual"] - ["org.apache.commons.collections4.set", "ListOrderedSet", True, "listOrderedSet", "(List)", "", "Argument[0].Element", "ReturnValue.Element", "value", "manual"] diff --git a/java/ql/lib/ext/org.springframework.web.util.model.yml b/java/ql/lib/ext/org.springframework.web.util.model.yml index 3b1418aec90a..b3a313a6178c 100644 --- a/java/ql/lib/ext/org.springframework.web.util.model.yml +++ b/java/ql/lib/ext/org.springframework.web.util.model.yml @@ -30,7 +30,7 @@ extensions: - ["org.springframework.web.util", "DefaultUriBuilderFactory", False, "builder", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["org.springframework.web.util", "DefaultUriBuilderFactory", False, "getDefaultUriVariables", "", "", "Argument[this]", "ReturnValue.MapValue", "taint", "manual"] - ["org.springframework.web.util", "DefaultUriBuilderFactory", False, "setDefaultUriVariables", "", "", "Argument[0].MapValue", "Argument[this]", "taint", "manual"] - - ["org.springframework.web.util", "DefaultUriBuilderFactory", False, "uriString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.springframework.web.util", "DefaultUriBuilderFactory", False, "uriString", "", "", "Argument[this,0]", "ReturnValue", "taint", "manual"] - ["org.springframework.web.util", "HtmlUtils", False, "htmlEscape", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["org.springframework.web.util", "HtmlUtils", False, "htmlEscapeDecimal", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] - ["org.springframework.web.util", "HtmlUtils", False, "htmlEscapeHex", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] @@ -83,8 +83,7 @@ extensions: - ["org.springframework.web.util", "UriBuilder", True, "userInfo", "", "", "Argument[this]", "ReturnValue", "value", "manual"] - ["org.springframework.web.util", "UriBuilder", True, "userInfo", "", "", "Argument[0]", "Argument[this]", "taint", "manual"] - ["org.springframework.web.util", "UriBuilderFactory", True, "builder", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - - ["org.springframework.web.util", "UriBuilderFactory", True, "uriString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - - ["org.springframework.web.util", "UriBuilderFactory", True, "uriString", "", "", "Argument[0]", "ReturnValue", "taint", "manual"] + - ["org.springframework.web.util", "UriBuilderFactory", True, "uriString", "", "", "Argument[this,0]", "ReturnValue", "taint", "manual"] - ["org.springframework.web.util", "UriComponents", False, "UriComponents", "", "", "Argument[0..1]", "Argument[this]", "taint", "manual"] - ["org.springframework.web.util", "UriComponents", False, "copyToUriComponentsBuilder", "", "", "Argument[this]", "Argument[0]", "taint", "manual"] - ["org.springframework.web.util", "UriComponents", False, "encode", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] @@ -107,6 +106,9 @@ extensions: - ["org.springframework.web.util", "UriComponents", False, "toUriString", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] - ["org.springframework.web.util", "UriComponents$UriTemplateVariables", True, "getValue", "", "", "Argument[this].MapValue", "ReturnValue", "value", "manual"] - ["org.springframework.web.util", "UriComponentsBuilder", False, "build", "", "", "Argument[this]", "ReturnValue", "taint", "manual"] + - ["org.springframework.web.util", "UriComponentsBuilder", False, "build", "(Map)", "", "Argument[0].MapValue", "Argument[this]", "taint", "manual"] + - ["org.springframework.web.util", "UriComponentsBuilder", False, "build", "(Map)", "", "Argument[0].MapValue", "ReturnValue", "taint", "manual"] + - ["org.springframework.web.util", "UriComponentsBuilder", False, "build", "(Object[])", "", "Argument[0].ArrayElement", "ReturnValue", "taint", "manual"] - ["org.springframework.web.util", "UriComponentsBuilder", False, "buildAndExpand", "(Map)", "", "Argument[0].MapValue", "ReturnValue", "taint", "manual"] - ["org.springframework.web.util", "UriComponentsBuilder", False, "buildAndExpand", "(Object[])", "", "Argument[0].ArrayElement", "ReturnValue", "taint", "manual"] - ["org.springframework.web.util", "UriComponentsBuilder", False, "cloneBuilder", "", "", "Argument[this]", "ReturnValue", "value", "manual"] diff --git a/java/ql/lib/java.qll b/java/ql/lib/java.qll index 9644343e93b6..7d0f0b7546db 100644 --- a/java/ql/lib/java.qll +++ b/java/ql/lib/java.qll @@ -9,6 +9,7 @@ import semmle.code.Unit import semmle.code.java.Annotation import semmle.code.java.Compilation import semmle.code.java.CompilationUnit +import semmle.code.java.Concepts import semmle.code.java.ControlFlowGraph import semmle.code.java.Dependency import semmle.code.java.Element diff --git a/java/ql/lib/printCfg.ql b/java/ql/lib/printCfg.ql new file mode 100644 index 000000000000..5e3cc22644ef --- /dev/null +++ b/java/ql/lib/printCfg.ql @@ -0,0 +1,45 @@ +/** + * @name Print CFG + * @description Produces a representation of a file's Control Flow Graph. + * This query is used by the VS Code extension. + * @id java/print-cfg + * @kind graph + * @tags ide-contextual-queries/print-cfg + */ + +import java + +external string selectedSourceFile(); + +private predicate selectedSourceFileAlias = selectedSourceFile/0; + +external int selectedSourceLine(); + +private predicate selectedSourceLineAlias = selectedSourceLine/0; + +external int selectedSourceColumn(); + +private predicate selectedSourceColumnAlias = selectedSourceColumn/0; + +module ViewCfgQueryInput implements ViewCfgQueryInputSig { + predicate selectedSourceFile = selectedSourceFileAlias/0; + + predicate selectedSourceLine = selectedSourceLineAlias/0; + + predicate selectedSourceColumn = selectedSourceColumnAlias/0; + + predicate cfgScopeSpan( + Callable callable, File file, int startLine, int startColumn, int endLine, int endColumn + ) { + file = callable.getFile() and + callable.getLocation().getStartLine() = startLine and + callable.getLocation().getStartColumn() = startColumn and + exists(Location loc | + loc.getEndLine() = endLine and + loc.getEndColumn() = endColumn and + loc = callable.getBody().getLocation() + ) + } +} + +import ViewCfgQuery diff --git a/java/ql/lib/qlpack.yml b/java/ql/lib/qlpack.yml index e4c0fd1c9a1e..177711350d5a 100644 --- a/java/ql/lib/qlpack.yml +++ b/java/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-all -version: 7.8.4 +version: 8.0.1-dev groups: java dbscheme: config/semmlecode.dbscheme extractor: java diff --git a/java/ql/lib/semmle/code/java/Concepts.qll b/java/ql/lib/semmle/code/java/Concepts.qll new file mode 100644 index 000000000000..7ed61223ea83 --- /dev/null +++ b/java/ql/lib/semmle/code/java/Concepts.qll @@ -0,0 +1,75 @@ +/** + * Provides abstract classes representing generic concepts such as file system + * access or system command execution, for which individual framework libraries + * provide concrete subclasses. + */ +overlay[local?] +module; + +import java + +/** + * A module importing the frameworks that implement `RegexMatch`es, + * ensuring that they are visible to the concepts library. + */ +private module Frameworks { + private import semmle.code.java.JDK + private import semmle.code.java.frameworks.JavaxAnnotations +} + +/** + * An expression that represents a regular expression match. + * + * Extend this class to refine existing API models. If you want to model new APIs, + * extend `RegexMatch::Range` instead. + * + * These are either method calls, which return `true` when there is a match, or + * annotations, which are considered to match if they are present. + */ +class RegexMatch extends Expr instanceof RegexMatch::Range { + /** Gets the expression for the regex being executed by this node. */ + Expr getRegex() { result = super.getRegex() } + + /** Gets an expression for the string to be searched or matched against. */ + Expr getString() { result = super.getString() } + + /** Gets an expression to be sanitized. */ + Expr getASanitizedExpr() { result = [this.getString(), super.getAdditionalSanitizedExpr()] } + + /** + * Gets the name of this regex match, typically the name of an executing + * method. This is used for nice alert messages and should include the + * type-qualified name if possible. + */ + string getName() { result = super.getName() } +} + +/** Provides classes for modeling regular-expression execution APIs. */ +module RegexMatch { + /** + * An expression that executes a regular expression. + * + * Extend this class to model new APIs. If you want to refine existing API models, + * extend `RegexMatch` instead. + * + * These are either method calls, which return `true` when there is a match, or + * annotations, which are considered to match if they are present. + */ + abstract class Range extends Expr { + /** Gets the expression for the regex being executed by this node. */ + abstract Expr getRegex(); + + /** Gets an expression for the string to be searched or matched against. */ + abstract Expr getString(); + + /** Gets an additional expression to be sanitized, if any. */ + Expr getAdditionalSanitizedExpr() { none() } + + /** + * Gets the name of this regex match, typically the name of an executing + * method. This is used for nice alert messages and should include the + * type-qualified name if possible. + */ + abstract string getName(); + } +} diff --git a/java/ql/lib/semmle/code/java/Concurrency.qll b/java/ql/lib/semmle/code/java/Concurrency.qll index da2783bc3080..b9dd7bfd99b0 100644 --- a/java/ql/lib/semmle/code/java/Concurrency.qll +++ b/java/ql/lib/semmle/code/java/Concurrency.qll @@ -6,12 +6,16 @@ import semmle.code.java.frameworks.Mockito /** * A Java type representing a lock. - * We identify a lock type as one that has both `lock` and `unlock` methods. + * + * We exclude types with a name ending in "Pool" as they typically manage a + * collection of resources and the `lock` and `unlock` methods typically only + * lock one resource at a time. */ class LockType extends RefType { LockType() { this.getAMethod().hasName("lock") and - this.getAMethod().hasName("unlock") + this.getAMethod().hasName("unlock") and + not this.getName().matches("%Pool") } /** Gets a method that is locking this lock type. */ diff --git a/java/ql/lib/semmle/code/java/ConflictingAccess.qll b/java/ql/lib/semmle/code/java/ConflictingAccess.qll index 28908e2c117d..92fb7e253501 100644 --- a/java/ql/lib/semmle/code/java/ConflictingAccess.qll +++ b/java/ql/lib/semmle/code/java/ConflictingAccess.qll @@ -23,7 +23,7 @@ module Modification { /** Holds if the call `c` modifies a shared resource. */ predicate isModifyingCall(Call c) { exists(SummarizedCallable sc, string output | sc.getACall() = c | - sc.propagatesFlow(_, output, _, _) and + sc.propagatesFlow(_, output, _, _, _, _) and output.matches("Argument[this]%") ) } diff --git a/java/ql/lib/semmle/code/java/Constants.qll b/java/ql/lib/semmle/code/java/Constants.qll index 0cad92b7fc6d..b515eaefb286 100644 --- a/java/ql/lib/semmle/code/java/Constants.qll +++ b/java/ql/lib/semmle/code/java/Constants.qll @@ -22,7 +22,7 @@ module CalculateConstants boolean calculateBooleanValue(Expr e) { // No casts relevant to booleans. // `!` is the only unary operator that evaluates to a boolean. - result = getBoolVal(e.(LogNotExpr).getExpr()).booleanNot() + result = getBoolVal(e.(LogNotExpr).getOperand()).booleanNot() or // Handle binary expressions that have integer operands and a boolean result. exists(BinaryExpr b, int left, int right | @@ -115,11 +115,11 @@ module CalculateConstants else result = val ) or - result = getIntVal(e.(PlusExpr).getExpr()) + result = getIntVal(e.(PlusExpr).getOperand()) or - result = -getIntVal(e.(MinusExpr).getExpr()) + result = -getIntVal(e.(MinusExpr).getOperand()) or - result = getIntVal(e.(BitNotExpr).getExpr()).bitNot() + result = getIntVal(e.(BitNotExpr).getOperand()).bitNot() or // No `int` value for `LogNotExpr`. exists(BinaryExpr b, int v1, int v2 | diff --git a/java/ql/lib/semmle/code/java/ControlFlowGraph.qll b/java/ql/lib/semmle/code/java/ControlFlowGraph.qll index a31101888da3..64449b6f93d7 100644 --- a/java/ql/lib/semmle/code/java/ControlFlowGraph.qll +++ b/java/ql/lib/semmle/code/java/ControlFlowGraph.qll @@ -827,7 +827,7 @@ private module ControlFlowGraphImpl { index = 1 and result = e.getRightOperand() ) or - index = 0 and result = this.(UnaryExpr).getExpr() + index = 0 and result = this.(UnaryExpr).getOperand() or index = 0 and result = this.(CastingExpr).getExpr() or @@ -849,7 +849,7 @@ private module ControlFlowGraphImpl { or index = 0 and result = this.(ClassExpr).getExpr() or - index = 0 and result = this.(ReturnStmt).getResult() + index = 0 and result = this.(ReturnStmt).getExpr() or index = 0 and result = this.(ThrowStmt).getExpr() or @@ -1044,7 +1044,7 @@ private module ControlFlowGraphImpl { or // The last node of a `LogNotExpr` is in its sub-expression with an inverted boolean completion // (or a `normalCompletion`). - exists(Completion subcompletion | last(n.(LogNotExpr).getExpr(), last, subcompletion) | + exists(Completion subcompletion | last(n.(LogNotExpr).getOperand(), last, subcompletion) | subcompletion = NormalCompletion() and completion = NormalCompletion() and not inBooleanContext(n) @@ -1356,7 +1356,7 @@ private module ControlFlowGraphImpl { ( result = first(n.asExpr().(AndLogicalExpr).getLeftOperand()) or result = first(n.asExpr().(OrLogicalExpr).getLeftOperand()) or - result = first(n.asExpr().(LogNotExpr).getExpr()) or + result = first(n.asExpr().(LogNotExpr).getOperand()) or result = first(n.asExpr().(ConditionalExpr).getCondition()) ) or @@ -1427,7 +1427,7 @@ private module ControlFlowGraphImpl { condentry = first(for.getCondition()) or // ...or the body if the for doesn't include a condition. - not exists(for.getCondition()) and condentry = first(for.getStmt()) + not exists(for.getCondition()) and condentry = first(for.getBody()) | // From the entry point, which is the for statement itself, control goes to either the first init expression... n.asStmt() = for and result = first(for.getInit(0)) and completion = NormalCompletion() @@ -1448,7 +1448,7 @@ private module ControlFlowGraphImpl { // The true-successor of the condition is the body of the for loop. last(for.getCondition(), n, completion) and completion = BooleanCompletion(true, _) and - result = first(for.getStmt()) + result = first(for.getBody()) or // The updates execute sequentially, after which control is transferred to the condition. exists(int i | last(for.getUpdate(i), n, completion) and completion = NormalCompletion() | @@ -1458,7 +1458,7 @@ private module ControlFlowGraphImpl { ) or // The back edge of the loop: control goes to either the first update or the condition if no updates exist. - last(for.getStmt(), n, completion) and + last(for.getBody(), n, completion) and continues(completion, for) and ( result = first(for.getUpdate(0)) @@ -1479,11 +1479,11 @@ private module ControlFlowGraphImpl { or // ...and then control goes to the body of the loop. n.asExpr() = for.getVariable() and - result = first(for.getStmt()) and + result = first(for.getBody()) and completion = NormalCompletion() or // Finally, the back edge of the loop goes to reassign the variable. - last(for.getStmt(), n, completion) and + last(for.getBody(), n, completion) and continues(completion, for) and result.asExpr() = for.getVariable() ) @@ -1492,7 +1492,7 @@ private module ControlFlowGraphImpl { result = first(n.asStmt().(WhileStmt).getCondition()) and completion = NormalCompletion() or // ...and do-while loops start at the body. - result = first(n.asStmt().(DoStmt).getStmt()) and completion = NormalCompletion() + result = first(n.asStmt().(DoStmt).getBody()) and completion = NormalCompletion() or exists(LoopStmt loop | loop instanceof WhileStmt or loop instanceof DoStmt | // Control goes from the condition via a true-completion to the body... @@ -1775,3 +1775,17 @@ class ConditionNode extends ControlFlow::Node { /** Gets the condition of this `ConditionNode`. */ ExprParent getCondition() { result = this.asExpr() or result = this.asStmt() } } + +private import codeql.controlflow.PrintGraph as PrintGraph + +private module PrintGraphInput implements PrintGraph::InputSig { + private import java as J + + class Callable = J::Callable; + + class ControlFlowNode = J::ControlFlowNode; + + ControlFlowNode getASuccessor(ControlFlowNode n, SuccessorType t) { result = n.getASuccessor(t) } +} + +import PrintGraph::PrintGraph diff --git a/java/ql/lib/semmle/code/java/Conversions.qll b/java/ql/lib/semmle/code/java/Conversions.qll index 779eb7620bec..1855b7af54a1 100644 --- a/java/ql/lib/semmle/code/java/Conversions.qll +++ b/java/ql/lib/semmle/code/java/Conversions.qll @@ -69,7 +69,7 @@ class AssignmentConversionContext extends ConversionSite { class ReturnConversionSite extends ConversionSite { ReturnStmt r; - ReturnConversionSite() { this = r.getResult() } + ReturnConversionSite() { this = r.getExpr() } override Type getConversionTarget() { result = r.getEnclosingCallable().getReturnType() } diff --git a/java/ql/lib/semmle/code/java/Expr.qll b/java/ql/lib/semmle/code/java/Expr.qll index 4b03375c69ee..c609c35cd71e 100644 --- a/java/ql/lib/semmle/code/java/Expr.qll +++ b/java/ql/lib/semmle/code/java/Expr.qll @@ -113,7 +113,7 @@ class Expr extends ExprParent, @expr { if this instanceof CastingExpr or this instanceof NotNullExpr then result = this.(CastingExpr).getExpr().getUnderlyingExpr() or - result = this.(NotNullExpr).getExpr().getUnderlyingExpr() + result = this.(NotNullExpr).getOperand().getUnderlyingExpr() else result = this } } @@ -144,13 +144,13 @@ class CompileTimeConstantExpr extends Expr { this.(CastingExpr).getExpr().isCompileTimeConstant() or // The unary operators `+`, `-`, `~`, and `!` (but not `++` or `--`). - this.(PlusExpr).getExpr().isCompileTimeConstant() + this.(PlusExpr).getOperand().isCompileTimeConstant() or - this.(MinusExpr).getExpr().isCompileTimeConstant() + this.(MinusExpr).getOperand().isCompileTimeConstant() or - this.(BitNotExpr).getExpr().isCompileTimeConstant() + this.(BitNotExpr).getOperand().isCompileTimeConstant() or - this.(LogNotExpr).getExpr().isCompileTimeConstant() + this.(LogNotExpr).getOperand().isCompileTimeConstant() or // The multiplicative operators `*`, `/`, and `%`, // the additive operators `+` and `-`, @@ -166,8 +166,8 @@ class CompileTimeConstantExpr extends Expr { // The ternary conditional operator ` ? : `. exists(ConditionalExpr e | this = e | e.getCondition().isCompileTimeConstant() and - e.getTrueExpr().isCompileTimeConstant() and - e.getFalseExpr().isCompileTimeConstant() + e.getThen().isCompileTimeConstant() and + e.getElse().isCompileTimeConstant() ) or // Access to a final variable initialized by a compile-time constant. @@ -943,7 +943,7 @@ class LogicExpr extends Expr { /** Gets an operand of this logical expression. */ Expr getAnOperand() { this.(BinaryExpr).getAnOperand() = result or - this.(UnaryExpr).getExpr() = result + this.(UnaryExpr).getOperand() = result } } @@ -1039,8 +1039,15 @@ class ReferenceEqualityTest extends EqualityTest { /** A common super-class that represents unary operator expressions. */ class UnaryExpr extends Expr, @unaryexpr { + /** + * DEPRECATED: Use `getOperand()` instead. + * + * Gets the operand expression. + */ + deprecated Expr getExpr() { result.getParent() = this } + /** Gets the operand expression. */ - Expr getExpr() { result.getParent() = this } + Expr getOperand() { result.getParent() = this } } /** @@ -1305,7 +1312,7 @@ class LambdaExpr extends FunctionalExpr, @lambdaexpr { /** Gets the body of this lambda expression, if it is an expression. */ Expr getExprBody() { - this.hasExprBody() and result = this.asMethod().getBody().getAChild().(ReturnStmt).getResult() + this.hasExprBody() and result = this.asMethod().getBody().getAChild().(ReturnStmt).getExpr() } /** Gets the body of this lambda expression, if it is a statement. */ @@ -1340,7 +1347,7 @@ class MemberRefExpr extends FunctionalExpr, @memberref { exists(Stmt stmt | stmt = this.asMethod().getBody().(SingletonBlock).getStmt() and ( - result = stmt.(ReturnStmt).getResult() + result = stmt.(ReturnStmt).getExpr() or // Note: Currently never an ExprStmt, but might change once https://github.com/github/codeql/issues/3605 is fixed result = stmt.(ExprStmt).getExpr() @@ -1456,27 +1463,43 @@ class ConditionalExpr extends Expr, @conditionalexpr { /** Gets the condition of this conditional expression. */ Expr getCondition() { result.isNthChildOf(this, 0) } + /** + * DEPRECATED: Use `getThen()` instead. + * + * Gets the expression that is evaluated if the condition of this + * conditional expression evaluates to `true`. + */ + deprecated Expr getTrueExpr() { result.isNthChildOf(this, 1) } + + /** + * DEPRECATED: Use `getElse()` instead. + * + * Gets the expression that is evaluated if the condition of this + * conditional expression evaluates to `false`. + */ + deprecated Expr getFalseExpr() { result.isNthChildOf(this, 2) } + /** * Gets the expression that is evaluated if the condition of this * conditional expression evaluates to `true`. */ - Expr getTrueExpr() { result.isNthChildOf(this, 1) } + Expr getThen() { result.isNthChildOf(this, 1) } /** * Gets the expression that is evaluated if the condition of this * conditional expression evaluates to `false`. */ - Expr getFalseExpr() { result.isNthChildOf(this, 2) } + Expr getElse() { result.isNthChildOf(this, 2) } /** * Gets the expression that is evaluated by the specific branch of this - * conditional expression. If `true` that is `getTrueExpr()`, if `false` - * it is `getFalseExpr()`. + * conditional expression. If `true` that is `getThen()`, if `false` + * it is `getElse()`. */ Expr getBranchExpr(boolean branch) { - branch = true and result = this.getTrueExpr() + branch = true and result = this.getThen() or - branch = false and result = this.getFalseExpr() + branch = false and result = this.getElse() } /** @@ -1773,14 +1796,14 @@ class VariableUpdate extends Expr { VariableUpdate() { this.(Assignment).getDest() instanceof VarAccess or this instanceof LocalVariableDeclExpr or - this.(UnaryAssignExpr).getExpr() instanceof VarAccess + this.(UnaryAssignExpr).getOperand() instanceof VarAccess } /** Gets the destination of this variable update. */ Variable getDestVar() { result.getAnAccess() = this.(Assignment).getDest() or result = this.(LocalVariableDeclExpr).getVariable() or - result.getAnAccess() = this.(UnaryAssignExpr).getExpr() + result.getAnAccess() = this.(UnaryAssignExpr).getOperand() } } @@ -1970,7 +1993,7 @@ class VarAccess extends Expr, @varaccess { */ predicate isVarWrite() { exists(Assignment a | a.getDest() = this) or - exists(UnaryAssignExpr e | e.getExpr() = this) + exists(UnaryAssignExpr e | e.getOperand() = this) } /** diff --git a/java/ql/lib/semmle/code/java/JDK.qll b/java/ql/lib/semmle/code/java/JDK.qll index f965fbfe6ba6..93562c7c3d80 100644 --- a/java/ql/lib/semmle/code/java/JDK.qll +++ b/java/ql/lib/semmle/code/java/JDK.qll @@ -48,13 +48,19 @@ class StringContainsMethod extends Method { } /** A call to the `java.lang.String.matches` method. */ -class StringMatchesCall extends MethodCall { +class StringMatchesCall extends MethodCall, RegexMatch::Range { StringMatchesCall() { exists(Method m | m = this.getMethod() | m.getDeclaringType() instanceof TypeString and m.hasName("matches") ) } + + override Expr getRegex() { result = this.getArgument(0) } + + override Expr getString() { result = this.getQualifier() } + + override string getName() { result = "String.matches" } } /** A call to the `java.lang.String.replaceAll` method. */ diff --git a/java/ql/lib/semmle/code/java/Member.qll b/java/ql/lib/semmle/code/java/Member.qll index 17fe696972f6..23e08c4e6b60 100644 --- a/java/ql/lib/semmle/code/java/Member.qll +++ b/java/ql/lib/semmle/code/java/Member.qll @@ -680,13 +680,13 @@ class GetterMethod extends Method { GetterMethod() { this.hasNoParameters() and exists(ReturnStmt s, Field f | s = this.getBody().(SingletonBlock).getStmt() | - s.getResult() = f.getAnAccess() + s.getExpr() = f.getAnAccess() ) } /** Gets the field whose value is returned by this getter method. */ Field getField() { - exists(ReturnStmt r | r.getEnclosingCallable() = this | r.getResult() = result.getAnAccess()) + exists(ReturnStmt r | r.getEnclosingCallable() = this | r.getExpr() = result.getAnAccess()) } } diff --git a/java/ql/lib/semmle/code/java/PrettyPrintAst.qll b/java/ql/lib/semmle/code/java/PrettyPrintAst.qll index 3d907a5a0991..59a59cd9cdd0 100644 --- a/java/ql/lib/semmle/code/java/PrettyPrintAst.qll +++ b/java/ql/lib/semmle/code/java/PrettyPrintAst.qll @@ -257,7 +257,7 @@ private class PpUnaryExpr extends PpAst, UnaryExpr { i = 2 and result = "--" and this instanceof PostDecExpr } - override PpAst getChild(int i) { i = 1 and result = this.getExpr() } + override PpAst getChild(int i) { i = 1 and result = this.getOperand() } } private class PpCastExpr extends PpAst, CastExpr { @@ -351,9 +351,9 @@ private class PpConditionalExpr extends PpAst, ConditionalExpr { override PpAst getChild(int i) { i = 0 and result = this.getCondition() or - i = 2 and result = this.getTrueExpr() + i = 2 and result = this.getThen() or - i = 4 and result = this.getFalseExpr() + i = 4 and result = this.getElse() } } @@ -577,7 +577,7 @@ private class PpForStmt extends PpAst, ForStmt { or i = 1 + this.lastUpdateIndex() and result = ")" or - i = 2 + this.lastUpdateIndex() and result = " " and this.getStmt() instanceof BlockStmt + i = 2 + this.lastUpdateIndex() and result = " " and this.getBody() instanceof BlockStmt } private int lastInitIndex() { result = 3 + 2 * max(int j | exists(this.getInit(j))) } @@ -587,7 +587,7 @@ private class PpForStmt extends PpAst, ForStmt { } override predicate newline(int i) { - i = 2 + this.lastUpdateIndex() and not this.getStmt() instanceof BlockStmt + i = 2 + this.lastUpdateIndex() and not this.getBody() instanceof BlockStmt } override PpAst getChild(int i) { @@ -599,11 +599,11 @@ private class PpForStmt extends PpAst, ForStmt { or exists(int j | result = this.getUpdate(j) and i = 4 + this.lastInitIndex() + 2 * j) or - i = 3 + this.lastUpdateIndex() and result = this.getStmt() + i = 3 + this.lastUpdateIndex() and result = this.getBody() } override predicate indents(int i) { - i = 3 + this.lastUpdateIndex() and not this.getStmt() instanceof BlockStmt + i = 3 + this.lastUpdateIndex() and not this.getBody() instanceof BlockStmt } } @@ -616,7 +616,7 @@ private class PpEnhancedForStmt extends PpAst, EnhancedForStmt { i = 4 and result = " : " or i = 6 and - if this.getStmt() instanceof BlockStmt then result = ") " else result = ")" + if this.getBody() instanceof BlockStmt then result = ") " else result = ")" } override PpAst getChild(int i) { @@ -626,10 +626,10 @@ private class PpEnhancedForStmt extends PpAst, EnhancedForStmt { or i = 5 and result = this.getExpr() or - i = 7 and result = this.getStmt() + i = 7 and result = this.getBody() } - override predicate indents(int i) { i = 7 and not this.getStmt() instanceof BlockStmt } + override predicate indents(int i) { i = 7 and not this.getBody() instanceof BlockStmt } } private class PpWhileStmt extends PpAst, WhileStmt { @@ -638,40 +638,40 @@ private class PpWhileStmt extends PpAst, WhileStmt { or i = 2 and result = ")" or - i = 3 and result = " " and this.getStmt() instanceof BlockStmt + i = 3 and result = " " and this.getBody() instanceof BlockStmt } - override predicate newline(int i) { i = 3 and not this.getStmt() instanceof BlockStmt } + override predicate newline(int i) { i = 3 and not this.getBody() instanceof BlockStmt } override PpAst getChild(int i) { i = 1 and result = this.getCondition() or - i = 4 and result = this.getStmt() + i = 4 and result = this.getBody() } - override predicate indents(int i) { i = 4 and not this.getStmt() instanceof BlockStmt } + override predicate indents(int i) { i = 4 and not this.getBody() instanceof BlockStmt } } private class PpDoStmt extends PpAst, DoStmt { override string getPart(int i) { i = 0 and result = "do" or - i in [1, 3] and result = " " and this.getStmt() instanceof BlockStmt + i in [1, 3] and result = " " and this.getBody() instanceof BlockStmt or i = 4 and result = "while (" or i = 6 and result = ");" } - override predicate newline(int i) { i in [1, 3] and not this.getStmt() instanceof BlockStmt } + override predicate newline(int i) { i in [1, 3] and not this.getBody() instanceof BlockStmt } override PpAst getChild(int i) { - i = 2 and result = this.getStmt() + i = 2 and result = this.getBody() or i = 5 and result = this.getCondition() } - override predicate indents(int i) { i = 2 and not this.getStmt() instanceof BlockStmt } + override predicate indents(int i) { i = 2 and not this.getBody() instanceof BlockStmt } } private class PpTryStmt extends PpAst, TryStmt { @@ -854,7 +854,7 @@ private class PpSynchronizedStmt extends PpAst, SynchronizedStmt { private class PpReturnStmt extends PpAst, ReturnStmt { override string getPart(int i) { - if exists(this.getResult()) + if exists(this.getExpr()) then i = 0 and result = "return " or @@ -864,7 +864,7 @@ private class PpReturnStmt extends PpAst, ReturnStmt { ) } - override PpAst getChild(int i) { i = 1 and result = this.getResult() } + override PpAst getChild(int i) { i = 1 and result = this.getExpr() } } private class PpThrowStmt extends PpAst, ThrowStmt { diff --git a/java/ql/lib/semmle/code/java/Statement.qll b/java/ql/lib/semmle/code/java/Statement.qll index 2aea8b006ae1..4366334dfbdc 100644 --- a/java/ql/lib/semmle/code/java/Statement.qll +++ b/java/ql/lib/semmle/code/java/Statement.qll @@ -140,7 +140,7 @@ class IfStmt extends ConditionalStmt, @ifstmt { } /** A `for` loop. */ -class ForStmt extends ConditionalStmt, @forstmt { +class ForStmt extends ConditionalStmt, LoopStmtImpl, @forstmt { /** * Gets an initializer expression of the loop. * @@ -167,8 +167,15 @@ class ForStmt extends ConditionalStmt, @forstmt { index = result.getIndex() - 3 } + /** + * DEPRECATED: Use `getBody()` instead. + * + * Gets the body of this `for` loop. + */ + deprecated Stmt getStmt() { result.getParent() = this and result.getIndex() = 2 } + /** Gets the body of this `for` loop. */ - Stmt getStmt() { result.getParent() = this and result.getIndex() = 2 } + override Stmt getBody() { result.getParent() = this and result.getIndex() = 2 } /** * Gets a variable that is used as an iteration variable: it is defined, @@ -184,14 +191,14 @@ class ForStmt extends ConditionalStmt, @forstmt { Variable getAnIterationVariable() { // Check that the variable is assigned to, incremented or decremented in the update expression, and... exists(Expr update | update = this.getAnUpdate().getAChildExpr*() | - update.(UnaryAssignExpr).getExpr() = result.getAnAccess() or + update.(UnaryAssignExpr).getOperand() = result.getAnAccess() or update = result.getAnAssignedValue() ) and // ...that it is checked or used in the condition. this.getCondition().getAChildExpr*() = result.getAnAccess() } - override string pp() { result = "for (...;...;...) " + this.getStmt().pp() } + override string pp() { result = "for (...;...;...) " + this.getBody().pp() } override string toString() { result = "for (...;...;...)" } @@ -201,17 +208,24 @@ class ForStmt extends ConditionalStmt, @forstmt { } /** An enhanced `for` loop. (Introduced in Java 5.) */ -class EnhancedForStmt extends Stmt, @enhancedforstmt { +class EnhancedForStmt extends LoopStmtImpl, @enhancedforstmt { /** Gets the local variable declaration expression of this enhanced `for` loop. */ LocalVariableDeclExpr getVariable() { result.getParent() = this } /** Gets the expression over which this enhanced `for` loop iterates. */ Expr getExpr() { result.isNthChildOf(this, 1) } + /** + * DEPRECATED: Use `getBody()` instead. + * + * Gets the body of this enhanced `for` loop. + */ + deprecated Stmt getStmt() { result.getParent() = this } + /** Gets the body of this enhanced `for` loop. */ - Stmt getStmt() { result.getParent() = this } + override Stmt getBody() { result.getParent() = this } - override string pp() { result = "for (... : ...) " + this.getStmt().pp() } + override string pp() { result = "for (... : ...) " + this.getBody().pp() } override string toString() { result = "for (... : ...)" } @@ -221,14 +235,21 @@ class EnhancedForStmt extends Stmt, @enhancedforstmt { } /** A `while` loop. */ -class WhileStmt extends ConditionalStmt, @whilestmt { +class WhileStmt extends ConditionalStmt, LoopStmtImpl, @whilestmt { /** Gets the boolean condition of this `while` loop. */ override Expr getCondition() { result.getParent() = this } + /** + * DEPRECATED: Use `getBody()` instead. + * + * Gets the body of this `while` loop. + */ + deprecated Stmt getStmt() { result.getParent() = this } + /** Gets the body of this `while` loop. */ - Stmt getStmt() { result.getParent() = this } + override Stmt getBody() { result.getParent() = this } - override string pp() { result = "while (...) " + this.getStmt().pp() } + override string pp() { result = "while (...) " + this.getBody().pp() } override string toString() { result = "while (...)" } @@ -238,14 +259,21 @@ class WhileStmt extends ConditionalStmt, @whilestmt { } /** A `do` loop. */ -class DoStmt extends ConditionalStmt, @dostmt { +class DoStmt extends ConditionalStmt, LoopStmtImpl, @dostmt { /** Gets the condition of this `do` loop. */ override Expr getCondition() { result.getParent() = this } + /** + * DEPRECATED: Use `getBody()` instead. + * + * Gets the body of this `do` loop. + */ + deprecated Stmt getStmt() { result.getParent() = this } + /** Gets the body of this `do` loop. */ - Stmt getStmt() { result.getParent() = this } + override Stmt getBody() { result.getParent() = this } - override string pp() { result = "do " + this.getStmt().pp() + " while (...)" } + override string pp() { result = "do " + this.getBody().pp() + " while (...)" } override string toString() { result = "do ... while (...)" } @@ -258,30 +286,16 @@ class DoStmt extends ConditionalStmt, @dostmt { * A loop statement, including `for`, enhanced `for`, * `while` and `do` statements. */ -class LoopStmt extends Stmt { - LoopStmt() { - this instanceof ForStmt or - this instanceof EnhancedForStmt or - this instanceof WhileStmt or - this instanceof DoStmt - } - +abstract private class LoopStmtImpl extends Stmt { /** Gets the body of this loop statement. */ - Stmt getBody() { - result = this.(ForStmt).getStmt() or - result = this.(EnhancedForStmt).getStmt() or - result = this.(WhileStmt).getStmt() or - result = this.(DoStmt).getStmt() - } + abstract Stmt getBody(); /** Gets the boolean condition of this loop statement. */ - Expr getCondition() { - result = this.(ForStmt).getCondition() or - result = this.(WhileStmt).getCondition() or - result = this.(DoStmt).getCondition() - } + Expr getCondition() { none() } } +final class LoopStmt = LoopStmtImpl; + /** A `try` statement. */ class TryStmt extends Stmt, @trystmt { /** Gets the block of the `try` statement. */ @@ -627,8 +641,15 @@ class SynchronizedStmt extends Stmt, @synchronizedstmt { /** A `return` statement. */ class ReturnStmt extends Stmt, @returnstmt { + /** + * DEPRECATED: Use `getExpr()` instead. + * + * Gets the expression returned by this `return` statement, if any. + */ + deprecated Expr getResult() { result.getParent() = this } + /** Gets the expression returned by this `return` statement, if any. */ - Expr getResult() { result.getParent() = this } + Expr getExpr() { result.getParent() = this } override string pp() { result = "return ..." } diff --git a/java/ql/lib/semmle/code/java/arithmetic/Overflow.qll b/java/ql/lib/semmle/code/java/arithmetic/Overflow.qll index 471f271eb866..e82192b0fbaf 100644 --- a/java/ql/lib/semmle/code/java/arithmetic/Overflow.qll +++ b/java/ql/lib/semmle/code/java/arithmetic/Overflow.qll @@ -93,7 +93,7 @@ class ArithExpr extends Expr { ) and forall(Expr e | e = this.(BinaryExpr).getAnOperand() or - e = this.(UnaryAssignExpr).getExpr() or + e = this.(UnaryAssignExpr).getOperand() or e = this.(AssignOp).getSource() | e.getType() instanceof NumType @@ -114,7 +114,7 @@ class ArithExpr extends Expr { */ Expr getLeftOperand() { result = this.(BinaryExpr).getLeftOperand() or - result = this.(UnaryAssignExpr).getExpr() or + result = this.(UnaryAssignExpr).getOperand() or result = this.(AssignOp).getDest() } @@ -128,7 +128,7 @@ class ArithExpr extends Expr { /** Gets an operand of this arithmetic expression. */ Expr getAnOperand() { result = this.(BinaryExpr).getAnOperand() or - result = this.(UnaryAssignExpr).getExpr() or + result = this.(UnaryAssignExpr).getOperand() or result = this.(AssignOp).getSource() } } diff --git a/java/ql/lib/semmle/code/java/comparison/Comparison.qll b/java/ql/lib/semmle/code/java/comparison/Comparison.qll index 7aea0f6fb258..4a2601678e2f 100644 --- a/java/ql/lib/semmle/code/java/comparison/Comparison.qll +++ b/java/ql/lib/semmle/code/java/comparison/Comparison.qll @@ -9,7 +9,7 @@ import java * Used as basis for the transitive closure in `exprImplies`. */ private predicate exprImpliesStep(Expr e1, boolean b1, Expr e2, boolean b2) { - e1.(LogNotExpr).getExpr() = e2 and + e1.(LogNotExpr).getOperand() = e2 and b2 = b1.booleanNot() and (b1 = true or b1 = false) or diff --git a/java/ql/lib/semmle/code/java/controlflow/Guards.qll b/java/ql/lib/semmle/code/java/controlflow/Guards.qll index 0e1db1600949..49cd0d189414 100644 --- a/java/ql/lib/semmle/code/java/controlflow/Guards.qll +++ b/java/ql/lib/semmle/code/java/controlflow/Guards.qll @@ -279,9 +279,7 @@ private module GuardsInput implements SharedGuards::InputSig { } class NegateExpr extends UnaryExpr instanceof MinusExpr { - override Expr getOperand() { result = super.getExpr() } + override Expr getOperand() { result = MinusExpr.super.getOperand() } } class PreIncExpr extends UnaryExpr instanceof J::PreIncExpr { - override Expr getOperand() { result = super.getExpr() } + override Expr getOperand() { result = J::PreIncExpr.super.getOperand() } } class PreDecExpr extends UnaryExpr instanceof J::PreDecExpr { - override Expr getOperand() { result = super.getExpr() } + override Expr getOperand() { result = J::PreDecExpr.super.getOperand() } } class PostIncExpr extends UnaryExpr instanceof J::PostIncExpr { - override Expr getOperand() { result = super.getExpr() } + override Expr getOperand() { result = J::PostIncExpr.super.getOperand() } } class PostDecExpr extends UnaryExpr instanceof J::PostDecExpr { - override Expr getOperand() { result = super.getExpr() } + override Expr getOperand() { result = J::PostDecExpr.super.getOperand() } } class CopyValueExpr extends UnaryExpr { @@ -200,7 +200,7 @@ module Sem implements Semantic { } override Expr getOperand() { - result = this.(J::PlusExpr).getExpr() or + result = this.(J::PlusExpr).getOperand() or result = this.(J::AssignExpr).getSource() or result = this.(J::LocalVariableDeclExpr).getInit() } diff --git a/java/ql/lib/semmle/code/java/dataflow/TypeFlow.qll b/java/ql/lib/semmle/code/java/dataflow/TypeFlow.qll index 361b4feb54a8..9aca7fad2f2a 100644 --- a/java/ql/lib/semmle/code/java/dataflow/TypeFlow.qll +++ b/java/ql/lib/semmle/code/java/dataflow/TypeFlow.qll @@ -110,7 +110,7 @@ module FlowStepsInput implements UniversalFlow::UniversalFlowInput { n2.asSsa().(Base::SsaPhiDefinition).getAnUltimateDefinition() = n1.asSsa() or exists(ReturnStmt ret | - n2.asMethod() = ret.getEnclosingCallable() and ret.getResult() = n1.asExpr() + n2.asMethod() = ret.getEnclosingCallable() and ret.getExpr() = n1.asExpr() ) or viableImpl_v1(n2.asExpr()) = n1.asMethod() @@ -137,7 +137,7 @@ module FlowStepsInput implements UniversalFlow::UniversalFlowInput { or n2.asSsa().(Base::SsaCapturedDefinition).captures(n1.asSsa()) or - n2.asExpr().(NotNullExpr).getExpr() = n1.asExpr() + n2.asExpr().(NotNullExpr).getOperand() = n1.asExpr() } /** 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 e373340d7d7c..5e3a8550e3cc 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/BaseSSA.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/BaseSSA.qll @@ -87,7 +87,7 @@ private module BaseSsaImpl { result = TLocalVar(v.getCallable(), v) ) or - result.getAnAccess() = upd.(UnaryAssignExpr).getExpr() + result.getAnAccess() = upd.(UnaryAssignExpr).getOperand() } /** Holds if `n` updates the local variable `v`. */ diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowDispatch.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowDispatch.qll index a27f14cede08..2b1cb6be982b 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowDispatch.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowDispatch.qll @@ -12,7 +12,11 @@ private import semmle.code.java.dispatch.internal.Unification private module DispatchImpl { private predicate hasHighConfidenceTarget(Call c) { - exists(Impl::Public::SummarizedCallable sc | sc.getACall() = c and not sc.applyGeneratedModel()) + exists(Impl::Public::SummarizedCallable sc, Impl::Public::Provenance p | + sc.getACall() = c and + sc.propagatesFlow(_, _, _, p, _, _) and + not p.isGenerated() + ) or exists(Impl::Public::NeutralSummaryCallable nc | nc.getACall() = c and nc.hasManualModel()) or @@ -25,8 +29,10 @@ private module DispatchImpl { private predicate hasExactManualModel(Call c, Callable tgt) { tgt = c.getCallee().getSourceDeclaration() and ( - exists(Impl::Public::SummarizedCallable sc | - sc.getACall() = c and sc.hasExactModel() and sc.hasManualModel() + exists(Impl::Public::SummarizedCallable sc, Impl::Public::Provenance p | + sc.getACall() = c and + sc.propagatesFlow(_, _, _, p, true, _) and + p.isManual() ) or exists(Impl::Public::NeutralSummaryCallable nc | @@ -57,16 +63,6 @@ private module DispatchImpl { exists(Call call | call = c.asCall() | result.asCallable() = sourceDispatch(call) or - not ( - // Only use summarized callables with generated summaries in case - // the static call target is not in the source code. - // Note that if `applyGeneratedModel` holds it implies that there doesn't - // exist a manual model. - exists(Callable staticTarget | staticTarget = call.getCallee().getSourceDeclaration() | - staticTarget.fromSource() and not staticTarget.isStub() - ) and - result.asSummarizedCallable().applyGeneratedModel() - ) and result.asSummarizedCallable().getACall() = call ) } diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowNodes.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowNodes.qll index 9786286389c8..a280e531f91c 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowNodes.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowNodes.qll @@ -510,7 +510,7 @@ module Private { /** A data flow node that occurs as the result of a `ReturnStmt`. */ class ReturnNode extends Node { ReturnNode() { - exists(ReturnStmt ret | this.asExpr() = ret.getResult()) or + exists(ReturnStmt ret | this.asExpr() = ret.getExpr()) or this.(FlowSummaryNode).isReturn() } 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 e2e80c293ef0..9c2bb13a09f5 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowUtil.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowUtil.qll @@ -201,7 +201,7 @@ predicate simpleAstFlowStep(Expr e1, Expr e2) { or e2 = any(StmtExpr stmtExpr | e1 = stmtExpr.getResultExpr()) or - e2 = any(NotNullExpr nne | e1 = nne.getExpr()) + e2 = any(NotNullExpr nne | e1 = nne.getOperand()) or e2.(WhenExpr).getBranch(_).getAResult() = e1 or diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll b/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll index b9d8f58cecbc..64fa30c7d914 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/FlowSummaryImpl.qll @@ -33,6 +33,10 @@ module Input implements InputSig { class SummarizedCallableBase = FlowSummary::SummarizedCallableBase; + predicate callableFromSource(SummarizedCallableBase sc) { + sc.asCallable() = any(Callable c | c.fromSource() and not c.isStub()) + } + class SourceBase = Void; class SinkBase = Void; 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 bafb16d6ab53..409cf5863630 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/SsaImpl.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/SsaImpl.qll @@ -302,7 +302,7 @@ private module Cached { result = TLocalVar(v.getCallable(), v) ) or - result.getAnAccess() = upd.(UnaryAssignExpr).getExpr() + result.getAnAccess() = upd.(UnaryAssignExpr).getOperand() } /* 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 4a4181604770..e4525ed36ea9 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 @@ -69,10 +69,10 @@ module Private { /** Returns the operand of this expression. */ Expr getOperand() { - result = this.(J::PreIncExpr).getExpr() or - result = this.(J::PreDecExpr).getExpr() or - result = this.(J::MinusExpr).getExpr() or - result = this.(J::BitNotExpr).getExpr() + result = this.(J::PreIncExpr).getOperand() or + result = this.(J::PreDecExpr).getOperand() or + result = this.(J::MinusExpr).getOperand() or + result = this.(J::BitNotExpr).getOperand() } /** Returns the operation representing this expression. */ @@ -258,12 +258,12 @@ private module Impl { /** Returns the operand of the operation if `e` is a decrement. */ Expr getDecrementOperand(Element e) { - result = e.(PostDecExpr).getExpr() or result = e.(PreDecExpr).getExpr() + result = e.(PostDecExpr).getOperand() or result = e.(PreDecExpr).getOperand() } /** Returns the operand of the operation if `e` is an increment. */ Expr getIncrementOperand(Element e) { - result = e.(PostIncExpr).getExpr() or result = e.(PreIncExpr).getExpr() + result = e.(PostIncExpr).getOperand() or result = e.(PreIncExpr).getOperand() } /** Gets the variable underlying the implicit SSA variable `v`. */ @@ -287,14 +287,14 @@ private module Impl { /** Holds if `f` is accessed in an increment operation. */ predicate fieldIncrementOperationOperand(Field f) { - any(PostIncExpr inc).getExpr() = f.getAnAccess() or - any(PreIncExpr inc).getExpr() = f.getAnAccess() + any(PostIncExpr inc).getOperand() = f.getAnAccess() or + any(PreIncExpr inc).getOperand() = f.getAnAccess() } /** Holds if `f` is accessed in a decrement operation. */ predicate fieldDecrementOperationOperand(Field f) { - any(PostDecExpr dec).getExpr() = f.getAnAccess() or - any(PreDecExpr dec).getExpr() = f.getAnAccess() + any(PostDecExpr dec).getOperand() = f.getAnAccess() or + any(PreDecExpr dec).getOperand() = f.getAnAccess() } /** Returns possible signs of `f` based on the declaration. */ @@ -316,9 +316,9 @@ private module Impl { /** Returns a sub expression of `e` for expression types where the sign depends on the child. */ Expr getASubExprWithSameSign(Expr e) { result = e.(AssignExpr).getSource() or - result = e.(PlusExpr).getExpr() or - result = e.(PostIncExpr).getExpr() or - result = e.(PostDecExpr).getExpr() or + result = e.(PlusExpr).getOperand() or + result = e.(PostIncExpr).getOperand() or + result = e.(PostDecExpr).getOperand() or result = e.(ChooseExpr).getAResultExpr() or result = e.(CastingExpr).getExpr() } diff --git a/java/ql/lib/semmle/code/java/deadcode/DeadEnumConstant.qll b/java/ql/lib/semmle/code/java/deadcode/DeadEnumConstant.qll index 3a8491b8428e..011049eec4bc 100644 --- a/java/ql/lib/semmle/code/java/deadcode/DeadEnumConstant.qll +++ b/java/ql/lib/semmle/code/java/deadcode/DeadEnumConstant.qll @@ -27,7 +27,7 @@ VarAccess valueAccess(EnumConstant e) { or exists(Assignment a | a.getSource() = valueFlow+(result)) or - exists(ReturnStmt r | r.getResult() = valueFlow+(result)) + exists(ReturnStmt r | r.getExpr() = valueFlow+(result)) or exists(LocalVariableDeclExpr v | v.getInit() = valueFlow+(result)) or diff --git a/java/ql/lib/semmle/code/java/dispatch/DispatchFlow.qll b/java/ql/lib/semmle/code/java/dispatch/DispatchFlow.qll index 2af5df281070..d4425eae2b8a 100644 --- a/java/ql/lib/semmle/code/java/dispatch/DispatchFlow.qll +++ b/java/ql/lib/semmle/code/java/dispatch/DispatchFlow.qll @@ -354,7 +354,7 @@ private module TrackLambda { predicate returnStep(Node n1, LocalSourceNode n2) { exists(ReturnStmt ret, Method m | ret.getEnclosingCallable() = m and - ret.getResult() = n1.asExpr() and + ret.getExpr() = n1.asExpr() and m = dispatch(n2.asExpr()) ) } diff --git a/java/ql/lib/semmle/code/java/dispatch/ObjFlow.qll b/java/ql/lib/semmle/code/java/dispatch/ObjFlow.qll index 239f4dd0fbc1..d5a4ee605712 100644 --- a/java/ql/lib/semmle/code/java/dispatch/ObjFlow.qll +++ b/java/ql/lib/semmle/code/java/dispatch/ObjFlow.qll @@ -53,7 +53,7 @@ private predicate viableArgParam(ArgumentNode arg, ParameterNode p) { private predicate returnStep(Node n1, Node n2) { exists(ReturnStmt ret, Method m | ret.getEnclosingCallable() = m and - ret.getResult() = n1.asExpr() and + ret.getExpr() = n1.asExpr() and pragma[only_bind_out](m) = dispatchCand(n2.asExpr()) ) } diff --git a/java/ql/lib/semmle/code/java/dispatch/WrappedInvocation.qll b/java/ql/lib/semmle/code/java/dispatch/WrappedInvocation.qll index e76c252662a3..64c759343d83 100644 --- a/java/ql/lib/semmle/code/java/dispatch/WrappedInvocation.qll +++ b/java/ql/lib/semmle/code/java/dispatch/WrappedInvocation.qll @@ -68,19 +68,19 @@ private predicate mayInvokeCallback(SrcMethod m, int n) { (not m.fromSource() or m.isNative() or m.getFile().getAbsolutePath().matches("%/test/stubs/%")) } -private class SummarizedCallableWithCallback extends SummarizedCallable { +private class SummarizedCallableWithCallback extends SummarizedCallable::Range { private int pos; SummarizedCallableWithCallback() { mayInvokeCallback(this.asCallable(), pos) } override predicate propagatesFlow( - string input, string output, boolean preservesValue, string model + string input, string output, boolean preservesValue, Provenance p, boolean isExact, string model ) { input = "Argument[" + pos + "]" and output = "Argument[" + pos + "].Parameter[-1]" and preservesValue = true and + p = "hq-generated" and + isExact = true and model = "heuristic-callback" } - - override predicate hasProvenance(Provenance provenance) { provenance = "hq-generated" } } diff --git a/java/ql/lib/semmle/code/java/frameworks/JavaxAnnotations.qll b/java/ql/lib/semmle/code/java/frameworks/JavaxAnnotations.qll index 22f33d346df0..517f55fcc868 100644 --- a/java/ql/lib/semmle/code/java/frameworks/JavaxAnnotations.qll +++ b/java/ql/lib/semmle/code/java/frameworks/JavaxAnnotations.qll @@ -163,3 +163,38 @@ class WebServiceAnnotation extends Annotation { class WebServiceRefAnnotation extends Annotation { WebServiceRefAnnotation() { this.getType().hasQualifiedName("javax.xml.ws", "WebServiceRef") } } + +/* + * Annotations in the package `javax.validation.constraints`. + */ + +/** + * A `@javax.validation.constraints.Pattern` annotation. + */ +class PatternAnnotation extends Annotation, RegexMatch::Range { + PatternAnnotation() { + this.getType() + .hasQualifiedName(["javax.validation.constraints", "jakarta.validation.constraints"], + "Pattern") + } + + override Expr getRegex() { result = this.getValue("regexp") } + + override Expr getString() { + // Annotation on field accessed by direct read - value of field will match regexp + result.(FieldRead).getField() = this.getAnnotatedElement() + or + // Annotation on field accessed by getter - value of field will match regexp + result.(MethodCall).getMethod().(GetterMethod).getField() = this.getAnnotatedElement() + or + // Annotation on parameter - value of parameter will match regexp + result.(VarRead).getVariable().(Parameter) = this.getAnnotatedElement() + or + // Annotation on method - return value of method will match regexp + result.(Call).getCallee() = this.getAnnotatedElement() + // TODO - we could also consider the case where the annotation is on a type + // but this harder to model and not very common. + } + + override string getName() { result = "@javax.validation.constraints.Pattern annotation" } +} diff --git a/java/ql/lib/semmle/code/java/frameworks/JaxWS.qll b/java/ql/lib/semmle/code/java/frameworks/JaxWS.qll index 62289f737c02..8b3ab081ee0f 100644 --- a/java/ql/lib/semmle/code/java/frameworks/JaxWS.qll +++ b/java/ql/lib/semmle/code/java/frameworks/JaxWS.qll @@ -424,7 +424,7 @@ private class JaxRSXssSink extends XssSink { exists(JaxRsResourceMethod resourceMethod, ReturnStmt rs | resourceMethod = any(JaxRsResourceClass resourceClass).getAResourceMethod() and rs.getEnclosingCallable() = resourceMethod and - this.asExpr() = rs.getResult() + this.asExpr() = rs.getExpr() | not exists(resourceMethod.getProducesAnnotation()) or diff --git a/java/ql/lib/semmle/code/java/frameworks/Mockito.qll b/java/ql/lib/semmle/code/java/frameworks/Mockito.qll index a8559060d306..2613b0e5c51c 100644 --- a/java/ql/lib/semmle/code/java/frameworks/Mockito.qll +++ b/java/ql/lib/semmle/code/java/frameworks/Mockito.qll @@ -386,7 +386,7 @@ class MockitoMockedObject extends Expr { or exists(ReturnStmt ret | this.(MethodCall).getMethod() = ret.getEnclosingCallable() and - ret.getResult() instanceof MockitoMockedObject + ret.getExpr() instanceof MockitoMockedObject ) } } diff --git a/java/ql/lib/semmle/code/java/frameworks/MyBatis.qll b/java/ql/lib/semmle/code/java/frameworks/MyBatis.qll index e3f89186821b..6a354a0a42a7 100644 --- a/java/ql/lib/semmle/code/java/frameworks/MyBatis.qll +++ b/java/ql/lib/semmle/code/java/frameworks/MyBatis.qll @@ -109,7 +109,7 @@ class MyBatisInjectionSink extends DataFlow::Node { a.getType() instanceof MyBatisProvider and m.getDeclaringType() = a.getValue(["type", "value"]).(TypeLiteral).getTypeName().getType() and m.hasName(a.getValue("method").(StringLiteral).getValue()) and - exists(ReturnStmt ret | this.asExpr() = ret.getResult() and ret.getEnclosingCallable() = m) + exists(ReturnStmt ret | this.asExpr() = ret.getExpr() and ret.getEnclosingCallable() = m) ) } } diff --git a/java/ql/lib/semmle/code/java/frameworks/Regex.qll b/java/ql/lib/semmle/code/java/frameworks/Regex.qll index 56be77eae825..83d7336a341a 100644 --- a/java/ql/lib/semmle/code/java/frameworks/Regex.qll +++ b/java/ql/lib/semmle/code/java/frameworks/Regex.qll @@ -3,6 +3,7 @@ overlay[local?] module; import java +private import semmle.code.java.dataflow.DataFlow /** The class `java.util.regex.Matcher`. */ class TypeRegexMatcher extends Class { @@ -24,6 +25,16 @@ class TypeRegexPattern extends Class { TypeRegexPattern() { this.hasQualifiedName("java.util.regex", "Pattern") } } +/** + * The `compile` method of `java.util.regex.Pattern`. + */ +class PatternCompileMethod extends Method { + PatternCompileMethod() { + this.getDeclaringType() instanceof TypeRegexPattern and + this.hasName("compile") + } +} + /** * The `matches` method of `java.util.regex.Pattern`. */ @@ -59,3 +70,66 @@ class PatternLiteralField extends Field { this.hasName("LITERAL") } } + +/** A call to the `compile` method of `java.util.regex.Pattern`. */ +class PatternCompileCall extends MethodCall { + PatternCompileCall() { this.getMethod() instanceof PatternCompileMethod } +} + +/** A call to the `matcher` method of `java.util.regex.Pattern`. */ +class PatternMatcherCall extends MethodCall { + PatternMatcherCall() { this.getMethod() instanceof PatternMatcherMethod } +} + +/** A call to the `matches` method of `java.util.regex.Pattern`. */ +class PatternMatchesCall extends MethodCall, RegexMatch::Range { + PatternMatchesCall() { this.getMethod() instanceof PatternMatchesMethod } + + override Expr getRegex() { result = this.getArgument(0) } + + override Expr getString() { result = this.getArgument(1) } + + override string getName() { result = "Pattern.matches" } +} + +/** A call to the `matches` method of `java.util.regex.Matcher`. */ +class MatcherMatchesCall extends MethodCall, RegexMatch::Range { + MatcherMatchesCall() { this.getMethod() instanceof MatcherMatchesMethod } + + /** + * Gets the call to `java.util.regex.Pattern.matcher` that returned the + * qualifier of this call. This is needed to determine the string being + * matched. + */ + PatternMatcherCall getPatternMatcherCall() { + DataFlow::localExprFlow(result, this.getQualifier()) + } + + /** + * Gets the call to `java.util.regex.Pattern.compile` that returned the + * `Pattern` used by this matcher. This is needed to determine the regular + * expression being used. + */ + PatternCompileCall getPatternCompileCall() { + DataFlow::localExprFlow(result, this.getPatternMatcherCall()) + } + + override Expr getRegex() { result = this.getPatternCompileCall().getArgument(0) } + + override Expr getString() { result = this.getPatternMatcherCall().getArgument(0) } + + override Expr getAdditionalSanitizedExpr() { + // Special case for MatcherMatchesCall. Consider the following code: + // + // Matcher matcher = Pattern.compile(regexp).matcher(taintedInput); + // if (matcher.matches()) { + // sink(matcher.group(1)); + // } + // + // Even though the string is `taintedInput`, we also want to sanitize + // `matcher` as it can be used to get substrings of `taintedInput`. + result = this.getQualifier() + } + + override string getName() { result = "Matcher.matches" } +} diff --git a/java/ql/lib/semmle/code/java/frameworks/ThreadLocal.qll b/java/ql/lib/semmle/code/java/frameworks/ThreadLocal.qll index c813c0383eb6..5a550ff95013 100644 --- a/java/ql/lib/semmle/code/java/frameworks/ThreadLocal.qll +++ b/java/ql/lib/semmle/code/java/frameworks/ThreadLocal.qll @@ -15,7 +15,7 @@ private predicate threadLocalInitialValue(ClassInstanceExpr cie, Method initialV exists(RefType t, ReturnStmt ret | cie.getConstructedType().getSourceDeclaration() = t and t.getASourceSupertype+().hasQualifiedName("java.lang", "ThreadLocal") and - ret.getResult() = init and + ret.getExpr() = init and ret.getEnclosingCallable() = initialValue and initialValue.hasName("initialValue") and initialValue.getDeclaringType() = t diff --git a/java/ql/lib/semmle/code/java/frameworks/android/AsyncTask.qll b/java/ql/lib/semmle/code/java/frameworks/android/AsyncTask.qll index 1aba64a4c7e0..e7948fcd5f4d 100644 --- a/java/ql/lib/semmle/code/java/frameworks/android/AsyncTask.qll +++ b/java/ql/lib/semmle/code/java/frameworks/android/AsyncTask.qll @@ -37,7 +37,7 @@ private class AsyncTaskOnPostExecuteAdditionalValueStep extends AdditionalValueS | onPostExecute.getDeclaringType() = runInBackground.getDeclaringType() | - node1.asExpr() = any(ReturnStmt r | r.getEnclosingCallable() = runInBackground).getResult() and + node1.asExpr() = any(ReturnStmt r | r.getEnclosingCallable() = runInBackground).getExpr() and node2.asParameter() = onPostExecute.getParameter(0) ) } diff --git a/java/ql/lib/semmle/code/java/frameworks/android/Compose.qll b/java/ql/lib/semmle/code/java/frameworks/android/Compose.qll index 9123600d4e48..134e93ea4eb7 100644 --- a/java/ql/lib/semmle/code/java/frameworks/android/Compose.qll +++ b/java/ql/lib/semmle/code/java/frameworks/android/Compose.qll @@ -44,7 +44,7 @@ class LiveLiteralMethod extends Method { private predicate methodReturns(Method m, Expr res) { exists(ReturnStmt r | - r.getResult() = res and + r.getExpr() = res and r.getEnclosingCallable() = m ) } diff --git a/java/ql/lib/semmle/code/java/frameworks/android/Intent.qll b/java/ql/lib/semmle/code/java/frameworks/android/Intent.qll index 3df890c95f41..b11e4e5d4ef8 100644 --- a/java/ql/lib/semmle/code/java/frameworks/android/Intent.qll +++ b/java/ql/lib/semmle/code/java/frameworks/android/Intent.qll @@ -279,7 +279,7 @@ private predicate reaches(Expr src, Argument arg) { or exists(StmtExpr e | e.getResultExpr() = src | reaches(e, arg)) or - exists(NotNullExpr e | e.getExpr() = src | reaches(e, arg)) + exists(NotNullExpr e | e.getOperand() = src | reaches(e, arg)) or exists(WhenExpr e | e.getBranch(_).getAResult() = src | reaches(e, arg)) } diff --git a/java/ql/lib/semmle/code/java/frameworks/javaee/ejb/EJBRestrictions.qll b/java/ql/lib/semmle/code/java/frameworks/javaee/ejb/EJBRestrictions.qll index 2f5a88ba5c81..10b6e7f3df2f 100644 --- a/java/ql/lib/semmle/code/java/frameworks/javaee/ejb/EJBRestrictions.qll +++ b/java/ql/lib/semmle/code/java/frameworks/javaee/ejb/EJBRestrictions.qll @@ -138,7 +138,7 @@ ThisAccess forbiddenThisUse(Callable c) { result.getEnclosingCallable() = c and ( exists(MethodCall ma | ma.getAnArgument() = result) or - exists(ReturnStmt rs | rs.getResult() = result) + exists(ReturnStmt rs | rs.getExpr() = result) ) } diff --git a/java/ql/lib/semmle/code/java/frameworks/spring/SpringHttp.qll b/java/ql/lib/semmle/code/java/frameworks/spring/SpringHttp.qll index 5f9271c01490..d110caa1703c 100644 --- a/java/ql/lib/semmle/code/java/frameworks/spring/SpringHttp.qll +++ b/java/ql/lib/semmle/code/java/frameworks/spring/SpringHttp.qll @@ -52,7 +52,7 @@ private class SpringXssSink extends XSS::XssSink { SpringXssSink() { exists(SpringRequestMappingMethod requestMappingMethod, ReturnStmt rs | requestMappingMethod = rs.getEnclosingCallable() and - this.asExpr() = rs.getResult() and + this.asExpr() = rs.getExpr() and ( not specifiesContentType(requestMappingMethod) or isXssVulnerableContentTypeExpr(requestMappingMethod.getAProducesExpr()) diff --git a/java/ql/lib/semmle/code/java/frameworks/stapler/Stapler.qll b/java/ql/lib/semmle/code/java/frameworks/stapler/Stapler.qll index 28ca95b55413..d7563100d974 100644 --- a/java/ql/lib/semmle/code/java/frameworks/stapler/Stapler.qll +++ b/java/ql/lib/semmle/code/java/frameworks/stapler/Stapler.qll @@ -58,9 +58,9 @@ private class HttpResponseGetDescriptionStep extends AdditionalValueStep { override predicate step(DataFlow::Node n1, DataFlow::Node n2) { exists(ReturnStmt s, GenerateResponseMethod m | s.getEnclosingCallable() instanceof HudsonWebMethod and - boundOrStaticType(s.getResult(), m.getDeclaringType().getADescendant()) + boundOrStaticType(s.getExpr(), m.getDeclaringType().getADescendant()) | - n1.asExpr() = s.getResult() and + n1.asExpr() = s.getExpr() and n2.(DataFlow::InstanceParameterNode).getCallable() = m ) } diff --git a/java/ql/lib/semmle/code/java/frameworks/struts/StrutsActions.qll b/java/ql/lib/semmle/code/java/frameworks/struts/StrutsActions.qll index 729268d4008a..f5b5e345802a 100644 --- a/java/ql/lib/semmle/code/java/frameworks/struts/StrutsActions.qll +++ b/java/ql/lib/semmle/code/java/frameworks/struts/StrutsActions.qll @@ -20,7 +20,10 @@ class Struts2ActionClass extends Class { // If there are no XML files present, then we assume we any class that extends a struts 2 // action must be reflectively constructed, as we have no better indication. not exists(XmlFile xmlFile) and - this.getAnAncestor().hasQualifiedName("com.opensymphony.xwork2", "Action") + ( + this.getAnAncestor().hasQualifiedName("com.opensymphony.xwork2", "Action") or + this.getAnAncestor().hasQualifiedName("org.apache.struts2.action", "Action") + ) or // If there is a struts.xml file, then any class that is specified as an action is considered // to be reflectively constructed. @@ -78,7 +81,8 @@ class Struts2ActionClass extends Class { * Holds if this action class extends the preparable interface. */ predicate isPreparable() { - this.getAnAncestor().hasQualifiedName("com.opensymphony.xwork2", "Preparable") + this.getAnAncestor().hasQualifiedName("com.opensymphony.xwork2", "Preparable") or + this.getAnAncestor().hasQualifiedName("org.apache.struts2", "Preparable") } /** @@ -122,7 +126,8 @@ class Struts2PrepareMethod extends Method { */ class Struts2ActionSupportClass extends Class { Struts2ActionSupportClass() { - this.getASourceSupertype+().hasQualifiedName("com.opensymphony.xwork2", "ActionSupport") + this.getASourceSupertype+().hasQualifiedName("com.opensymphony.xwork2", "ActionSupport") or + this.getASourceSupertype+().hasQualifiedName("org.apache.struts2", "ActionSupport") } /** diff --git a/java/ql/lib/semmle/code/java/frameworks/struts/StrutsConventions.qll b/java/ql/lib/semmle/code/java/frameworks/struts/StrutsConventions.qll index 3e2fd5c0b974..ba70a59df59c 100644 --- a/java/ql/lib/semmle/code/java/frameworks/struts/StrutsConventions.qll +++ b/java/ql/lib/semmle/code/java/frameworks/struts/StrutsConventions.qll @@ -96,7 +96,7 @@ private string getConventionSuffix(RefType refType) { * * The convention plugin identifies as an action class any class that has an ancestor package with * the name "struts", "struts2", "action" or "actions", and either has an indicative suffix on the - * name, or extends com.opensymphony.xwork2.Action. + * name, or extends com.opensymphony.xwork2.Action (Struts 2.x-6.x) or org.apache.struts2.action.Action (Struts 7.x+). */ class Struts2ConventionActionClass extends Class { Struts2ConventionActionClass() { @@ -108,7 +108,8 @@ class Struts2ConventionActionClass extends Class { ) and ( this.getName().matches("%" + getConventionSuffix(this)) or - this.getAnAncestor().hasQualifiedName("com.opensymphony.xwork2", "Action") + this.getAnAncestor().hasQualifiedName("com.opensymphony.xwork2", "Action") or + this.getAnAncestor().hasQualifiedName("org.apache.struts2.action", "Action") ) } diff --git a/java/ql/lib/semmle/code/java/security/ArithmeticCommon.qll b/java/ql/lib/semmle/code/java/security/ArithmeticCommon.qll index 4f4c20a5263b..9282e7666273 100644 --- a/java/ql/lib/semmle/code/java/security/ArithmeticCommon.qll +++ b/java/ql/lib/semmle/code/java/security/ArithmeticCommon.qll @@ -113,7 +113,7 @@ predicate upcastToWiderType(Expr e) { or exists(CastingExpr c | c.getExpr() = e and t2 = c.getType()) or - exists(ReturnStmt ret | ret.getResult() = e and t2 = ret.getEnclosingCallable().getReturnType()) + exists(ReturnStmt ret | ret.getExpr() = e and t2 = ret.getEnclosingCallable().getReturnType()) or exists(Parameter p | p.getAnArgument() = e and t2 = p.getType()) or diff --git a/java/ql/lib/semmle/code/java/security/FragmentInjection.qll b/java/ql/lib/semmle/code/java/security/FragmentInjection.qll index d27677b22717..7dc5f68d2d1e 100644 --- a/java/ql/lib/semmle/code/java/security/FragmentInjection.qll +++ b/java/ql/lib/semmle/code/java/security/FragmentInjection.qll @@ -25,7 +25,7 @@ class IsValidFragmentMethod extends Method { predicate isUnsafe() { this.getDeclaringType().(AndroidActivity).isExported() and forex(ReturnStmt retStmt | retStmt.getEnclosingCallable() = this | - retStmt.getResult().(BooleanLiteral).getBooleanValue() = true + retStmt.getExpr().(BooleanLiteral).getBooleanValue() = true ) } } diff --git a/java/ql/lib/semmle/code/java/security/InsecureRandomnessQuery.qll b/java/ql/lib/semmle/code/java/security/InsecureRandomnessQuery.qll index 77da25d35866..7474c977fe68 100644 --- a/java/ql/lib/semmle/code/java/security/InsecureRandomnessQuery.qll +++ b/java/ql/lib/semmle/code/java/security/InsecureRandomnessQuery.qll @@ -75,7 +75,7 @@ module InsecureRandomnessConfig implements DataFlow::ConfigSig { predicate isAdditionalFlowStep(DataFlow::Node n1, DataFlow::Node n2) { n1.asExpr() = n2.asExpr().(BinaryExpr).getAnOperand() or - n1.asExpr() = n2.asExpr().(UnaryExpr).getExpr() + n1.asExpr() = n2.asExpr().(UnaryExpr).getOperand() or exists(MethodCall mc, string methodName | mc.getMethod().hasQualifiedName("org.owasp.esapi", "Encoder", methodName) and diff --git a/java/ql/lib/semmle/code/java/security/LogInjection.qll b/java/ql/lib/semmle/code/java/security/LogInjection.qll index da5a1dc73a0c..b585c249d1eb 100644 --- a/java/ql/lib/semmle/code/java/security/LogInjection.qll +++ b/java/ql/lib/semmle/code/java/security/LogInjection.qll @@ -45,11 +45,11 @@ private class LineBreaksLogInjectionSanitizer extends LogInjectionSanitizer { } private predicate stringMethodCall( - MethodCall ma, CompileTimeConstantExpr arg0, CompileTimeConstantExpr arg1 + MethodCall mc, CompileTimeConstantExpr arg0, CompileTimeConstantExpr arg1 ) { - ma.getMethod().getDeclaringType() instanceof TypeString and - arg0 = ma.getArgument(0) and - arg1 = ma.getArgument(1) + mc.getMethod().getDeclaringType() instanceof TypeString and + arg0 = mc.getArgument(0) and + arg1 = mc.getArgument(1) } private predicate stringMethodArgument(CompileTimeConstantExpr arg) { @@ -64,22 +64,23 @@ private predicate stringMethodArgumentValueMatches(CompileTimeConstantExpr const } /** - * Holds if the return value of `ma` is sanitized against log injection attacks - * by removing line breaks from it. + * Holds if `e` is sanitized against log injection attacks by removing line + * breaks from it. */ -private predicate logInjectionSanitizer(MethodCall ma) { - exists(CompileTimeConstantExpr target, CompileTimeConstantExpr replacement | - stringMethodCall(ma, target, replacement) and +private predicate logInjectionSanitizer(Expr e) { + exists(MethodCall mc, CompileTimeConstantExpr target, CompileTimeConstantExpr replacement | + e = mc and + stringMethodCall(mc, target, replacement) and not stringMethodArgumentValueMatches(replacement, ["%\n%", "%\r%"]) | - ma.getMethod().hasName("replace") and + mc.getMethod().hasName("replace") and not replacement.getIntValue() = [10, 13] and ( target.getIntValue() = [10, 13] or // 10 == '\n', 13 == '\r' target.getStringValue() = ["\n", "\r"] ) or - ma.getMethod().hasName("replaceAll") and + mc.getMethod().hasName("replaceAll") and ( // Replace anything not in an allow list target.getStringValue().matches("[^%]") and @@ -89,6 +90,13 @@ private predicate logInjectionSanitizer(MethodCall ma) { target.getStringValue() = ["\n", "\r", "\\n", "\\r", "\\R"] ) ) + or + exists(RegexMatch rm, CompileTimeConstantExpr target | + rm instanceof Annotation and + e = rm.getASanitizedExpr() and + target = rm.getRegex() and + regexPreventsLogInjection(target.getStringValue(), true) + ) } /** @@ -96,41 +104,44 @@ private predicate logInjectionSanitizer(MethodCall ma) { * by checking if there are line breaks in `e`. */ private predicate logInjectionGuard(Guard g, Expr e, boolean branch) { - exists(MethodCall ma, CompileTimeConstantExpr target | - ma = g and - target = ma.getArgument(0) - | - ma.getMethod().getDeclaringType() instanceof TypeString and - ma.getMethod().hasName("contains") and - target.getStringValue() = ["\n", "\r"] and - e = ma.getQualifier() and + exists(MethodCall mc | mc = g | + mc.getMethod() instanceof StringContainsMethod and + mc.getArgument(0).(CompileTimeConstantExpr).getStringValue() = ["\n", "\r"] and + e = mc.getQualifier() and branch = false - or - ma.getMethod().hasName("matches") and - ( - ma.getMethod().getDeclaringType() instanceof TypeString and - e = ma.getQualifier() - or - ma.getMethod().getDeclaringType().hasQualifiedName("java.util.regex", "Pattern") and - e = ma.getArgument(1) - ) and - ( - // Allow anything except line breaks - ( - not target.getStringValue().matches("%[^%]%") and - not target.getStringValue().matches("%" + ["\n", "\r", "\\n", "\\r", "\\R"] + "%") - or - target.getStringValue().matches("%[^%" + ["\n", "\r", "\\n", "\\r", "\\R"] + "%]%") - ) and - branch = true - or - // Disallow line breaks - ( - not target.getStringValue().matches("%[^%" + ["\n", "\r", "\\n", "\\r", "\\R"] + "%]%") and - // Assuming a regex containing line breaks is correctly matching line breaks in a string - target.getStringValue().matches("%" + ["\n", "\r", "\\n", "\\r", "\\R"] + "%") - ) and - branch = false - ) ) + or + exists(RegexMatch rm, CompileTimeConstantExpr target | + rm = g and + not rm instanceof Annotation and + target = rm.getRegex() and + e = rm.getASanitizedExpr() + | + regexPreventsLogInjection(target.getStringValue(), branch) + ) +} + +/** + * Holds if `regex` matches against a pattern that allows anything except + * line breaks when `branch` is `true`, or a pattern that matches line breaks + * when `branch` is `false`. + */ +bindingset[regex] +private predicate regexPreventsLogInjection(string regex, boolean branch) { + // Allow anything except line breaks + ( + not regex.matches("%[^%]%") and + not regex.matches("%" + ["\n", "\r", "\\n", "\\r", "\\R"] + "%") + or + regex.matches("%[^%" + ["\n", "\r", "\\n", "\\r", "\\R"] + "%]%") + ) and + branch = true + or + // Disallow line breaks + ( + not regex.matches("%[^%" + ["\n", "\r", "\\n", "\\r", "\\R"] + "%]%") and + // Assuming a regex containing line breaks is correctly matching line breaks in a string + regex.matches("%" + ["\n", "\r", "\\n", "\\r", "\\R"] + "%") + ) and + branch = false } diff --git a/java/ql/lib/semmle/code/java/security/PathSanitizer.qll b/java/ql/lib/semmle/code/java/security/PathSanitizer.qll index 4685f5e48f71..788cd5429397 100644 --- a/java/ql/lib/semmle/code/java/security/PathSanitizer.qll +++ b/java/ql/lib/semmle/code/java/security/PathSanitizer.qll @@ -427,20 +427,15 @@ private class ReplaceDirectoryCharactersSanitizer extends StringReplaceOrReplace } } -/** Holds if `target` is the first argument of `matchesCall`. */ -private predicate isMatchesTarget(StringMatchesCall matchesCall, CompileTimeConstantExpr target) { - target = matchesCall.getArgument(0) -} - /** * Holds if `matchesCall` confirms that `checkedExpr` does not contain any directory characters * on the given `branch`. */ -private predicate isMatchesCall(StringMatchesCall matchesCall, Expr checkedExpr, boolean branch) { +private predicate isMatchesCall(RegexMatch regexMatch, Expr checkedExpr, boolean branch) { exists(CompileTimeConstantExpr target, string targetValue | - isMatchesTarget(matchesCall, target) and + target = regexMatch.getRegex() and target.getStringValue() = targetValue and - checkedExpr = matchesCall.getQualifier() + checkedExpr = regexMatch.getString() | ( // Allow anything except `.`, '/', '\' diff --git a/java/ql/lib/semmle/code/java/security/Sanitizers.qll b/java/ql/lib/semmle/code/java/security/Sanitizers.qll index 3f909864d2cd..e00071da2d8c 100644 --- a/java/ql/lib/semmle/code/java/security/Sanitizers.qll +++ b/java/ql/lib/semmle/code/java/security/Sanitizers.qll @@ -41,24 +41,10 @@ class SimpleTypeSanitizer extends DataFlow::Node { * make the type recursive. Otherwise use `RegexpCheckBarrier`. */ predicate regexpMatchGuardChecks(Guard guard, Expr e, boolean branch) { - exists(Method method, MethodCall mc | - method = mc.getMethod() and - guard = mc and + exists(RegexMatch rm | not rm instanceof Annotation | + guard = rm and + e = rm.getASanitizedExpr() and branch = true - | - // `String.matches` and other `matches` methods. - method.getName() = "matches" and - e = mc.getQualifier() - or - method instanceof PatternMatchesMethod and - e = mc.getArgument(1) - or - method instanceof MatcherMatchesMethod and - exists(MethodCall matcherCall | - matcherCall.getMethod() instanceof PatternMatcherMethod and - e = matcherCall.getArgument(0) and - DataFlow::localExprFlow(matcherCall, mc.getQualifier()) - ) ) } @@ -70,5 +56,10 @@ predicate regexpMatchGuardChecks(Guard guard, Expr e, boolean branch) { class RegexpCheckBarrier extends DataFlow::Node { RegexpCheckBarrier() { this = DataFlow::BarrierGuard::getABarrierNode() + or + // Annotations don't fit into the model of barrier guards because the + // annotation doesn't dominate the sanitized expression, so we instead + // treat them as barriers directly. + exists(RegexMatch rm | rm instanceof Annotation | this.asExpr() = rm.getString()) } } diff --git a/java/ql/lib/semmle/code/java/security/StaticInitializationVectorQuery.qll b/java/ql/lib/semmle/code/java/security/StaticInitializationVectorQuery.qll index a03775990541..e97a31614999 100644 --- a/java/ql/lib/semmle/code/java/security/StaticInitializationVectorQuery.qll +++ b/java/ql/lib/semmle/code/java/security/StaticInitializationVectorQuery.qll @@ -107,7 +107,7 @@ private class StaticInitializationVectorSource extends DataFlow::Node { // Reduce FPs from utility methods that return an empty array in an exceptional case not exists(ReturnStmt ret | array.getADimension().(CompileTimeConstantExpr).getIntValue() = 0 and - DataFlow::localExprFlow(array, ret.getResult()) + DataFlow::localExprFlow(array, ret.getExpr()) ) ) } diff --git a/java/ql/lib/semmle/code/java/security/UnsafeDeserializationQuery.qll b/java/ql/lib/semmle/code/java/security/UnsafeDeserializationQuery.qll index dc771a466063..4b9f5c61f591 100644 --- a/java/ql/lib/semmle/code/java/security/UnsafeDeserializationQuery.qll +++ b/java/ql/lib/semmle/code/java/security/UnsafeDeserializationQuery.qll @@ -95,7 +95,7 @@ private module SafeKryoConfig implements DataFlow::ConfigSig { ) { exists(ConstructorCall cc, FunctionalExpr fe | cc.getConstructedType() instanceof KryoPoolBuilder and - fe.asMethod().getBody().getAStmt().(ReturnStmt).getResult() = node1.asExpr() and + fe.asMethod().getBody().getAStmt().(ReturnStmt).getExpr() = node1.asExpr() and node2.asExpr() = cc and cc.getArgument(0) = fe ) diff --git a/java/ql/lib/semmle/code/java/security/UnsafeHostnameVerificationQuery.qll b/java/ql/lib/semmle/code/java/security/UnsafeHostnameVerificationQuery.qll index 60829f426f75..724bccceb1fd 100644 --- a/java/ql/lib/semmle/code/java/security/UnsafeHostnameVerificationQuery.qll +++ b/java/ql/lib/semmle/code/java/security/UnsafeHostnameVerificationQuery.qll @@ -13,7 +13,7 @@ private import semmle.code.java.dataflow.ExternalFlow */ private predicate alwaysReturnsTrue(HostnameVerifierVerify m) { forex(ReturnStmt rs | rs.getEnclosingCallable() = m | - rs.getResult().(CompileTimeConstantExpr).getBooleanValue() = true + rs.getExpr().(CompileTimeConstantExpr).getBooleanValue() = true ) } diff --git a/java/ql/lib/semmle/code/java/security/internal/ArraySizing.qll b/java/ql/lib/semmle/code/java/security/internal/ArraySizing.qll index 185b1b8a46e2..ab9ac70e7c44 100644 --- a/java/ql/lib/semmle/code/java/security/internal/ArraySizing.qll +++ b/java/ql/lib/semmle/code/java/security/internal/ArraySizing.qll @@ -49,7 +49,7 @@ class PointlessLoop extends WhileStmt { this.getCondition().(BooleanLiteral).getBooleanValue() = true and // The only `break` must be the last statement. forall(BreakStmt break | break.getTarget() = this | - this.getStmt().(BlockStmt).getLastStmt() = break + this.getBody().(BlockStmt).getLastStmt() = break ) and // No `continue` statements. not exists(ContinueStmt continue | continue.getTarget() = this) diff --git a/java/ql/lib/semmle/code/java/security/regexp/RegexInjection.qll b/java/ql/lib/semmle/code/java/security/regexp/RegexInjection.qll index 944ffca803ae..a14a07e04463 100644 --- a/java/ql/lib/semmle/code/java/security/regexp/RegexInjection.qll +++ b/java/ql/lib/semmle/code/java/security/regexp/RegexInjection.qll @@ -31,11 +31,9 @@ private class ExternalRegexInjectionSanitizer extends RegexInjectionSanitizer { */ private class PatternLiteralFlag extends RegexInjectionSanitizer { PatternLiteralFlag() { - exists(MethodCall ma, Method m, PatternLiteralField field | m = ma.getMethod() | - ma.getArgument(0) = this.asExpr() and - m.getDeclaringType() instanceof TypeRegexPattern and - m.hasName("compile") and - ma.getArgument(1) = field.getAnAccess() + exists(PatternCompileCall pcc, PatternLiteralField field | + pcc.getArgument(0) = this.asExpr() and + pcc.getArgument(1) = field.getAnAccess() ) } } diff --git a/java/ql/src/Advisory/Declarations/NonFinalImmutableField.ql b/java/ql/src/Advisory/Declarations/NonFinalImmutableField.ql index 1ca836ab2317..a94d54a92048 100644 --- a/java/ql/src/Advisory/Declarations/NonFinalImmutableField.ql +++ b/java/ql/src/Advisory/Declarations/NonFinalImmutableField.ql @@ -32,7 +32,7 @@ class AnyAssignment extends Expr { /** The expression modified by this assignment. */ Expr getDest() { this.(Assignment).getDest() = result or - this.(UnaryAssignExpr).getExpr() = result + this.(UnaryAssignExpr).getOperand() = result } } diff --git a/java/ql/src/CHANGELOG.md b/java/ql/src/CHANGELOG.md index 113c024d14a2..a7307229a499 100644 --- a/java/ql/src/CHANGELOG.md +++ b/java/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.10.6 + +No user-facing changes. + ## 1.10.5 ### Minor Analysis Improvements diff --git a/java/ql/src/Language Abuse/IterableClass.qll b/java/ql/src/Language Abuse/IterableClass.qll index a6b4c86cffda..896fc2e11607 100644 --- a/java/ql/src/Language Abuse/IterableClass.qll +++ b/java/ql/src/Language Abuse/IterableClass.qll @@ -12,7 +12,7 @@ class Iterable extends Class { exists(Method m | m.getDeclaringType().getSourceDeclaration() = this and m.getName() = "iterator" and - m.getBody().(SingletonBlock).getStmt().(ReturnStmt).getResult() = result + m.getBody().(SingletonBlock).getStmt().(ReturnStmt).getExpr() = result ) } } diff --git a/java/ql/src/Language Abuse/IterableIterator.ql b/java/ql/src/Language Abuse/IterableIterator.ql index 72dfbcd99655..f2ba1a727de7 100644 --- a/java/ql/src/Language Abuse/IterableIterator.ql +++ b/java/ql/src/Language Abuse/IterableIterator.ql @@ -30,7 +30,7 @@ class EmptyIterableIterator extends IterableIterator { .(SingletonBlock) .getStmt() .(ReturnStmt) - .getResult() + .getExpr() .(BooleanLiteral) .getBooleanValue() = false ) diff --git a/java/ql/src/Likely Bugs/Arithmetic/CondExprTypes.ql b/java/ql/src/Likely Bugs/Arithmetic/CondExprTypes.ql index 4d375864b2a8..89663e801b1e 100644 --- a/java/ql/src/Likely Bugs/Arithmetic/CondExprTypes.ql +++ b/java/ql/src/Likely Bugs/Arithmetic/CondExprTypes.ql @@ -25,5 +25,5 @@ where t instanceof PrimitiveType and not t instanceof CharType ) -select ce, "Mismatch between types of branches: $@ and $@.", ce.getTrueExpr(), - ce.getTrueExpr().getType().getName(), ce.getFalseExpr(), ce.getFalseExpr().getType().getName() +select ce, "Mismatch between types of branches: $@ and $@.", ce.getThen(), + ce.getThen().getType().getName(), ce.getElse(), ce.getElse().getType().getName() diff --git a/java/ql/src/Likely Bugs/Collections/IteratorRemoveMayFail.ql b/java/ql/src/Likely Bugs/Collections/IteratorRemoveMayFail.ql index 09d686947e00..92faee89be7b 100644 --- a/java/ql/src/Likely Bugs/Collections/IteratorRemoveMayFail.ql +++ b/java/ql/src/Likely Bugs/Collections/IteratorRemoveMayFail.ql @@ -39,7 +39,7 @@ predicate containsSpecialCollection(Expr e, SpecialCollectionCreation origin) { or exists(Call c, ReturnStmt r | e = c | r.getEnclosingCallable() = c.getCallee().getSourceDeclaration() and - containsSpecialCollection(r.getResult(), origin) + containsSpecialCollection(r.getExpr(), origin) ) } @@ -61,7 +61,7 @@ predicate iterOfSpecialCollection(Expr e, SpecialCollectionCreation origin) { or exists(Call c, ReturnStmt r | e = c | r.getEnclosingCallable() = c.getCallee().getSourceDeclaration() and - iterOfSpecialCollection(r.getResult(), origin) + iterOfSpecialCollection(r.getExpr(), origin) ) } diff --git a/java/ql/src/Likely Bugs/Collections/ReadOnlyContainer.ql b/java/ql/src/Likely Bugs/Collections/ReadOnlyContainer.ql index 2951f97d65fe..6de1e52ed98d 100644 --- a/java/ql/src/Likely Bugs/Collections/ReadOnlyContainer.ql +++ b/java/ql/src/Likely Bugs/Collections/ReadOnlyContainer.ql @@ -29,7 +29,7 @@ where exists(AssignExpr assgn | va = assgn.getDest() | assgn.getSource() instanceof FreshContainer) or // ...a return (but only if `v` is a local variable) - v instanceof LocalVariableDecl and exists(ReturnStmt ret | ret.getResult() = va) + v instanceof LocalVariableDecl and exists(ReturnStmt ret | ret.getExpr() = va) or // ...or a call to a query method on `v`. exists(MethodCall ma | va = ma.getQualifier() | ma.getMethod() instanceof ContainerQueryMethod) diff --git a/java/ql/src/Likely Bugs/Comparison/DefineEqualsWhenAddingFields.ql b/java/ql/src/Likely Bugs/Comparison/DefineEqualsWhenAddingFields.ql index 2edeea4ec57f..6695d6b677c2 100644 --- a/java/ql/src/Likely Bugs/Comparison/DefineEqualsWhenAddingFields.ql +++ b/java/ql/src/Likely Bugs/Comparison/DefineEqualsWhenAddingFields.ql @@ -32,13 +32,13 @@ predicate checksReferenceEquality(EqualsMethod em) { eq.getAnOperand().(VarAccess).getVariable() = em.getParameter(0) and ( // `{ return (ojb==this); }` - eq = blk.getStmt().(ReturnStmt).getResult() + eq = blk.getStmt().(ReturnStmt).getExpr() or // `{ if (ojb==this) return true; else return false; }` exists(IfStmt ifStmt | ifStmt = blk.getStmt() | eq = ifStmt.getCondition() and - ifStmt.getThen().(ReturnStmt).getResult().(BooleanLiteral).getBooleanValue() = true and - ifStmt.getElse().(ReturnStmt).getResult().(BooleanLiteral).getBooleanValue() = false + ifStmt.getThen().(ReturnStmt).getExpr().(BooleanLiteral).getBooleanValue() = true and + ifStmt.getElse().(ReturnStmt).getExpr().(BooleanLiteral).getBooleanValue() = false ) ) ) @@ -47,7 +47,7 @@ predicate checksReferenceEquality(EqualsMethod em) { // More precisely, we check whether the body of `em` is of the form `return super.equals(o);`, // where `o` is the (only) parameter of `em`, and the invoked method is a reference equality check. exists(SuperMethodCall sup | - sup = em.getBody().(SingletonBlock).getStmt().(ReturnStmt).getResult() and + sup = em.getBody().(SingletonBlock).getStmt().(ReturnStmt).getExpr() and sup.getArgument(0) = em.getParameter(0).getAnAccess() and checksReferenceEquality(sup.getCallee()) ) diff --git a/java/ql/src/Likely Bugs/Comparison/Equality.qll b/java/ql/src/Likely Bugs/Comparison/Equality.qll index 9aeb4a46047e..babd41157426 100644 --- a/java/ql/src/Likely Bugs/Comparison/Equality.qll +++ b/java/ql/src/Likely Bugs/Comparison/Equality.qll @@ -22,7 +22,7 @@ class RefiningEquals extends EqualsMethod { // ... on the (only) parameter of this method ... sup.getArgument(0).(VarAccess).getVariable() = this.getAParameter() and // ... and its result is implied by the result of `ret`. - exprImplies(ret.getResult(), true, sup, true) + exprImplies(ret.getExpr(), true, sup, true) ) ) } diff --git a/java/ql/src/Likely Bugs/Comparison/MissingInstanceofInEquals.ql b/java/ql/src/Likely Bugs/Comparison/MissingInstanceofInEquals.ql index 7cd495f90733..2c33143ccf0f 100644 --- a/java/ql/src/Likely Bugs/Comparison/MissingInstanceofInEquals.ql +++ b/java/ql/src/Likely Bugs/Comparison/MissingInstanceofInEquals.ql @@ -52,7 +52,7 @@ class ReferenceEquals extends EqualsMethod { exists(BlockStmt b, ReturnStmt ret, EQExpr eq | this.getBody() = b and b.getStmt(0) = ret and - ret.getResult() = eq and + ret.getExpr() = eq and eq.getAnOperand() = this.getAParameter().getAnAccess() and (eq.getAnOperand() instanceof ThisAccess or eq.getAnOperand() instanceof FieldAccess) ) diff --git a/java/ql/src/Likely Bugs/Comparison/StringComparison.ql b/java/ql/src/Likely Bugs/Comparison/StringComparison.ql index cfca2c8d7ddb..9818f965e05c 100644 --- a/java/ql/src/Likely Bugs/Comparison/StringComparison.ql +++ b/java/ql/src/Likely Bugs/Comparison/StringComparison.ql @@ -27,8 +27,8 @@ class StringValue extends Expr { ) or // Ternary conditional operator. - this.(ConditionalExpr).getTrueExpr().(StringValue).isInterned() and - this.(ConditionalExpr).getFalseExpr().(StringValue).isInterned() + this.(ConditionalExpr).getThen().(StringValue).isInterned() and + this.(ConditionalExpr).getElse().(StringValue).isInterned() or // Values of type `String` that are compile-time constant expressions (JLS 15.28). this instanceof CompileTimeConstantExpr @@ -38,7 +38,7 @@ class StringValue extends Expr { or // Method accesses whose results are all interned. forex(ReturnStmt rs | rs.getEnclosingCallable() = this.(MethodCall).getMethod() | - rs.getResult().(StringValue).isInterned() + rs.getExpr().(StringValue).isInterned() ) } } diff --git a/java/ql/src/Likely Bugs/Comparison/UselessComparisonTest.ql b/java/ql/src/Likely Bugs/Comparison/UselessComparisonTest.ql index 5c2fd94a9179..d9a1f8a3f65b 100644 --- a/java/ql/src/Likely Bugs/Comparison/UselessComparisonTest.ql +++ b/java/ql/src/Likely Bugs/Comparison/UselessComparisonTest.ql @@ -134,8 +134,8 @@ Expr overFlowCand() { result.(LocalVariableDeclExpr).getInit() = overFlowCand() or exists(ConditionalExpr c | c = result | - c.getTrueExpr() = overFlowCand() and - c.getFalseExpr() = overFlowCand() + c.getThen() = overFlowCand() and + c.getElse() = overFlowCand() ) } diff --git a/java/ql/src/Likely Bugs/Concurrency/NonSynchronizedOverride.ql b/java/ql/src/Likely Bugs/Concurrency/NonSynchronizedOverride.ql index 3dcd44a5273d..25eaca21aba1 100644 --- a/java/ql/src/Likely Bugs/Concurrency/NonSynchronizedOverride.ql +++ b/java/ql/src/Likely Bugs/Concurrency/NonSynchronizedOverride.ql @@ -42,7 +42,7 @@ predicate delegatingOverride(Method sub, Method sup) { delegatingSuperCall(stmt.(ExprStmt).getExpr(), sup) or // ...or a `return` statement containing such a call. - delegatingSuperCall(stmt.(ReturnStmt).getResult(), sup) + delegatingSuperCall(stmt.(ReturnStmt).getExpr(), sup) ) ) } diff --git a/java/ql/src/Likely Bugs/Concurrency/UnreleasedLock.qhelp b/java/ql/src/Likely Bugs/Concurrency/UnreleasedLock.qhelp index eb8dd211083c..faf03c338bdb 100644 --- a/java/ql/src/Likely Bugs/Concurrency/UnreleasedLock.qhelp +++ b/java/ql/src/Likely Bugs/Concurrency/UnreleasedLock.qhelp @@ -6,18 +6,23 @@

When a thread acquires a lock it must make sure to unlock it again; -failing to do so can lead to deadlocks. If a lock allows a thread to acquire +failing to do so can lead to deadlocks. If a lock allows a thread to acquire it multiple times, for example java.util.concurrent.locks.ReentrantLock, then the number of locks must match the number of unlocks in order to fully release the lock.

+

+Any class that has both lock and unlock methods is +considered a lock type. However, classes with names ending in "Pool" are excluded, +as they typically manage a collection of resources. +

It is recommended practice always to immediately follow a call to lock with a try block and place the call to unlock inside the -finally block. Beware of calls inside the finally block +finally block. Beware of calls inside the finally block that could cause exceptions, as this may result in skipping the call to unlock.

diff --git a/java/ql/src/Likely Bugs/Serialization/NonSerializableInnerClass.ql b/java/ql/src/Likely Bugs/Serialization/NonSerializableInnerClass.ql index 520dba86c418..316352b9b687 100644 --- a/java/ql/src/Likely Bugs/Serialization/NonSerializableInnerClass.ql +++ b/java/ql/src/Likely Bugs/Serialization/NonSerializableInnerClass.ql @@ -32,7 +32,7 @@ predicate castTo(ClassInstanceExpr cie, RefType to) { or exists(Call call, int n | call.getArgument(n) = cie | to = call.getCallee().getParameterType(n)) or - exists(ReturnStmt ret | ret.getResult() = cie | to = ret.getEnclosingCallable().getReturnType()) + exists(ReturnStmt ret | ret.getExpr() = cie | to = ret.getEnclosingCallable().getReturnType()) or exists(ArrayCreationExpr ace | ace.getInit().getAnInit() = cie | to = ace.getType().(Array).getComponentType() diff --git a/java/ql/src/Likely Bugs/Statements/Chaining.qll b/java/ql/src/Likely Bugs/Statements/Chaining.qll index bb7fba549e7b..a02c07fac42a 100644 --- a/java/ql/src/Likely Bugs/Statements/Chaining.qll +++ b/java/ql/src/Likely Bugs/Statements/Chaining.qll @@ -31,13 +31,13 @@ private predicate nonChaining(Method m) { private predicate nonChainingReturn(Method m, ReturnStmt ret) { // The wrong `this` is returned. - ret.getResult() instanceof ThisAccess and - ret.getResult().getType() != m.getDeclaringType() + ret.getExpr() instanceof ThisAccess and + ret.getExpr().getType() != m.getDeclaringType() or // A method call to the wrong method is returned. - ret.getResult() instanceof MethodCall and + ret.getExpr() instanceof MethodCall and exists(MethodCall delegateCall, Method delegate | - delegateCall = ret.getResult() and + delegateCall = ret.getExpr() and delegate = delegateCall.getMethod() | delegate.getDeclaringType() != m.getDeclaringType() @@ -54,7 +54,7 @@ private predicate nonChainingReturn(Method m, ReturnStmt ret) { or // Something else is returned. not ( - ret.getResult() instanceof ThisAccess or - ret.getResult() instanceof MethodCall + ret.getExpr() instanceof ThisAccess or + ret.getExpr() instanceof MethodCall ) } diff --git a/java/ql/src/Likely Bugs/Statements/ImpossibleCast.ql b/java/ql/src/Likely Bugs/Statements/ImpossibleCast.ql index 753c40774f6f..1232e775be50 100644 --- a/java/ql/src/Likely Bugs/Statements/ImpossibleCast.ql +++ b/java/ql/src/Likely Bugs/Statements/ImpossibleCast.ql @@ -45,13 +45,13 @@ predicate castFlow(ArrayCast ce, Variable v) { } predicate returnedFrom(ArrayCast ce, Method m) { - exists(ReturnStmt ret | ret.getEnclosingCallable() = m | ret.getResult() = ce) + exists(ReturnStmt ret | ret.getEnclosingCallable() = m | ret.getExpr() = ce) or exists(Variable v | castFlow(ce, v) | returnedVariableFrom(v, m)) } predicate returnedVariableFrom(Variable v, Method m) { - exists(ReturnStmt ret | ret.getResult() = v.getAnAccess() and ret.getEnclosingCallable() = m) + exists(ReturnStmt ret | ret.getExpr() = v.getAnAccess() and ret.getEnclosingCallable() = m) } predicate rawTypeConversion(RawType source, ParameterizedType target) { diff --git a/java/ql/src/Likely Bugs/Termination/SpinOnField.ql b/java/ql/src/Likely Bugs/Termination/SpinOnField.ql index 7cfb2308c966..1b4185531cad 100644 --- a/java/ql/src/Likely Bugs/Termination/SpinOnField.ql +++ b/java/ql/src/Likely Bugs/Termination/SpinOnField.ql @@ -37,12 +37,12 @@ class EmptyLoop extends Stmt { exists(ForStmt stmt | stmt = this | not exists(stmt.getAnInit()) and not exists(stmt.getAnUpdate()) and - stmt.getStmt() instanceof Empty + stmt.getBody() instanceof Empty ) or - this.(WhileStmt).getStmt() instanceof Empty + this.(WhileStmt).getBody() instanceof Empty or - this.(DoStmt).getStmt() instanceof Empty + this.(DoStmt).getBody() instanceof Empty } Expr getCondition() { diff --git a/java/ql/src/Metrics/Summaries/GeneratedVsManualCoverageQuery.qll b/java/ql/src/Metrics/Summaries/GeneratedVsManualCoverageQuery.qll index 8309126c06de..ee32549a71c4 100644 --- a/java/ql/src/Metrics/Summaries/GeneratedVsManualCoverageQuery.qll +++ b/java/ql/src/Metrics/Summaries/GeneratedVsManualCoverageQuery.qll @@ -10,19 +10,19 @@ bindingset[package, apiSubset] private int getNumMadModeledApis(string package, string provenance, string apiSubset) { provenance in ["generated", "manual", "both"] and result = - count(SummarizedCallable sc | + count(SummarizedCallable::Range sc | callableSubset(sc.asCallable(), apiSubset) and package = sc.asCallable().getCompilationUnit().getPackage().getName() and sc.asCallable() instanceof ModelApi and ( // "auto-only" not sc.hasManualModel() and - sc.hasGeneratedModel() and + any(Provenance p | sc.propagatesFlow(_, _, _, p, _, _)).isGenerated() and provenance = "generated" or sc.hasManualModel() and ( - if sc.hasGeneratedModel() + if any(Provenance p | sc.propagatesFlow(_, _, _, p, _, _)).isGenerated() then // "both" provenance = "both" diff --git a/java/ql/src/Security/CWE/CWE-338/JHipsterGeneratedPRNG.ql b/java/ql/src/Security/CWE/CWE-338/JHipsterGeneratedPRNG.ql index c51e5d4acc57..d94436f2127c 100644 --- a/java/ql/src/Security/CWE/CWE-338/JHipsterGeneratedPRNG.ql +++ b/java/ql/src/Security/CWE/CWE-338/JHipsterGeneratedPRNG.ql @@ -41,7 +41,7 @@ private class VulnerableJHipsterRandomUtilMethod extends Method { this.getReturnType() instanceof TypeString and exists(ReturnStmt s | s = this.getBody().(SingletonBlock).getStmt() and - s.getResult() instanceof PredictableApacheRandomStringUtilsMethodCall + s.getExpr() instanceof PredictableApacheRandomStringUtilsMethodCall ) } } diff --git a/java/ql/src/Security/CWE/CWE-367/TOCTOURace.ql b/java/ql/src/Security/CWE/CWE-367/TOCTOURace.ql index 868085524337..521c7a1ca909 100644 --- a/java/ql/src/Security/CWE/CWE-367/TOCTOURace.ql +++ b/java/ql/src/Security/CWE/CWE-367/TOCTOURace.ql @@ -96,7 +96,7 @@ predicate probablyNeverEscapes(LocalVariableDecl v) { // Not assigned directly to another variable. not exists(Assignment a | a.getSource() = v.getAnAccess()) and // Not returned. - not exists(ReturnStmt r | r.getResult() = v.getAnAccess()) and + not exists(ReturnStmt r | r.getExpr() = v.getAnAccess()) and // All assignments are to new instances of a class. forex(Expr e | e = v.getAnAssignedValue() | e instanceof ClassInstanceExpr) } diff --git a/java/ql/src/Security/CWE/CWE-835/InfiniteLoop.ql b/java/ql/src/Security/CWE/CWE-835/InfiniteLoop.ql index a04cfd6ac43f..ef167189ebfe 100644 --- a/java/ql/src/Security/CWE/CWE-835/InfiniteLoop.ql +++ b/java/ql/src/Security/CWE/CWE-835/InfiniteLoop.ql @@ -49,7 +49,7 @@ predicate subCondition(Expr cond, Expr subcond, boolean negated) { or subCondition(cond.(OrLogicalExpr).getAnOperand(), subcond, negated) or - subCondition(cond.(LogNotExpr).getExpr(), subcond, negated.booleanNot()) + subCondition(cond.(LogNotExpr).getOperand(), subcond, negated.booleanNot()) } from diff --git a/java/ql/src/Violations of Best Practice/Boolean Logic/SimplifyBoolExpr.ql b/java/ql/src/Violations of Best Practice/Boolean Logic/SimplifyBoolExpr.ql index 9b87a3589056..6ff4956da8c0 100644 --- a/java/ql/src/Violations of Best Practice/Boolean Logic/SimplifyBoolExpr.ql +++ b/java/ql/src/Violations of Best Practice/Boolean Logic/SimplifyBoolExpr.ql @@ -40,9 +40,9 @@ class BoolCompare extends EqualityTest { predicate conditionalWithBool(ConditionalExpr c, string pattern, string rewrite) { exists(boolean truebranch | - c.getTrueExpr().(BooleanLiteral).getBooleanValue() = truebranch and - not c.getFalseExpr() instanceof BooleanLiteral and - not c.getFalseExpr().getType() instanceof NullType and + c.getThen().(BooleanLiteral).getBooleanValue() = truebranch and + not c.getElse() instanceof BooleanLiteral and + not c.getElse().getType() instanceof NullType and ( truebranch = true and pattern = "A ? true : B" and rewrite = "A || B" or @@ -51,9 +51,9 @@ predicate conditionalWithBool(ConditionalExpr c, string pattern, string rewrite) ) or exists(boolean falsebranch | - not c.getTrueExpr() instanceof BooleanLiteral and - not c.getTrueExpr().getType() instanceof NullType and - c.getFalseExpr().(BooleanLiteral).getBooleanValue() = falsebranch and + not c.getThen() instanceof BooleanLiteral and + not c.getThen().getType() instanceof NullType and + c.getElse().(BooleanLiteral).getBooleanValue() = falsebranch and ( falsebranch = true and pattern = "A ? B : true" and rewrite = "!A || B" or @@ -62,8 +62,8 @@ predicate conditionalWithBool(ConditionalExpr c, string pattern, string rewrite) ) or exists(boolean truebranch, boolean falsebranch | - c.getTrueExpr().(BooleanLiteral).getBooleanValue() = truebranch and - c.getFalseExpr().(BooleanLiteral).getBooleanValue() = falsebranch and + c.getThen().(BooleanLiteral).getBooleanValue() = truebranch and + c.getElse().(BooleanLiteral).getBooleanValue() = falsebranch and ( truebranch = true and falsebranch = false and pattern = "A ? true : false" and rewrite = "A" or @@ -98,9 +98,9 @@ where or conditionalWithBool(e, pattern, rewrite) or - e.(LogNotExpr).getExpr().(ComparisonOrEquality).negate(pattern, rewrite) + e.(LogNotExpr).getOperand().(ComparisonOrEquality).negate(pattern, rewrite) or - e.(LogNotExpr).getExpr() instanceof LogNotExpr and + e.(LogNotExpr).getOperand() instanceof LogNotExpr and pattern = "!!A" and rewrite = "A" ) diff --git a/java/ql/src/Violations of Best Practice/Boxed Types/BoxedVariable.ql b/java/ql/src/Violations of Best Practice/Boxed Types/BoxedVariable.ql index fec9a2e8e442..713fdad5726f 100644 --- a/java/ql/src/Violations of Best Practice/Boxed Types/BoxedVariable.ql +++ b/java/ql/src/Violations of Best Practice/Boxed Types/BoxedVariable.ql @@ -35,7 +35,7 @@ predicate notDeliberatelyBoxed(LocalBoxedVar v) { ) or exists(ReturnStmt ret | - ret.getResult() = a and + ret.getExpr() = a and ret.getEnclosingCallable().getReturnType() instanceof RefType ) ) diff --git a/java/ql/src/Violations of Best Practice/Dead Code/DeadStoreOfLocal.ql b/java/ql/src/Violations of Best Practice/Dead Code/DeadStoreOfLocal.ql index 3f96f43bc249..0f45b9cae538 100644 --- a/java/ql/src/Violations of Best Practice/Dead Code/DeadStoreOfLocal.ql +++ b/java/ql/src/Violations of Best Practice/Dead Code/DeadStoreOfLocal.ql @@ -15,7 +15,7 @@ import java import DeadLocals -predicate minusOne(MinusExpr e) { e.getExpr().(Literal).getValue() = "1" } +predicate minusOne(MinusExpr e) { e.getOperand().(Literal).getValue() = "1" } predicate flowStep(Expr decl, Expr init) { decl = init diff --git a/java/ql/src/Violations of Best Practice/Dead Code/NonAssignedFields.ql b/java/ql/src/Violations of Best Practice/Dead Code/NonAssignedFields.ql index 28f06c4edfc0..fd2cac889014 100644 --- a/java/ql/src/Violations of Best Practice/Dead Code/NonAssignedFields.ql +++ b/java/ql/src/Violations of Best Practice/Dead Code/NonAssignedFields.ql @@ -66,7 +66,7 @@ where fr.getField() = f and not f.getDeclaringType() instanceof EnumType and forall(Assignment ae | ae.getDest() = f.getAnAccess() | ae.getSource() instanceof NullLiteral) and - not exists(UnaryAssignExpr ua | ua.getExpr() = f.getAnAccess()) and + not exists(UnaryAssignExpr ua | ua.getOperand() = f.getAnAccess()) and not f.isFinal() and // Exclude fields that may be accessed reflectively. not reflectivelyWritten(f) and diff --git a/java/ql/src/Violations of Best Practice/Implementation Hiding/ExposeRepresentation.ql b/java/ql/src/Violations of Best Practice/Implementation Hiding/ExposeRepresentation.ql index b5d27655f8d9..205023202865 100644 --- a/java/ql/src/Violations of Best Practice/Implementation Hiding/ExposeRepresentation.ql +++ b/java/ql/src/Violations of Best Practice/Implementation Hiding/ExposeRepresentation.ql @@ -51,7 +51,7 @@ predicate storesArray(Callable c, int i, Field f) { predicate returnsArray(Callable c, Field f) { f.getDeclaringType() = c.getDeclaringType().getAnAncestor().getSourceDeclaration() and relevantType(f.getType()) and - exists(ReturnStmt rs | rs.getEnclosingCallable() = c and rs.getResult() = f.getAnAccess()) and + exists(ReturnStmt rs | rs.getEnclosingCallable() = c and rs.getExpr() = f.getAnAccess()) and not c.isStatic() } @@ -71,7 +71,7 @@ predicate mayWriteToArray(Expr modified) { ) or // return __array__; ... method()[1] = 0 - exists(ReturnStmt rs | modified = rs.getResult() and relevantType(modified.getType()) | + exists(ReturnStmt rs | modified = rs.getExpr() and relevantType(modified.getType()) | exists(Callable enclosing, MethodCall ma | enclosing = rs.getEnclosingCallable() and ma.getMethod().getSourceDeclaration() = enclosing | diff --git a/java/ql/src/Violations of Best Practice/Implementation Hiding/StaticArray.ql b/java/ql/src/Violations of Best Practice/Implementation Hiding/StaticArray.ql index 84bc421ee665..ef3e6bd814a2 100644 --- a/java/ql/src/Violations of Best Practice/Implementation Hiding/StaticArray.ql +++ b/java/ql/src/Violations of Best Practice/Implementation Hiding/StaticArray.ql @@ -28,8 +28,8 @@ predicate nonEmptyArrayLiteralOrNull(Expr e) { e instanceof NullLiteral or exists(ConditionalExpr cond | cond = e | - nonEmptyArrayLiteralOrNull(cond.getTrueExpr()) and - nonEmptyArrayLiteralOrNull(cond.getFalseExpr()) + nonEmptyArrayLiteralOrNull(cond.getThen()) and + nonEmptyArrayLiteralOrNull(cond.getElse()) ) } 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 0a1e8785b4ec..fa3ea20f05f4 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 @@ -126,7 +126,7 @@ private predicate delegate(Method caller, Method callee) { exists(MethodCall ma | ma.getMethod() = callee | exists(Stmt stmt | stmt = caller.getBody().(SingletonBlock).getStmt() | wrappedAccess(stmt.(ExprStmt).getExpr(), ma) or - wrappedAccess(stmt.(ReturnStmt).getResult(), ma) + wrappedAccess(stmt.(ReturnStmt).getExpr(), ma) ) and forex(Parameter p, int i, Expr arg | p = caller.getParameter(i) and ma.getArgument(i) = arg | // The parameter is propagated without modification. diff --git a/java/ql/src/Violations of Best Practice/Naming Conventions/Shadowing.qll b/java/ql/src/Violations of Best Practice/Naming Conventions/Shadowing.qll index 561c57b7cd9b..02f00d4ffb22 100644 --- a/java/ql/src/Violations of Best Practice/Naming Conventions/Shadowing.qll +++ b/java/ql/src/Violations of Best Practice/Naming Conventions/Shadowing.qll @@ -3,7 +3,7 @@ import java predicate getterFor(Method m, Field f) { m.getName().matches("get%") and m.getDeclaringType() = f.getDeclaringType() and - exists(ReturnStmt ret | ret.getEnclosingCallable() = m and ret.getResult() = f.getAnAccess()) + exists(ReturnStmt ret | ret.getEnclosingCallable() = m and ret.getExpr() = f.getAnAccess()) } predicate setterFor(Method m, Field f) { diff --git a/java/ql/src/Violations of Best Practice/legacy/AutoBoxing.ql b/java/ql/src/Violations of Best Practice/legacy/AutoBoxing.ql index c6d8d796309f..0fc6527d258c 100644 --- a/java/ql/src/Violations of Best Practice/legacy/AutoBoxing.ql +++ b/java/ql/src/Violations of Best Practice/legacy/AutoBoxing.ql @@ -56,9 +56,7 @@ predicate boxed(PrimitiveExpr e) { or flowTarget(e).getType() instanceof BoxedType or - exists(ConditionalExpr cond | cond instanceof BoxedExpr | - cond.getTrueExpr() = e or cond.getFalseExpr() = e - ) + exists(ConditionalExpr cond | cond instanceof BoxedExpr | cond.getABranchExpr() = e) } /** diff --git a/java/ql/src/change-notes/released/1.10.6.md b/java/ql/src/change-notes/released/1.10.6.md new file mode 100644 index 000000000000..eb53de204df9 --- /dev/null +++ b/java/ql/src/change-notes/released/1.10.6.md @@ -0,0 +1,3 @@ +## 1.10.6 + +No user-facing changes. diff --git a/java/ql/src/codeql-pack.release.yml b/java/ql/src/codeql-pack.release.yml index 2b3096747d57..4e10f150f2e7 100644 --- a/java/ql/src/codeql-pack.release.yml +++ b/java/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.10.5 +lastReleaseVersion: 1.10.6 diff --git a/java/ql/src/experimental/Security/CWE/CWE-094/SpringViewManipulationLib.qll b/java/ql/src/experimental/Security/CWE/CWE-094/SpringViewManipulationLib.qll index 5d65431b415a..c9dc2bda6c7b 100644 --- a/java/ql/src/experimental/Security/CWE/CWE-094/SpringViewManipulationLib.qll +++ b/java/ql/src/experimental/Security/CWE/CWE-094/SpringViewManipulationLib.qll @@ -125,10 +125,10 @@ private class StringFormatMethod extends StringCombiningMethod { class SpringViewManipulationSink extends DataFlow::ExprNode { SpringViewManipulationSink() { exists(ReturnStmt r, SpringRequestMappingMethod m | - r.getResult() = this.asExpr() and + r.getExpr() = this.asExpr() and m.getBody().getAStmt() = r and not m.isResponseBody() and - r.getResult().getType() instanceof TypeString + r.getExpr().getType() instanceof TypeString ) or exists(ConstructorCall c | c.getConstructedType() instanceof ModelAndView | diff --git a/java/ql/src/experimental/Security/CWE/CWE-295/JxBrowserWithoutCertValidation.ql b/java/ql/src/experimental/Security/CWE/CWE-295/JxBrowserWithoutCertValidation.ql index c53c2cacdaed..cb340ce0f69b 100644 --- a/java/ql/src/experimental/Security/CWE/CWE-295/JxBrowserWithoutCertValidation.ql +++ b/java/ql/src/experimental/Security/CWE/CWE-295/JxBrowserWithoutCertValidation.ql @@ -48,7 +48,7 @@ private class JxBrowserLoadHandler extends RefType { private predicate isOnCertificateErrorMethodSafe(Method m) { forex(ReturnStmt rs | rs.getEnclosingCallable() = m | - rs.getResult().(CompileTimeConstantExpr).getBooleanValue() = true + rs.getExpr().(CompileTimeConstantExpr).getBooleanValue() = true ) } diff --git a/java/ql/src/experimental/Security/CWE/CWE-625/PermissiveDotRegexQuery.qll b/java/ql/src/experimental/Security/CWE/CWE-625/PermissiveDotRegexQuery.qll index f8e328902504..2c372d1778c6 100644 --- a/java/ql/src/experimental/Security/CWE/CWE-625/PermissiveDotRegexQuery.qll +++ b/java/ql/src/experimental/Security/CWE/CWE-625/PermissiveDotRegexQuery.qll @@ -7,7 +7,7 @@ private import semmle.code.java.dataflow.FlowSources import experimental.semmle.code.java.security.SpringUrlRedirect import semmle.code.java.controlflow.Guards import semmle.code.java.security.UrlRedirect -import Regex +private import semmle.code.java.frameworks.Regex overlay[local?] private class ActivateModels extends ActiveExperimentalModels { @@ -77,17 +77,12 @@ private class SpringUriInputParameterSource extends DataFlow::Node { */ private class CompileRegexSink extends DataFlow::ExprNode { CompileRegexSink() { - exists(MethodCall ma, Method m | m = ma.getMethod() | - ( - ma.getArgument(0) = this.asExpr() and - ( - m instanceof StringMatchMethod // input.matches(regexPattern) - or - m instanceof PatternCompileMethod // p = Pattern.compile(regexPattern) - or - m instanceof PatternMatchMethod // p = Pattern.matches(regexPattern, input) - ) - ) + exists(MethodCall ma | ma.getArgument(0) = this.asExpr() | + ma instanceof StringMatchesCall // input.matches(regexPattern) + or + ma instanceof PatternCompileCall // p = Pattern.compile(regexPattern) + or + ma instanceof PatternMatchesCall // p = Pattern.matches(regexPattern, input) ) } } @@ -107,7 +102,7 @@ private module PermissiveDotRegexConfig implements DataFlow::ConfigSig { ma.getMethod() instanceof PatternCompileMethod and ma.getArgument(1) = f.getAnAccess() and f.hasName("DOTALL") and - f.getDeclaringType() instanceof Pattern and + f.getDeclaringType() instanceof TypeRegexPattern and node.asExpr() = ma.getArgument(0) ) } @@ -147,11 +142,11 @@ module MatchRegexConfig implements DataFlow::ConfigSig { ) and exists(MethodCall ma | PermissiveDotRegexFlow::flowToExpr(ma.getArgument(0)) | // input.matches(regexPattern) - ma.getMethod() instanceof StringMatchMethod and + ma instanceof StringMatchesCall and ma.getQualifier() = sink.asExpr() or // p = Pattern.compile(regexPattern); p.matcher(input) - ma.getMethod() instanceof PatternCompileMethod and + ma instanceof PatternCompileCall and exists(MethodCall pma | pma.getMethod() instanceof PatternMatcherMethod and sink.asExpr() = pma.getArgument(0) and @@ -159,7 +154,7 @@ module MatchRegexConfig implements DataFlow::ConfigSig { ) or // p = Pattern.matches(regexPattern, input) - ma.getMethod() instanceof PatternMatchMethod and + ma instanceof PatternMatchesCall and sink.asExpr() = ma.getArgument(1) ) } @@ -176,28 +171,14 @@ abstract class MatchRegexSink extends DataFlow::ExprNode { } * A string being matched against a regular expression. */ private class StringMatchRegexSink extends MatchRegexSink { - StringMatchRegexSink() { - exists(MethodCall ma, Method m | m = ma.getMethod() | - ( - m instanceof StringMatchMethod and - ma.getQualifier() = this.asExpr() - ) - ) - } + StringMatchRegexSink() { any(StringMatchesCall mc).getQualifier() = this.asExpr() } } /** * A string being matched against a regular expression using a pattern. */ private class PatternMatchRegexSink extends MatchRegexSink { - PatternMatchRegexSink() { - exists(MethodCall ma, Method m | m = ma.getMethod() | - ( - m instanceof PatternMatchMethod and - ma.getArgument(1) = this.asExpr() - ) - ) - } + PatternMatchRegexSink() { any(PatternMatchesCall mc).getArgument(1) = this.asExpr() } } /** diff --git a/java/ql/src/experimental/Security/CWE/CWE-625/Regex.qll b/java/ql/src/experimental/Security/CWE/CWE-625/Regex.qll deleted file mode 100644 index e605f31a0b35..000000000000 --- a/java/ql/src/experimental/Security/CWE/CWE-625/Regex.qll +++ /dev/null @@ -1,51 +0,0 @@ -/** Provides methods related to regular expression matching. */ -deprecated module; - -import java - -/** - * The class `java.util.regex.Pattern`. - */ -class Pattern extends RefType { - Pattern() { this.hasQualifiedName("java.util.regex", "Pattern") } -} - -/** - * The method `compile` of `java.util.regex.Pattern`. - */ -class PatternCompileMethod extends Method { - PatternCompileMethod() { - this.getDeclaringType().getASupertype*() instanceof Pattern and - this.hasName("compile") - } -} - -/** - * The method `matches` of `java.util.regex.Pattern`. - */ -class PatternMatchMethod extends Method { - PatternMatchMethod() { - this.getDeclaringType().getASupertype*() instanceof Pattern and - this.hasName("matches") - } -} - -/** - * The method `matcher` of `java.util.regex.Pattern`. - */ -class PatternMatcherMethod extends Method { - PatternMatcherMethod() { - this.getDeclaringType().getASupertype*() instanceof Pattern and - this.hasName("matcher") - } -} - -/** - * The method `matches` of `java.lang.String`. - */ -class StringMatchMethod extends Method { - StringMatchMethod() { - this.getDeclaringType().getASupertype*() instanceof TypeString and - this.hasName("matches") - } -} diff --git a/java/ql/src/qlpack.yml b/java/ql/src/qlpack.yml index e3fa999e0bc0..792bb13eb322 100644 --- a/java/ql/src/qlpack.yml +++ b/java/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-queries -version: 1.10.5 +version: 1.10.7-dev groups: - java - queries diff --git a/java/ql/src/utils/modelgenerator/internal/CaptureModels.qll b/java/ql/src/utils/modelgenerator/internal/CaptureModels.qll index 6978ca7e308d..7e98cd927be3 100644 --- a/java/ql/src/utils/modelgenerator/internal/CaptureModels.qll +++ b/java/ql/src/utils/modelgenerator/internal/CaptureModels.qll @@ -187,7 +187,7 @@ module SummaryModelGeneratorInput implements SummaryModelGeneratorInputSig { } private predicate hasManualSummaryModel(Callable api) { - api = any(FlowSummaryImpl::Public::SummarizedCallable sc | sc.applyManualModel()).asCallable() or + api = any(FlowSummaryImpl::Public::SummarizedCallable sc | sc.hasManualModel()).asCallable() or api = any(FlowSummaryImpl::Public::NeutralSummaryCallable sc | sc.hasManualModel()).asCallable() } diff --git a/java/ql/test-kotlin1/library-tests/data-classes/PrintAst.expected b/java/ql/test-kotlin1/library-tests/data-classes/PrintAst.expected index f884671c0949..98999cf18696 100644 --- a/java/ql/test-kotlin1/library-tests/data-classes/PrintAst.expected +++ b/java/ql/test-kotlin1/library-tests/data-classes/PrintAst.expected @@ -93,7 +93,7 @@ dc.kt: # 0| 0: [BooleanLiteral] false # 0| 2: [LocalVariableDeclStmt] var ...; # 0| 1: [LocalVariableDeclExpr] tmp0_other_with_cast -# 0| 0: [CastExpr] (...)... +# 0| 0: [ImplicitCastExpr] # 0| 0: [TypeAccess] ProtoMapValue # 0| 1: [VarAccess] other # 0| 3: [ExprStmt] ; diff --git a/java/ql/test-kotlin1/library-tests/exprs/unaryOp.ql b/java/ql/test-kotlin1/library-tests/exprs/unaryOp.ql index 9e7359e1e075..bce290e4afc8 100644 --- a/java/ql/test-kotlin1/library-tests/exprs/unaryOp.ql +++ b/java/ql/test-kotlin1/library-tests/exprs/unaryOp.ql @@ -29,7 +29,7 @@ class NoMaybeElement extends MaybeElement { } MaybeElement op(UnaryExpr e) { - if exists(e.getExpr()) then result = TElement(e.getExpr()) else result = TNoElement() + if exists(e.getOperand()) then result = TElement(e.getOperand()) else result = TNoElement() } from Expr e diff --git a/java/ql/test-kotlin1/library-tests/methods/exprs.expected b/java/ql/test-kotlin1/library-tests/methods/exprs.expected index 5e916c6ddbc6..ae7381efc737 100644 --- a/java/ql/test-kotlin1/library-tests/methods/exprs.expected +++ b/java/ql/test-kotlin1/library-tests/methods/exprs.expected @@ -23,7 +23,6 @@ | dataClass.kt:0:0:0:0 | "DataClass(" | StringLiteral | | dataClass.kt:0:0:0:0 | "x=" | StringLiteral | | dataClass.kt:0:0:0:0 | "y=" | StringLiteral | -| dataClass.kt:0:0:0:0 | (...)... | CastExpr | | dataClass.kt:0:0:0:0 | ... !is ... | NotInstanceOfExpr | | dataClass.kt:0:0:0:0 | ... & ... | AndBitwiseExpr | | dataClass.kt:0:0:0:0 | ... & ... | AndBitwiseExpr | @@ -37,6 +36,7 @@ | dataClass.kt:0:0:0:0 | ...=... | AssignExpr | | dataClass.kt:0:0:0:0 | ...=... | AssignExpr | | dataClass.kt:0:0:0:0 | ...=... | AssignExpr | +| dataClass.kt:0:0:0:0 | | ImplicitCastExpr | | dataClass.kt:0:0:0:0 | DataClass | TypeAccess | | dataClass.kt:0:0:0:0 | DataClass | TypeAccess | | dataClass.kt:0:0:0:0 | DataClass | TypeAccess | diff --git a/java/ql/test-kotlin1/library-tests/ministdlib/MiniStdLib.kt b/java/ql/test-kotlin1/library-tests/ministdlib/MiniStdLib.kt index ba48bc632345..1aaba910fa2b 100644 --- a/java/ql/test-kotlin1/library-tests/ministdlib/MiniStdLib.kt +++ b/java/ql/test-kotlin1/library-tests/ministdlib/MiniStdLib.kt @@ -26,6 +26,7 @@ public class Int { operator fun plus(other: Int): Int { return this.plus(other) } operator fun times(other: Int): Int { return this.times(other) } infix fun xor(other: Int): Int { return this.xor(other) } + infix fun and(other: Int): Int { return this.and(other) } } public object Unit { diff --git a/java/ql/test-kotlin1/library-tests/ministdlib/classes.expected b/java/ql/test-kotlin1/library-tests/ministdlib/classes.expected index 8d1bc5381290..36aaa6b629c4 100644 --- a/java/ql/test-kotlin1/library-tests/ministdlib/classes.expected +++ b/java/ql/test-kotlin1/library-tests/ministdlib/classes.expected @@ -1,7 +1,7 @@ | MiniStdLib.kt:12:1:15:1 | Any | | MiniStdLib.kt:17:1:19:1 | String | | MiniStdLib.kt:21:1:23:1 | Boolean | -| MiniStdLib.kt:25:1:29:1 | Int | -| MiniStdLib.kt:31:1:32:1 | Unit | +| MiniStdLib.kt:25:1:30:1 | Int | +| MiniStdLib.kt:32:1:33:1 | Unit | | MyClass.kt:1:1:1:16 | MyClass | | file://:0:0:0:0 | FakeKotlinClass | diff --git a/java/ql/test-kotlin2/library-tests/annotation_classes/PrintAst.expected b/java/ql/test-kotlin2/library-tests/annotation_classes/PrintAst.expected index 1153b13c3bf9..a45b3b52351e 100644 --- a/java/ql/test-kotlin2/library-tests/annotation_classes/PrintAst.expected +++ b/java/ql/test-kotlin2/library-tests/annotation_classes/PrintAst.expected @@ -22,13 +22,13 @@ Annot1j.java: def.kt: # 0| [CompilationUnit] def # 0| 1: [Class] DefKt -# 45| 2: [Method] fn +# 46| 2: [Method] fn #-----| 1: (Annotations) # 45| 1: [Annotation] Annot0k # 21| 1: [IntegerLiteral] 0 #-----| 2: (Generic Parameters) # 46| 0: [TypeVariable] T -# 45| 3: [TypeAccess] Unit +# 46| 3: [TypeAccess] Unit #-----| 4: (Parameters) # 46| 0: [Parameter] a #-----| -1: (Annotations) @@ -41,38 +41,38 @@ def.kt: # 47| -1: [TypeAccess] ConsoleKt # 47| 0: [MethodCall] a(...) # 47| -1: [VarAccess] a -# 49| 1: [LocalVariableDeclStmt] var ...; -# 49| 1: [LocalVariableDeclExpr] x +# 50| 1: [LocalVariableDeclStmt] var ...; +# 50| 1: [LocalVariableDeclExpr] x # 50| 0: [IntegerLiteral] 10 -# 53| 3: [Method] getP +# 57| 3: [Method] getP #-----| 1: (Annotations) # 54| 1: [Annotation] Annot0k # 21| 1: [IntegerLiteral] 0 -# 53| 3: [TypeAccess] int -# 53| 5: [BlockStmt] { ... } -# 53| 0: [ReturnStmt] return ... -# 53| 0: [VarAccess] DefKt.p -# 53| -1: [TypeAccess] DefKt -# 53| 4: [FieldDeclaration] int p; +# 57| 3: [TypeAccess] int +# 57| 5: [BlockStmt] { ... } +# 57| 0: [ReturnStmt] return ... +# 57| 0: [VarAccess] DefKt.p +# 57| -1: [TypeAccess] DefKt +# 57| 4: [FieldDeclaration] int p; #-----| -2: (Annotations) # 56| 1: [Annotation] Annot0k # 21| 1: [IntegerLiteral] 0 -# 53| -1: [TypeAccess] int +# 57| -1: [TypeAccess] int # 57| 0: [IntegerLiteral] 5 -# 53| 5: [Method] setP +# 57| 5: [Method] setP #-----| 1: (Annotations) # 55| 1: [Annotation] Annot0k # 21| 1: [IntegerLiteral] 0 -# 53| 3: [TypeAccess] Unit +# 57| 3: [TypeAccess] Unit #-----| 4: (Parameters) -# 53| 0: [Parameter] -# 53| 0: [TypeAccess] int -# 53| 5: [BlockStmt] { ... } -# 53| 0: [ExprStmt] ; -# 53| 0: [AssignExpr] ...=... -# 53| 0: [VarAccess] DefKt.p -# 53| -1: [TypeAccess] DefKt -# 53| 1: [VarAccess] +# 57| 0: [Parameter] +# 57| 0: [TypeAccess] int +# 57| 5: [BlockStmt] { ... } +# 57| 0: [ExprStmt] ; +# 57| 0: [AssignExpr] ...=... +# 57| 0: [VarAccess] DefKt.p +# 57| -1: [TypeAccess] DefKt +# 57| 1: [VarAccess] # 59| 6: [ExtensionMethod] myExtension # 59| 3: [TypeAccess] Unit #-----| 4: (Parameters) @@ -219,13 +219,13 @@ def.kt: # 39| -1: [TypeAccess] Y # 39| 2: [VarAccess] Y.A # 39| -1: [TypeAccess] Y -# 41| 1: [Constructor] Z +# 42| 1: [Constructor] Z #-----| 1: (Annotations) # 41| 1: [Annotation] Annot0k # 21| 1: [IntegerLiteral] 0 -# 41| 5: [BlockStmt] { ... } +# 42| 5: [BlockStmt] { ... } # 42| 0: [SuperConstructorInvocationStmt] super(...) -# 41| 1: [BlockStmt] { ... } +# 42| 1: [BlockStmt] { ... } use.java: # 0| [CompilationUnit] use # 1| 1: [Class] use diff --git a/java/ql/test-kotlin2/library-tests/annotation_classes/classes.expected b/java/ql/test-kotlin2/library-tests/annotation_classes/classes.expected index d42e6cf854c2..db4ef27b32b6 100644 --- a/java/ql/test-kotlin2/library-tests/annotation_classes/classes.expected +++ b/java/ql/test-kotlin2/library-tests/annotation_classes/classes.expected @@ -17,7 +17,7 @@ annotationDeclarations | Annot1j.java:1:19:1:25 | Annot1j | Annot1j.java:8:7:8:7 | d | | Annot1j.java:1:19:1:25 | Annot1j | Annot1j.java:10:9:10:9 | e | | Annot1j.java:1:19:1:25 | Annot1j | Annot1j.java:12:13:12:13 | f | -| def.kt:5:1:21:60 | Annot0k | def.kt:21:26:21:59 | a | +| def.kt:5:1:21:60 | Annot0k | def.kt:21:44:21:59 | a | | def.kt:23:1:31:1 | Annot1k | def.kt:25:5:25:18 | a | | def.kt:23:1:31:1 | Annot1k | def.kt:26:5:26:24 | b | | def.kt:23:1:31:1 | Annot1k | def.kt:27:5:27:31 | c | @@ -29,12 +29,12 @@ annotations | def.kt:30:22:30:31 | Annot0k | def.kt:39:1:39:40 | Annot1k | def.kt:5:1:21:60 | Annot0k | | def.kt:38:1:38:17 | Annot0k | def.kt:38:1:43:1 | Z | def.kt:5:1:21:60 | Annot0k | | def.kt:39:1:39:40 | Annot1k | def.kt:38:1:43:1 | Z | def.kt:23:1:31:1 | Annot1k | -| def.kt:41:5:41:12 | Annot0k | def.kt:41:5:42:19 | Z | def.kt:5:1:21:60 | Annot0k | -| def.kt:45:1:45:8 | Annot0k | def.kt:45:1:51:1 | fn | def.kt:5:1:21:60 | Annot0k | +| def.kt:41:5:41:12 | Annot0k | def.kt:42:5:42:19 | Z | def.kt:5:1:21:60 | Annot0k | +| def.kt:45:1:45:8 | Annot0k | def.kt:46:1:51:1 | fn | def.kt:5:1:21:60 | Annot0k | | def.kt:46:21:46:28 | Annot0k | def.kt:46:21:46:39 | a | def.kt:5:1:21:60 | Annot0k | -| def.kt:54:1:54:12 | Annot0k | def.kt:53:1:57:19 | getP | def.kt:5:1:21:60 | Annot0k | -| def.kt:55:1:55:12 | Annot0k | def.kt:53:1:57:19 | setP | def.kt:5:1:21:60 | Annot0k | -| def.kt:56:1:56:14 | Annot0k | def.kt:53:1:57:23 | p | def.kt:5:1:21:60 | Annot0k | +| def.kt:54:1:54:12 | Annot0k | def.kt:57:1:57:19 | getP | def.kt:5:1:21:60 | Annot0k | +| def.kt:55:1:55:12 | Annot0k | def.kt:57:1:57:19 | setP | def.kt:5:1:21:60 | Annot0k | +| def.kt:56:1:56:14 | Annot0k | def.kt:57:1:57:23 | p | def.kt:5:1:21:60 | Annot0k | | def.kt:59:5:59:21 | Annot0k | def.kt:59:5:59:28 | | def.kt:5:1:21:60 | Annot0k | | use.java:10:5:10:21 | Annot0j | use.java:14:18:14:18 | Z | Annot0j.java:1:19:1:25 | Annot0j | | use.java:11:5:11:90 | Annot1j | use.java:14:18:14:18 | Z | Annot1j.java:1:19:1:25 | Annot1j | diff --git a/java/ql/test-kotlin2/library-tests/annotations/jvmName/test.expected b/java/ql/test-kotlin2/library-tests/annotations/jvmName/test.expected index c56618efda8b..ba6887606f25 100644 --- a/java/ql/test-kotlin2/library-tests/annotations/jvmName/test.expected +++ b/java/ql/test-kotlin2/library-tests/annotations/jvmName/test.expected @@ -1,8 +1,8 @@ | Test.java:2:17:2:17 | m | m | m | | test.kt:3:9:4:18 | getX_prop | getX_prop | getX | | test.kt:6:5:6:19 | getX | getX | getX | -| test.kt:8:5:10:14 | changeY | changeY | setY | -| test.kt:8:5:10:14 | y | y | getY | -| test.kt:12:5:13:15 | method | method | fn | +| test.kt:10:5:10:14 | changeY | changeY | setY | +| test.kt:10:5:10:14 | y | y | getY | +| test.kt:13:5:13:15 | method | method | fn | | test.kt:17:5:17:14 | p | p | p | -| test.kt:18:5:18:32 | w | w | q | +| test.kt:18:23:18:32 | w | w | q | diff --git a/java/ql/test-kotlin2/library-tests/classes/ctorCalls.expected b/java/ql/test-kotlin2/library-tests/classes/ctorCalls.expected index 0bfec48f3f24..e5fe3bf89244 100644 --- a/java/ql/test-kotlin2/library-tests/classes/ctorCalls.expected +++ b/java/ql/test-kotlin2/library-tests/classes/ctorCalls.expected @@ -2,11 +2,11 @@ thisCall | classes.kt:29:26:29:31 | this(...) | superCall | classes.kt:2:1:2:18 | super(...) | -| classes.kt:4:16:4:29 | super(...) | +| classes.kt:4:1:6:1 | super(...) | | classes.kt:8:1:10:1 | super(...) | -| classes.kt:12:23:12:34 | super(...) | -| classes.kt:17:18:17:28 | super(...) | -| classes.kt:28:19:28:29 | super(...) | +| classes.kt:12:1:15:1 | super(...) | +| classes.kt:17:1:18:1 | super(...) | +| classes.kt:28:1:30:1 | super(...) | | classes.kt:35:27:35:27 | super(...) | | classes.kt:63:1:91:1 | super(...) | | classes.kt:66:20:66:54 | super(...) | @@ -41,7 +41,7 @@ superCall | classes.kt:151:5:155:5 | super(...) | | classes.kt:159:5:159:14 | super(...) | | classes.kt:162:13:162:22 | super(...) | -| generic_anonymous.kt:1:25:1:34 | super(...) | +| generic_anonymous.kt:1:1:9:1 | super(...) | | generic_anonymous.kt:3:19:5:3 | super(...) | | generic_anonymous.kt:15:1:33:1 | super(...) | | generic_anonymous.kt:25:9:31:9 | super(...) | @@ -64,5 +64,5 @@ superCall | local_anonymous.kt:39:1:45:1 | super(...) | | local_anonymous.kt:40:14:44:5 | super(...) | | superChain.kt:1:1:1:33 | super(...) | -| superChain.kt:2:33:2:57 | super(...) | -| superChain.kt:3:33:3:57 | super(...) | +| superChain.kt:2:1:2:60 | super(...) | +| superChain.kt:3:1:3:60 | super(...) | diff --git a/java/ql/test-kotlin2/library-tests/classes/genericExprTypes.expected b/java/ql/test-kotlin2/library-tests/classes/genericExprTypes.expected index 2f7075c7e8e1..46522bd2145a 100644 --- a/java/ql/test-kotlin2/library-tests/classes/genericExprTypes.expected +++ b/java/ql/test-kotlin2/library-tests/classes/genericExprTypes.expected @@ -6,14 +6,14 @@ | generic_anonymous.kt:1:26:1:33 | t | T | | generic_anonymous.kt:1:26:1:33 | this | Generic | | generic_anonymous.kt:1:26:1:33 | this.t | T | -| generic_anonymous.kt:3:3:3:15 | T | T | -| generic_anonymous.kt:3:3:3:15 | new Object(...) { ... } | new Object(...) { ... } | -| generic_anonymous.kt:3:3:3:15 | this | Generic | -| generic_anonymous.kt:3:3:3:15 | this.x | new Object(...) { ... } | -| generic_anonymous.kt:3:3:5:3 | ...=... | new Object(...) { ... } | -| generic_anonymous.kt:3:3:5:3 | T | T | -| generic_anonymous.kt:3:3:5:3 | new Object(...) { ... } | new Object(...) { ... } | -| generic_anonymous.kt:3:3:5:3 | x | new Object(...) { ... } | +| generic_anonymous.kt:3:11:3:15 | T | T | +| generic_anonymous.kt:3:11:3:15 | new Object(...) { ... } | new Object(...) { ... } | +| generic_anonymous.kt:3:11:3:15 | this | Generic | +| generic_anonymous.kt:3:11:3:15 | this.x | new Object(...) { ... } | +| generic_anonymous.kt:3:11:5:3 | ...=... | new Object(...) { ... } | +| generic_anonymous.kt:3:11:5:3 | T | T | +| generic_anonymous.kt:3:11:5:3 | new Object(...) { ... } | new Object(...) { ... } | +| generic_anonymous.kt:3:11:5:3 | x | new Object(...) { ... } | | generic_anonymous.kt:3:19:5:3 | | new Object(...) { ... } | | generic_anonymous.kt:3:19:5:3 | Object | Object | | generic_anonymous.kt:3:19:5:3 | new (...) | new Object(...) { ... } | diff --git a/java/ql/test-kotlin2/library-tests/comments/comments.expected b/java/ql/test-kotlin2/library-tests/comments/comments.expected index 77a5ce164707..8c163a2a523d 100644 --- a/java/ql/test-kotlin2/library-tests/comments/comments.expected +++ b/java/ql/test-kotlin2/library-tests/comments/comments.expected @@ -18,9 +18,9 @@ comments commentOwners | comments.kt:1:1:1:36 | /** Kdoc owned by CompilationUnit */ | comments.kt:0:0:0:0 | comments | | comments.kt:4:1:11:3 | /**\n * A group of *members*.\n *\n * This class has no useful logic; it's just a documentation example.\n *\n * @property name the name of this group.\n * @constructor Creates an empty group.\n */ | comments.kt:12:1:31:1 | Group | -| comments.kt:14:5:16:7 | /**\n * Members of this group.\n */ | comments.kt:17:5:17:23 | getMembers$private | -| comments.kt:14:5:16:7 | /**\n * Members of this group.\n */ | comments.kt:17:5:17:46 | members | -| comments.kt:14:5:16:7 | /**\n * Members of this group.\n */ | comments.kt:17:5:17:46 | members | +| comments.kt:14:5:16:7 | /**\n * Members of this group.\n */ | comments.kt:17:13:17:23 | getMembers$private | +| comments.kt:14:5:16:7 | /**\n * Members of this group.\n */ | comments.kt:17:13:17:46 | members | +| comments.kt:14:5:16:7 | /**\n * Members of this group.\n */ | comments.kt:17:13:17:46 | members | | comments.kt:19:5:22:7 | /**\n * Adds a [member] to this group.\n * @return the new size of the group.\n */ | comments.kt:23:5:26:5 | add | | comments.kt:48:1:50:3 | /**\n * A type alias comment\n */ | comments.kt:51:1:51:24 | MyType | | comments.kt:61:5:63:7 | /**\n * A prop comment\n */ | comments.kt:64:5:68:17 | prop | diff --git a/java/ql/test-kotlin2/library-tests/companion_objects/method_accesses.expected b/java/ql/test-kotlin2/library-tests/companion_objects/method_accesses.expected index e414c95fd543..b02c862d300b 100644 --- a/java/ql/test-kotlin2/library-tests/companion_objects/method_accesses.expected +++ b/java/ql/test-kotlin2/library-tests/companion_objects/method_accesses.expected @@ -2,4 +2,4 @@ | companion_objects.kt:23:5:23:11 | MyClassCompanion | VarAccess | companion_objects.kt:4:9:4:31 | funInCompanion | | companion_objects.kt:24:5:24:13 | new MyClass(...) | ClassInstanceExpr | companion_objects.kt:2:5:2:23 | funInClass | | companion_objects.kt:25:5:25:15 | MyInterfaceCompanion | VarAccess | companion_objects.kt:11:9:11:31 | funInCompanion | -| companion_objects.kt:26:5:26:9 | new Imp(...) | ClassInstanceExpr | companion_objects.kt:16:5:18:5 | funInInterface | +| companion_objects.kt:26:5:26:9 | new Imp(...) | ClassInstanceExpr | companion_objects.kt:16:14:18:5 | funInInterface | diff --git a/java/ql/test-kotlin2/library-tests/data-classes/PrintAst.expected b/java/ql/test-kotlin2/library-tests/data-classes/PrintAst.expected index e601e1378a69..cce5f37dab9a 100644 --- a/java/ql/test-kotlin2/library-tests/data-classes/PrintAst.expected +++ b/java/ql/test-kotlin2/library-tests/data-classes/PrintAst.expected @@ -93,7 +93,7 @@ dc.kt: # 0| 0: [BooleanLiteral] false # 0| 2: [LocalVariableDeclStmt] var ...; # 0| 1: [LocalVariableDeclExpr] tmp0_other_with_cast -# 0| 0: [CastExpr] (...)... +# 0| 0: [ImplicitCastExpr] # 0| 0: [TypeAccess] ProtoMapValue # 0| 1: [VarAccess] other # 0| 3: [ExprStmt] ; diff --git a/java/ql/test-kotlin2/library-tests/data-classes/callees.expected b/java/ql/test-kotlin2/library-tests/data-classes/callees.expected index a0352c3ac723..f16c4ffb4352 100644 --- a/java/ql/test-kotlin2/library-tests/data-classes/callees.expected +++ b/java/ql/test-kotlin2/library-tests/data-classes/callees.expected @@ -4,4 +4,4 @@ | dc.kt:0:0:0:0 | new ProtoMapValue(...) | ProtoMapValue.ProtoMapValue | | dc.kt:0:0:0:0 | toString(...) | java.util.Arrays.toString | | dc.kt:0:0:0:0 | toString(...) | java.util.Arrays.toString | -| dc.kt:1:25:1:71 | super(...) | java.lang.Object.Object | +| dc.kt:1:1:1:71 | super(...) | java.lang.Object.Object | diff --git a/java/ql/test-kotlin2/library-tests/exprs/PrintAst.expected b/java/ql/test-kotlin2/library-tests/exprs/PrintAst.expected index 78fc858d028e..ce315c35ca63 100644 --- a/java/ql/test-kotlin2/library-tests/exprs/PrintAst.expected +++ b/java/ql/test-kotlin2/library-tests/exprs/PrintAst.expected @@ -2520,22 +2520,21 @@ exprs.kt: # 137| 0: [GTExpr] ... > ... # 137| 0: [VarAccess] variable # 137| 1: [IntegerLiteral] 0 -# 137| 1: [BlockStmt] { ... } -# 138| 0: [ExprStmt] ; -# 138| 0: [ImplicitCoercionToUnitExpr] -# 138| 0: [TypeAccess] Unit -# 138| 1: [StmtExpr] -# 138| 0: [BlockStmt] { ... } -# 138| 0: [LocalVariableDeclStmt] var ...; -# 138| 1: [LocalVariableDeclExpr] -# 138| 0: [VarAccess] variable -# 138| 1: [ExprStmt] ; -# 138| 0: [AssignExpr] ...=... -# 138| 0: [VarAccess] variable -# 138| 1: [MethodCall] dec(...) -# 138| -1: [VarAccess] -# 138| 2: [ExprStmt] ; -# 138| 0: [VarAccess] +# 138| 1: [ExprStmt] ; +# 138| 0: [ImplicitCoercionToUnitExpr] +# 138| 0: [TypeAccess] Unit +# 138| 1: [StmtExpr] +# 138| 0: [BlockStmt] { ... } +# 138| 0: [LocalVariableDeclStmt] var ...; +# 138| 1: [LocalVariableDeclExpr] +# 138| 0: [VarAccess] variable +# 138| 1: [ExprStmt] ; +# 138| 0: [AssignExpr] ...=... +# 138| 0: [VarAccess] variable +# 138| 1: [MethodCall] dec(...) +# 138| -1: [VarAccess] +# 138| 2: [ExprStmt] ; +# 138| 0: [VarAccess] # 141| 119: [ReturnStmt] return ... # 141| 0: [AddExpr] ... + ... # 141| 0: [IntegerLiteral] 123 @@ -2624,7 +2623,9 @@ exprs.kt: # 167| 1: [BlockStmt] { ... } # 168| 0: [LocalVariableDeclStmt] var ...; # 168| 1: [LocalVariableDeclExpr] r2 -# 168| 0: [VarAccess] r +# 168| 0: [ImplicitCastExpr] +# 168| 0: [TypeAccess] Rectangle +# 168| 1: [VarAccess] r # 169| 1: [LocalVariableDeclStmt] var ...; # 169| 1: [LocalVariableDeclExpr] height # 169| 0: [VarAccess] r2.height @@ -3519,7 +3520,9 @@ exprs.kt: # 212| 1: [LocalVariableDeclExpr] b3 # 212| 0: [AddExpr] ... + ... # 212| 0: [NotNullExpr] ...!! -# 212| 0: [VarAccess] s +# 212| 0: [ImplicitCastExpr] +# 212| 0: [TypeAccess] String +# 212| 1: [VarAccess] s # 212| 1: [IntegerLiteral] 5 # 213| 5: [LocalVariableDeclStmt] var ...; # 213| 1: [LocalVariableDeclExpr] c0 diff --git a/java/ql/test-kotlin2/library-tests/exprs/exprs.expected b/java/ql/test-kotlin2/library-tests/exprs/exprs.expected index 001794509ffb..8c86fe5a1b27 100644 --- a/java/ql/test-kotlin2/library-tests/exprs/exprs.expected +++ b/java/ql/test-kotlin2/library-tests/exprs/exprs.expected @@ -129,20 +129,20 @@ | delegatedProperties.kt:26:13:26:28 | curValue | delegatedProperties.kt:25:64:31:9 | | VarAccess | | delegatedProperties.kt:26:13:26:28 | int | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:26:28:26:28 | 0 | delegatedProperties.kt:25:64:31:9 | | IntegerLiteral | -| delegatedProperties.kt:27:13:27:88 | int | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:27:22:27:88 | int | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:27:35:27:47 | Object | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:27:50:27:71 | ? ... | file://:0:0:0:0 | | WildcardTypeAccess | | delegatedProperties.kt:27:50:27:71 | KProperty | file://:0:0:0:0 | | TypeAccess | -| delegatedProperties.kt:27:81:27:88 | getCurValue(...) | delegatedProperties.kt:27:13:27:88 | getValue | MethodCall | -| delegatedProperties.kt:27:81:27:88 | this | delegatedProperties.kt:27:13:27:88 | getValue | ThisAccess | -| delegatedProperties.kt:28:13:30:13 | Unit | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:27:81:27:88 | getCurValue(...) | delegatedProperties.kt:27:22:27:88 | getValue | MethodCall | +| delegatedProperties.kt:27:81:27:88 | this | delegatedProperties.kt:27:22:27:88 | getValue | ThisAccess | +| delegatedProperties.kt:28:22:30:13 | Unit | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:28:35:28:47 | Object | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:28:50:28:71 | ? ... | file://:0:0:0:0 | | WildcardTypeAccess | | delegatedProperties.kt:28:50:28:71 | KProperty | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:28:74:28:83 | int | file://:0:0:0:0 | | TypeAccess | -| delegatedProperties.kt:29:17:29:32 | setCurValue(...) | delegatedProperties.kt:28:13:30:13 | setValue | MethodCall | -| delegatedProperties.kt:29:17:29:32 | this | delegatedProperties.kt:28:13:30:13 | setValue | ThisAccess | -| delegatedProperties.kt:29:28:29:32 | value | delegatedProperties.kt:28:13:30:13 | setValue | VarAccess | +| delegatedProperties.kt:29:17:29:32 | setCurValue(...) | delegatedProperties.kt:28:22:30:13 | setValue | MethodCall | +| delegatedProperties.kt:29:17:29:32 | this | delegatedProperties.kt:28:22:30:13 | setValue | ThisAccess | +| delegatedProperties.kt:29:28:29:32 | value | delegatedProperties.kt:28:22:30:13 | setValue | VarAccess | | delegatedProperties.kt:33:9:33:76 | int | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:33:9:33:76 | readOnly$delegate | delegatedProperties.kt:18:5:40:5 | fn | LocalVariableDeclExpr | | delegatedProperties.kt:33:30:33:47 | ...::... | delegatedProperties.kt:33:9:33:76 | | PropertyRefExpr | @@ -265,22 +265,22 @@ | delegatedProperties.kt:42:30:42:47 | this.varResource0$delegate | delegatedProperties.kt:42:5:42:47 | getVarResource0 | VarAccess | | delegatedProperties.kt:42:30:42:47 | this.varResource0$delegate | delegatedProperties.kt:42:5:42:47 | setVarResource0 | VarAccess | | delegatedProperties.kt:42:30:42:47 | varResource0$delegate | delegatedProperties.kt:17:1:43:1 | Owner | VarAccess | -| delegatedProperties.kt:46:5:48:5 | int | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:46:14:48:5 | int | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:46:27:46:41 | Owner | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:46:44:46:65 | ? ... | file://:0:0:0:0 | | WildcardTypeAccess | | delegatedProperties.kt:46:44:46:65 | KProperty | file://:0:0:0:0 | | TypeAccess | -| delegatedProperties.kt:47:16:47:16 | 1 | delegatedProperties.kt:46:5:48:5 | getValue | IntegerLiteral | -| delegatedProperties.kt:49:5:50:5 | Unit | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:47:16:47:16 | 1 | delegatedProperties.kt:46:14:48:5 | getValue | IntegerLiteral | +| delegatedProperties.kt:49:14:50:5 | Unit | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:49:27:49:41 | Owner | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:49:44:49:65 | ? ... | file://:0:0:0:0 | | WildcardTypeAccess | | delegatedProperties.kt:49:44:49:65 | KProperty | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:49:68:49:78 | Integer | file://:0:0:0:0 | | TypeAccess | -| delegatedProperties.kt:54:5:57:5 | ResourceDelegate | file://:0:0:0:0 | | TypeAccess | +| delegatedProperties.kt:54:14:57:5 | ResourceDelegate | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:54:34:54:48 | Owner | file://:0:0:0:0 | | TypeAccess | | delegatedProperties.kt:54:51:54:68 | ? ... | file://:0:0:0:0 | | WildcardTypeAccess | | delegatedProperties.kt:54:51:54:68 | KProperty | file://:0:0:0:0 | | TypeAccess | -| delegatedProperties.kt:56:16:56:33 | ResourceDelegate | delegatedProperties.kt:54:5:57:5 | provideDelegate | TypeAccess | -| delegatedProperties.kt:56:16:56:33 | new ResourceDelegate(...) | delegatedProperties.kt:54:5:57:5 | provideDelegate | ClassInstanceExpr | +| delegatedProperties.kt:56:16:56:33 | ResourceDelegate | delegatedProperties.kt:54:14:57:5 | provideDelegate | TypeAccess | +| delegatedProperties.kt:56:16:56:33 | new ResourceDelegate(...) | delegatedProperties.kt:54:14:57:5 | provideDelegate | ClassInstanceExpr | | delegatedProperties.kt:60:1:60:20 | ...=... | delegatedProperties.kt:60:1:60:20 | setTopLevelInt | AssignExpr | | delegatedProperties.kt:60:1:60:20 | | delegatedProperties.kt:60:1:60:20 | setTopLevelInt | VarAccess | | delegatedProperties.kt:60:1:60:20 | DelegatedPropertiesKt | delegatedProperties.kt:60:1:60:20 | getTopLevelInt | TypeAccess | @@ -1461,6 +1461,8 @@ | exprs.kt:167:8:167:16 | ... (value not-equals) ... | exprs.kt:165:1:172:1 | foo | ValueNEExpr | | exprs.kt:167:13:167:16 | null | exprs.kt:165:1:172:1 | foo | NullLiteral | | exprs.kt:168:9:168:29 | r2 | exprs.kt:165:1:172:1 | foo | LocalVariableDeclExpr | +| exprs.kt:168:29:168:29 | | exprs.kt:165:1:172:1 | foo | ImplicitCastExpr | +| exprs.kt:168:29:168:29 | Rectangle | exprs.kt:165:1:172:1 | foo | TypeAccess | | exprs.kt:168:29:168:29 | r | exprs.kt:165:1:172:1 | foo | VarAccess | | exprs.kt:169:9:169:30 | height | exprs.kt:165:1:172:1 | foo | LocalVariableDeclExpr | | exprs.kt:169:22:169:23 | r2 | exprs.kt:165:1:172:1 | foo | VarAccess | @@ -1499,12 +1501,12 @@ | exprs.kt:175:25:175:28 | Direction | file://:0:0:0:0 | | TypeAccess | | exprs.kt:175:25:175:28 | Direction.EAST | exprs.kt:0:0:0:0 | | VarAccess | | exprs.kt:175:25:175:28 | new Direction(...) | exprs.kt:0:0:0:0 | | ClassInstanceExpr | +| exprs.kt:178:1:182:1 | 0 | exprs.kt:178:17:178:30 | Color | IntegerLiteral | +| exprs.kt:178:1:182:1 | Color | exprs.kt:178:17:178:30 | Color | TypeAccess | +| exprs.kt:178:1:182:1 | Enum | exprs.kt:178:17:178:30 | Color | TypeAccess | | exprs.kt:178:1:182:1 | String | file://:0:0:0:0 | | TypeAccess | -| exprs.kt:178:17:178:30 | 0 | exprs.kt:178:17:178:30 | Color | IntegerLiteral | -| exprs.kt:178:17:178:30 | Color | exprs.kt:178:17:178:30 | Color | TypeAccess | -| exprs.kt:178:17:178:30 | Enum | exprs.kt:178:17:178:30 | Color | TypeAccess | -| exprs.kt:178:17:178:30 | new Enum(...) | exprs.kt:178:17:178:30 | Color | ClassInstanceExpr | -| exprs.kt:178:17:178:30 | null | exprs.kt:178:17:178:30 | Color | NullLiteral | +| exprs.kt:178:1:182:1 | new Enum(...) | exprs.kt:178:17:178:30 | Color | ClassInstanceExpr | +| exprs.kt:178:1:182:1 | null | exprs.kt:178:17:178:30 | Color | NullLiteral | | exprs.kt:178:18:178:29 | ...=... | exprs.kt:178:17:178:30 | Color | KtInitializerAssignExpr | | exprs.kt:178:18:178:29 | int | file://:0:0:0:0 | | TypeAccess | | exprs.kt:178:18:178:29 | int | file://:0:0:0:0 | | TypeAccess | @@ -1548,12 +1550,12 @@ | exprs.kt:192:5:192:14 | a1 | exprs.kt:191:1:199:1 | Class1 | VarAccess | | exprs.kt:192:5:192:14 | int | file://:0:0:0:0 | | TypeAccess | | exprs.kt:192:14:192:14 | 1 | exprs.kt:191:1:199:1 | Class1 | IntegerLiteral | -| exprs.kt:193:5:198:5 | Object | file://:0:0:0:0 | | TypeAccess | -| exprs.kt:194:9:194:18 | a2 | exprs.kt:193:5:198:5 | getObject | LocalVariableDeclExpr | -| exprs.kt:194:18:194:18 | 2 | exprs.kt:193:5:198:5 | getObject | IntegerLiteral | -| exprs.kt:195:16:197:9 | | exprs.kt:193:5:198:5 | getObject | StmtExpr | -| exprs.kt:195:16:197:9 | Interface1 | exprs.kt:193:5:198:5 | getObject | TypeAccess | -| exprs.kt:195:16:197:9 | new (...) | exprs.kt:193:5:198:5 | getObject | ClassInstanceExpr | +| exprs.kt:193:13:198:5 | Object | file://:0:0:0:0 | | TypeAccess | +| exprs.kt:194:9:194:18 | a2 | exprs.kt:193:13:198:5 | getObject | LocalVariableDeclExpr | +| exprs.kt:194:18:194:18 | 2 | exprs.kt:193:13:198:5 | getObject | IntegerLiteral | +| exprs.kt:195:16:197:9 | | exprs.kt:193:13:198:5 | getObject | StmtExpr | +| exprs.kt:195:16:197:9 | Interface1 | exprs.kt:193:13:198:5 | getObject | TypeAccess | +| exprs.kt:195:16:197:9 | new (...) | exprs.kt:193:13:198:5 | getObject | ClassInstanceExpr | | exprs.kt:196:13:196:26 | String | file://:0:0:0:0 | | TypeAccess | | exprs.kt:196:13:196:26 | this | exprs.kt:196:13:196:26 | getA3 | ThisAccess | | exprs.kt:196:13:196:26 | this.a3 | exprs.kt:196:13:196:26 | getA3 | VarAccess | @@ -1593,6 +1595,8 @@ | exprs.kt:211:19:211:29 | ... + ... | exprs.kt:206:5:217:5 | x | AddExpr | | exprs.kt:211:28:211:28 | 5 | exprs.kt:206:5:217:5 | x | IntegerLiteral | | exprs.kt:212:9:212:25 | b3 | exprs.kt:206:5:217:5 | x | LocalVariableDeclExpr | +| exprs.kt:212:19:212:19 | | exprs.kt:206:5:217:5 | x | ImplicitCastExpr | +| exprs.kt:212:19:212:19 | String | exprs.kt:206:5:217:5 | x | TypeAccess | | exprs.kt:212:19:212:19 | s | exprs.kt:206:5:217:5 | x | VarAccess | | exprs.kt:212:19:212:21 | ...!! | exprs.kt:206:5:217:5 | x | NotNullExpr | | exprs.kt:212:19:212:25 | ... + ... | exprs.kt:206:5:217:5 | x | AddExpr | @@ -1754,9 +1758,9 @@ | exprs.kt:274:3:274:14 | ...%=... | exprs.kt:267:1:276:1 | inPlaceOperators | AssignRemExpr | | exprs.kt:274:3:274:14 | updated | exprs.kt:267:1:276:1 | inPlaceOperators | VarAccess | | exprs.kt:274:14:274:14 | 1 | exprs.kt:267:1:276:1 | inPlaceOperators | IntegerLiteral | -| exprs.kt:278:1:278:66 | T | file://:0:0:0:0 | | TypeAccess | -| exprs.kt:278:1:278:66 | T[] | file://:0:0:0:0 | | TypeAccess | -| exprs.kt:278:52:278:66 | | exprs.kt:278:1:278:66 | getEnumValues | ErrorExpr | +| exprs.kt:278:8:278:66 | T | file://:0:0:0:0 | | TypeAccess | +| exprs.kt:278:8:278:66 | T[] | file://:0:0:0:0 | | TypeAccess | +| exprs.kt:278:52:278:66 | | exprs.kt:278:8:278:66 | getEnumValues | ErrorExpr | | exprs.kt:280:1:283:1 | Unit | file://:0:0:0:0 | | TypeAccess | | exprs.kt:281:5:281:23 | | exprs.kt:280:1:283:1 | callToEnumValues | ImplicitCoercionToUnitExpr | | exprs.kt:281:5:281:23 | Color | exprs.kt:280:1:283:1 | callToEnumValues | TypeAccess | @@ -3167,9 +3171,9 @@ | funcExprs.kt:51:8:51:16 | FuncRef | funcExprs.kt:51:8:51:16 | invoke | TypeAccess | | funcExprs.kt:51:8:51:16 | Function0 | funcExprs.kt:21:1:52:1 | call | TypeAccess | | funcExprs.kt:51:8:51:16 | new FuncRef(...) | funcExprs.kt:51:8:51:16 | invoke | ClassInstanceExpr | -| funcExprs.kt:55:5:55:49 | int | file://:0:0:0:0 | | TypeAccess | +| funcExprs.kt:55:23:55:49 | int | file://:0:0:0:0 | | TypeAccess | | funcExprs.kt:55:34:55:39 | int | file://:0:0:0:0 | | TypeAccess | -| funcExprs.kt:55:49:55:49 | 5 | funcExprs.kt:55:5:55:49 | invoke | IntegerLiteral | +| funcExprs.kt:55:49:55:49 | 5 | funcExprs.kt:55:23:55:49 | invoke | IntegerLiteral | | funcExprs.kt:58:1:58:25 | Unit | file://:0:0:0:0 | | TypeAccess | | funcExprs.kt:58:12:58:21 | ? ... | file://:0:0:0:0 | | WildcardTypeAccess | | funcExprs.kt:58:12:58:21 | Function0 | file://:0:0:0:0 | | TypeAccess | @@ -3247,43 +3251,43 @@ | funcExprs.kt:75:14:75:14 | Generic | file://:0:0:0:0 | | TypeAccess | | funcExprs.kt:75:14:75:14 | Integer | file://:0:0:0:0 | | TypeAccess | | funcExprs.kt:75:19:75:21 | "a" | funcExprs.kt:75:12:75:22 | invoke | StringLiteral | -| funcExprs.kt:77:5:77:60 | Unit | file://:0:0:0:0 | | TypeAccess | +| funcExprs.kt:77:13:77:60 | Unit | file://:0:0:0:0 | | TypeAccess | | funcExprs.kt:77:20:77:55 | ? ... | file://:0:0:0:0 | | WildcardTypeAccess | | funcExprs.kt:77:20:77:55 | Function1>,String> | file://:0:0:0:0 | | TypeAccess | | funcExprs.kt:77:20:77:55 | Generic> | file://:0:0:0:0 | | TypeAccess | | funcExprs.kt:77:20:77:55 | Generic | file://:0:0:0:0 | | TypeAccess | | funcExprs.kt:77:20:77:55 | Integer | file://:0:0:0:0 | | TypeAccess | | funcExprs.kt:77:20:77:55 | String | file://:0:0:0:0 | | TypeAccess | -| funcExprs.kt:82:1:96:1 | Unit | file://:0:0:0:0 | | TypeAccess | -| funcExprs.kt:83:5:83:51 | l1 | funcExprs.kt:82:1:96:1 | fn | LocalVariableDeclExpr | -| funcExprs.kt:83:31:83:51 | ...->... | funcExprs.kt:82:1:96:1 | fn | LambdaExpr | -| funcExprs.kt:83:31:83:51 | Function1 | funcExprs.kt:82:1:96:1 | fn | TypeAccess | -| funcExprs.kt:83:31:83:51 | Integer | funcExprs.kt:82:1:96:1 | fn | TypeAccess | +| funcExprs.kt:82:9:96:1 | Unit | file://:0:0:0:0 | | TypeAccess | +| funcExprs.kt:83:5:83:51 | l1 | funcExprs.kt:82:9:96:1 | fn | LocalVariableDeclExpr | +| funcExprs.kt:83:31:83:51 | ...->... | funcExprs.kt:82:9:96:1 | fn | LambdaExpr | +| funcExprs.kt:83:31:83:51 | Function1 | funcExprs.kt:82:9:96:1 | fn | TypeAccess | +| funcExprs.kt:83:31:83:51 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess | | funcExprs.kt:83:31:83:51 | String | file://:0:0:0:0 | | TypeAccess | -| funcExprs.kt:83:31:83:51 | String | funcExprs.kt:82:1:96:1 | fn | TypeAccess | +| funcExprs.kt:83:31:83:51 | String | funcExprs.kt:82:9:96:1 | fn | TypeAccess | | funcExprs.kt:83:33:83:33 | int | file://:0:0:0:0 | | TypeAccess | | funcExprs.kt:83:38:83:38 | i | funcExprs.kt:83:31:83:51 | invoke | VarAccess | | funcExprs.kt:83:38:83:49 | toString(...) | funcExprs.kt:83:31:83:51 | invoke | MethodCall | -| funcExprs.kt:84:5:84:6 | l1 | funcExprs.kt:82:1:96:1 | fn | VarAccess | -| funcExprs.kt:84:5:84:16 | invoke(...) | funcExprs.kt:82:1:96:1 | fn | MethodCall | -| funcExprs.kt:84:8:84:16 | | funcExprs.kt:82:1:96:1 | fn | ImplicitCoercionToUnitExpr | -| funcExprs.kt:84:8:84:16 | Unit | funcExprs.kt:82:1:96:1 | fn | TypeAccess | -| funcExprs.kt:84:15:84:15 | 5 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral | -| funcExprs.kt:86:5:86:59 | l2 | funcExprs.kt:82:1:96:1 | fn | LocalVariableDeclExpr | -| funcExprs.kt:86:39:86:59 | ...->... | funcExprs.kt:82:1:96:1 | fn | LambdaExpr | -| funcExprs.kt:86:39:86:59 | Function1 | funcExprs.kt:82:1:96:1 | fn | TypeAccess | -| funcExprs.kt:86:39:86:59 | Integer | funcExprs.kt:82:1:96:1 | fn | TypeAccess | +| funcExprs.kt:84:5:84:6 | l1 | funcExprs.kt:82:9:96:1 | fn | VarAccess | +| funcExprs.kt:84:5:84:16 | invoke(...) | funcExprs.kt:82:9:96:1 | fn | MethodCall | +| funcExprs.kt:84:8:84:16 | | funcExprs.kt:82:9:96:1 | fn | ImplicitCoercionToUnitExpr | +| funcExprs.kt:84:8:84:16 | Unit | funcExprs.kt:82:9:96:1 | fn | TypeAccess | +| funcExprs.kt:84:15:84:15 | 5 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral | +| funcExprs.kt:86:5:86:59 | l2 | funcExprs.kt:82:9:96:1 | fn | LocalVariableDeclExpr | +| funcExprs.kt:86:39:86:59 | ...->... | funcExprs.kt:82:9:96:1 | fn | LambdaExpr | +| funcExprs.kt:86:39:86:59 | Function1 | funcExprs.kt:82:9:96:1 | fn | TypeAccess | +| funcExprs.kt:86:39:86:59 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess | | funcExprs.kt:86:39:86:59 | String | file://:0:0:0:0 | | TypeAccess | -| funcExprs.kt:86:39:86:59 | String | funcExprs.kt:82:1:96:1 | fn | TypeAccess | +| funcExprs.kt:86:39:86:59 | String | funcExprs.kt:82:9:96:1 | fn | TypeAccess | | funcExprs.kt:86:41:86:41 | int | file://:0:0:0:0 | | TypeAccess | | funcExprs.kt:86:46:86:46 | i | funcExprs.kt:86:39:86:59 | invoke | VarAccess | | funcExprs.kt:86:46:86:57 | toString(...) | funcExprs.kt:86:39:86:59 | invoke | MethodCall | -| funcExprs.kt:87:5:87:6 | l2 | funcExprs.kt:82:1:96:1 | fn | VarAccess | -| funcExprs.kt:87:5:87:16 | invoke(...) | funcExprs.kt:82:1:96:1 | fn | MethodCall | -| funcExprs.kt:87:8:87:16 | | funcExprs.kt:82:1:96:1 | fn | ImplicitCoercionToUnitExpr | -| funcExprs.kt:87:8:87:16 | Unit | funcExprs.kt:82:1:96:1 | fn | TypeAccess | -| funcExprs.kt:87:15:87:15 | 5 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral | -| funcExprs.kt:89:5:90:69 | l3 | funcExprs.kt:82:1:96:1 | fn | LocalVariableDeclExpr | +| funcExprs.kt:87:5:87:6 | l2 | funcExprs.kt:82:9:96:1 | fn | VarAccess | +| funcExprs.kt:87:5:87:16 | invoke(...) | funcExprs.kt:82:9:96:1 | fn | MethodCall | +| funcExprs.kt:87:8:87:16 | | funcExprs.kt:82:9:96:1 | fn | ImplicitCoercionToUnitExpr | +| funcExprs.kt:87:8:87:16 | Unit | funcExprs.kt:82:9:96:1 | fn | TypeAccess | +| funcExprs.kt:87:15:87:15 | 5 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral | +| funcExprs.kt:89:5:90:69 | l3 | funcExprs.kt:82:9:96:1 | fn | LocalVariableDeclExpr | | funcExprs.kt:90:15:90:69 | 0 | funcExprs.kt:90:15:90:69 | invoke | IntegerLiteral | | funcExprs.kt:90:15:90:69 | 1 | funcExprs.kt:90:15:90:69 | invoke | IntegerLiteral | | funcExprs.kt:90:15:90:69 | 2 | funcExprs.kt:90:15:90:69 | invoke | IntegerLiteral | @@ -3330,7 +3334,7 @@ | funcExprs.kt:90:15:90:69 | (...)... | funcExprs.kt:90:15:90:69 | invoke | CastExpr | | funcExprs.kt:90:15:90:69 | (...)... | funcExprs.kt:90:15:90:69 | invoke | CastExpr | | funcExprs.kt:90:15:90:69 | (...)... | funcExprs.kt:90:15:90:69 | invoke | CastExpr | -| funcExprs.kt:90:15:90:69 | ...->... | funcExprs.kt:82:1:96:1 | fn | LambdaExpr | +| funcExprs.kt:90:15:90:69 | ...->... | funcExprs.kt:82:9:96:1 | fn | LambdaExpr | | funcExprs.kt:90:15:90:69 | ...[...] | funcExprs.kt:90:15:90:69 | invoke | ArrayAccess | | funcExprs.kt:90:15:90:69 | ...[...] | funcExprs.kt:90:15:90:69 | invoke | ArrayAccess | | funcExprs.kt:90:15:90:69 | ...[...] | funcExprs.kt:90:15:90:69 | invoke | ArrayAccess | @@ -3354,9 +3358,9 @@ | funcExprs.kt:90:15:90:69 | ...[...] | funcExprs.kt:90:15:90:69 | invoke | ArrayAccess | | funcExprs.kt:90:15:90:69 | ...[...] | funcExprs.kt:90:15:90:69 | invoke | ArrayAccess | | funcExprs.kt:90:15:90:69 | ...[...] | funcExprs.kt:90:15:90:69 | invoke | ArrayAccess | -| funcExprs.kt:90:15:90:69 | FunctionN | funcExprs.kt:82:1:96:1 | fn | TypeAccess | +| funcExprs.kt:90:15:90:69 | FunctionN | funcExprs.kt:82:9:96:1 | fn | TypeAccess | | funcExprs.kt:90:15:90:69 | String | file://:0:0:0:0 | | TypeAccess | -| funcExprs.kt:90:15:90:69 | String | funcExprs.kt:82:1:96:1 | fn | TypeAccess | +| funcExprs.kt:90:15:90:69 | String | funcExprs.kt:82:9:96:1 | fn | TypeAccess | | funcExprs.kt:90:15:90:69 | a0 | funcExprs.kt:90:15:90:69 | invoke | VarAccess | | funcExprs.kt:90:15:90:69 | a0 | funcExprs.kt:90:15:90:69 | invoke | VarAccess | | funcExprs.kt:90:15:90:69 | a0 | funcExprs.kt:90:15:90:69 | invoke | VarAccess | @@ -3429,64 +3433,64 @@ | funcExprs.kt:90:59:90:59 | int | file://:0:0:0:0 | | TypeAccess | | funcExprs.kt:90:61:90:61 | int | file://:0:0:0:0 | | TypeAccess | | funcExprs.kt:90:67:90:68 | "" | funcExprs.kt:90:15:90:69 | invoke | StringLiteral | -| funcExprs.kt:91:5:91:6 | l3 | funcExprs.kt:82:1:96:1 | fn | VarAccess | -| funcExprs.kt:91:5:91:60 | 23 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral | -| funcExprs.kt:91:5:91:60 | Object | funcExprs.kt:82:1:96:1 | fn | TypeAccess | -| funcExprs.kt:91:5:91:60 | invoke(...) | funcExprs.kt:82:1:96:1 | fn | MethodCall | -| funcExprs.kt:91:5:91:60 | new Object[] | funcExprs.kt:82:1:96:1 | fn | ArrayCreationExpr | -| funcExprs.kt:91:5:91:60 | {...} | funcExprs.kt:82:1:96:1 | fn | ArrayInit | -| funcExprs.kt:91:8:91:60 | | funcExprs.kt:82:1:96:1 | fn | ImplicitCoercionToUnitExpr | -| funcExprs.kt:91:8:91:60 | Unit | funcExprs.kt:82:1:96:1 | fn | TypeAccess | -| funcExprs.kt:91:15:91:15 | 1 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral | -| funcExprs.kt:91:17:91:17 | 2 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral | -| funcExprs.kt:91:19:91:19 | 3 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral | -| funcExprs.kt:91:21:91:21 | 4 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral | -| funcExprs.kt:91:23:91:23 | 5 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral | -| funcExprs.kt:91:25:91:25 | 6 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral | -| funcExprs.kt:91:27:91:27 | 7 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral | -| funcExprs.kt:91:29:91:29 | 8 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral | -| funcExprs.kt:91:31:91:31 | 9 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral | -| funcExprs.kt:91:33:91:33 | 0 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral | -| funcExprs.kt:91:35:91:35 | 1 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral | -| funcExprs.kt:91:37:91:37 | 2 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral | -| funcExprs.kt:91:39:91:39 | 3 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral | -| funcExprs.kt:91:41:91:41 | 4 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral | -| funcExprs.kt:91:43:91:43 | 5 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral | -| funcExprs.kt:91:45:91:45 | 6 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral | -| funcExprs.kt:91:47:91:47 | 7 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral | -| funcExprs.kt:91:49:91:49 | 8 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral | -| funcExprs.kt:91:51:91:51 | 9 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral | -| funcExprs.kt:91:53:91:53 | 0 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral | -| funcExprs.kt:91:55:91:55 | 1 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral | -| funcExprs.kt:91:57:91:57 | 2 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral | -| funcExprs.kt:91:59:91:59 | 3 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral | -| funcExprs.kt:93:5:94:67 | l4 | funcExprs.kt:82:1:96:1 | fn | LocalVariableDeclExpr | -| funcExprs.kt:94:15:94:67 | ...->... | funcExprs.kt:82:1:96:1 | fn | LambdaExpr | -| funcExprs.kt:94:15:94:67 | Function22 | funcExprs.kt:82:1:96:1 | fn | TypeAccess | -| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:1:96:1 | fn | TypeAccess | -| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:1:96:1 | fn | TypeAccess | -| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:1:96:1 | fn | TypeAccess | -| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:1:96:1 | fn | TypeAccess | -| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:1:96:1 | fn | TypeAccess | -| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:1:96:1 | fn | TypeAccess | -| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:1:96:1 | fn | TypeAccess | -| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:1:96:1 | fn | TypeAccess | -| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:1:96:1 | fn | TypeAccess | -| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:1:96:1 | fn | TypeAccess | -| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:1:96:1 | fn | TypeAccess | -| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:1:96:1 | fn | TypeAccess | -| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:1:96:1 | fn | TypeAccess | -| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:1:96:1 | fn | TypeAccess | -| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:1:96:1 | fn | TypeAccess | -| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:1:96:1 | fn | TypeAccess | -| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:1:96:1 | fn | TypeAccess | -| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:1:96:1 | fn | TypeAccess | -| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:1:96:1 | fn | TypeAccess | -| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:1:96:1 | fn | TypeAccess | -| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:1:96:1 | fn | TypeAccess | -| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:1:96:1 | fn | TypeAccess | +| funcExprs.kt:91:5:91:6 | l3 | funcExprs.kt:82:9:96:1 | fn | VarAccess | +| funcExprs.kt:91:5:91:60 | 23 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral | +| funcExprs.kt:91:5:91:60 | Object | funcExprs.kt:82:9:96:1 | fn | TypeAccess | +| funcExprs.kt:91:5:91:60 | invoke(...) | funcExprs.kt:82:9:96:1 | fn | MethodCall | +| funcExprs.kt:91:5:91:60 | new Object[] | funcExprs.kt:82:9:96:1 | fn | ArrayCreationExpr | +| funcExprs.kt:91:5:91:60 | {...} | funcExprs.kt:82:9:96:1 | fn | ArrayInit | +| funcExprs.kt:91:8:91:60 | | funcExprs.kt:82:9:96:1 | fn | ImplicitCoercionToUnitExpr | +| funcExprs.kt:91:8:91:60 | Unit | funcExprs.kt:82:9:96:1 | fn | TypeAccess | +| funcExprs.kt:91:15:91:15 | 1 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral | +| funcExprs.kt:91:17:91:17 | 2 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral | +| funcExprs.kt:91:19:91:19 | 3 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral | +| funcExprs.kt:91:21:91:21 | 4 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral | +| funcExprs.kt:91:23:91:23 | 5 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral | +| funcExprs.kt:91:25:91:25 | 6 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral | +| funcExprs.kt:91:27:91:27 | 7 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral | +| funcExprs.kt:91:29:91:29 | 8 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral | +| funcExprs.kt:91:31:91:31 | 9 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral | +| funcExprs.kt:91:33:91:33 | 0 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral | +| funcExprs.kt:91:35:91:35 | 1 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral | +| funcExprs.kt:91:37:91:37 | 2 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral | +| funcExprs.kt:91:39:91:39 | 3 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral | +| funcExprs.kt:91:41:91:41 | 4 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral | +| funcExprs.kt:91:43:91:43 | 5 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral | +| funcExprs.kt:91:45:91:45 | 6 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral | +| funcExprs.kt:91:47:91:47 | 7 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral | +| funcExprs.kt:91:49:91:49 | 8 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral | +| funcExprs.kt:91:51:91:51 | 9 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral | +| funcExprs.kt:91:53:91:53 | 0 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral | +| funcExprs.kt:91:55:91:55 | 1 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral | +| funcExprs.kt:91:57:91:57 | 2 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral | +| funcExprs.kt:91:59:91:59 | 3 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral | +| funcExprs.kt:93:5:94:67 | l4 | funcExprs.kt:82:9:96:1 | fn | LocalVariableDeclExpr | +| funcExprs.kt:94:15:94:67 | ...->... | funcExprs.kt:82:9:96:1 | fn | LambdaExpr | +| funcExprs.kt:94:15:94:67 | Function22 | funcExprs.kt:82:9:96:1 | fn | TypeAccess | +| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess | +| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess | +| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess | +| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess | +| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess | +| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess | +| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess | +| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess | +| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess | +| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess | +| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess | +| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess | +| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess | +| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess | +| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess | +| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess | +| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess | +| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess | +| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess | +| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess | +| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess | +| funcExprs.kt:94:15:94:67 | Integer | funcExprs.kt:82:9:96:1 | fn | TypeAccess | | funcExprs.kt:94:15:94:67 | String | file://:0:0:0:0 | | TypeAccess | -| funcExprs.kt:94:15:94:67 | String | funcExprs.kt:82:1:96:1 | fn | TypeAccess | +| funcExprs.kt:94:15:94:67 | String | funcExprs.kt:82:9:96:1 | fn | TypeAccess | | funcExprs.kt:94:17:94:17 | int | file://:0:0:0:0 | | TypeAccess | | funcExprs.kt:94:19:94:19 | int | file://:0:0:0:0 | | TypeAccess | | funcExprs.kt:94:21:94:21 | int | file://:0:0:0:0 | | TypeAccess | @@ -3510,32 +3514,32 @@ | funcExprs.kt:94:57:94:57 | int | file://:0:0:0:0 | | TypeAccess | | funcExprs.kt:94:59:94:59 | int | file://:0:0:0:0 | | TypeAccess | | funcExprs.kt:94:65:94:66 | "" | funcExprs.kt:94:15:94:67 | invoke | StringLiteral | -| funcExprs.kt:95:5:95:6 | l4 | funcExprs.kt:82:1:96:1 | fn | VarAccess | -| funcExprs.kt:95:5:95:58 | invoke(...) | funcExprs.kt:82:1:96:1 | fn | MethodCall | -| funcExprs.kt:95:8:95:58 | | funcExprs.kt:82:1:96:1 | fn | ImplicitCoercionToUnitExpr | -| funcExprs.kt:95:8:95:58 | Unit | funcExprs.kt:82:1:96:1 | fn | TypeAccess | -| funcExprs.kt:95:15:95:15 | 1 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral | -| funcExprs.kt:95:17:95:17 | 2 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral | -| funcExprs.kt:95:19:95:19 | 3 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral | -| funcExprs.kt:95:21:95:21 | 4 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral | -| funcExprs.kt:95:23:95:23 | 5 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral | -| funcExprs.kt:95:25:95:25 | 6 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral | -| funcExprs.kt:95:27:95:27 | 7 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral | -| funcExprs.kt:95:29:95:29 | 8 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral | -| funcExprs.kt:95:31:95:31 | 9 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral | -| funcExprs.kt:95:33:95:33 | 0 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral | -| funcExprs.kt:95:35:95:35 | 1 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral | -| funcExprs.kt:95:37:95:37 | 2 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral | -| funcExprs.kt:95:39:95:39 | 3 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral | -| funcExprs.kt:95:41:95:41 | 4 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral | -| funcExprs.kt:95:43:95:43 | 5 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral | -| funcExprs.kt:95:45:95:45 | 6 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral | -| funcExprs.kt:95:47:95:47 | 7 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral | -| funcExprs.kt:95:49:95:49 | 8 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral | -| funcExprs.kt:95:51:95:51 | 9 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral | -| funcExprs.kt:95:53:95:53 | 0 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral | -| funcExprs.kt:95:55:95:55 | 1 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral | -| funcExprs.kt:95:57:95:57 | 2 | funcExprs.kt:82:1:96:1 | fn | IntegerLiteral | +| funcExprs.kt:95:5:95:6 | l4 | funcExprs.kt:82:9:96:1 | fn | VarAccess | +| funcExprs.kt:95:5:95:58 | invoke(...) | funcExprs.kt:82:9:96:1 | fn | MethodCall | +| funcExprs.kt:95:8:95:58 | | funcExprs.kt:82:9:96:1 | fn | ImplicitCoercionToUnitExpr | +| funcExprs.kt:95:8:95:58 | Unit | funcExprs.kt:82:9:96:1 | fn | TypeAccess | +| funcExprs.kt:95:15:95:15 | 1 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral | +| funcExprs.kt:95:17:95:17 | 2 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral | +| funcExprs.kt:95:19:95:19 | 3 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral | +| funcExprs.kt:95:21:95:21 | 4 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral | +| funcExprs.kt:95:23:95:23 | 5 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral | +| funcExprs.kt:95:25:95:25 | 6 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral | +| funcExprs.kt:95:27:95:27 | 7 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral | +| funcExprs.kt:95:29:95:29 | 8 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral | +| funcExprs.kt:95:31:95:31 | 9 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral | +| funcExprs.kt:95:33:95:33 | 0 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral | +| funcExprs.kt:95:35:95:35 | 1 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral | +| funcExprs.kt:95:37:95:37 | 2 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral | +| funcExprs.kt:95:39:95:39 | 3 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral | +| funcExprs.kt:95:41:95:41 | 4 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral | +| funcExprs.kt:95:43:95:43 | 5 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral | +| funcExprs.kt:95:45:95:45 | 6 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral | +| funcExprs.kt:95:47:95:47 | 7 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral | +| funcExprs.kt:95:49:95:49 | 8 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral | +| funcExprs.kt:95:51:95:51 | 9 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral | +| funcExprs.kt:95:53:95:53 | 0 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral | +| funcExprs.kt:95:55:95:55 | 1 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral | +| funcExprs.kt:95:57:95:57 | 2 | funcExprs.kt:82:9:96:1 | fn | IntegerLiteral | | kFunctionInvoke.kt:4:5:4:24 | Unit | file://:0:0:0:0 | | TypeAccess | | kFunctionInvoke.kt:4:11:4:19 | String | file://:0:0:0:0 | | TypeAccess | | kFunctionInvoke.kt:7:1:10:1 | Unit | file://:0:0:0:0 | | TypeAccess | @@ -4254,20 +4258,20 @@ | samConversion.kt:46:39:46:42 | true | samConversion.kt:46:32:46:44 | invoke | BooleanLiteral | | samConversion.kt:50:5:50:25 | boolean | file://:0:0:0:0 | | TypeAccess | | samConversion.kt:50:12:50:15 | T | file://:0:0:0:0 | | TypeAccess | -| samConversion.kt:54:5:54:35 | Unit | file://:0:0:0:0 | | TypeAccess | +| samConversion.kt:54:13:54:35 | Unit | file://:0:0:0:0 | | TypeAccess | | samConversion.kt:54:21:54:26 | int | file://:0:0:0:0 | | TypeAccess | | samConversion.kt:54:29:54:34 | int | file://:0:0:0:0 | | TypeAccess | -| samConversion.kt:57:1:60:1 | Unit | file://:0:0:0:0 | | TypeAccess | -| samConversion.kt:58:5:58:45 | i0 | samConversion.kt:57:1:60:1 | test | LocalVariableDeclExpr | -| samConversion.kt:58:14:58:45 | (...)... | samConversion.kt:57:1:60:1 | test | CastExpr | +| samConversion.kt:57:9:60:1 | Unit | file://:0:0:0:0 | | TypeAccess | +| samConversion.kt:58:5:58:45 | i0 | samConversion.kt:57:9:60:1 | test | LocalVariableDeclExpr | +| samConversion.kt:58:14:58:45 | (...)... | samConversion.kt:57:9:60:1 | test | CastExpr | | samConversion.kt:58:14:58:45 | ...=... | samConversion.kt:58:14:58:45 | | AssignExpr | | samConversion.kt:58:14:58:45 | | samConversion.kt:58:14:58:45 | | VarAccess | | samConversion.kt:58:14:58:45 | | samConversion.kt:58:14:58:45 | fn1 | VarAccess | | samConversion.kt:58:14:58:45 | Function2 | file://:0:0:0:0 | | TypeAccess | | samConversion.kt:58:14:58:45 | Integer | file://:0:0:0:0 | | TypeAccess | | samConversion.kt:58:14:58:45 | Integer | file://:0:0:0:0 | | TypeAccess | -| samConversion.kt:58:14:58:45 | InterfaceFn1Sus | samConversion.kt:57:1:60:1 | test | TypeAccess | -| samConversion.kt:58:14:58:45 | InterfaceFn1Sus | samConversion.kt:57:1:60:1 | test | TypeAccess | +| samConversion.kt:58:14:58:45 | InterfaceFn1Sus | samConversion.kt:57:9:60:1 | test | TypeAccess | +| samConversion.kt:58:14:58:45 | InterfaceFn1Sus | samConversion.kt:57:9:60:1 | test | TypeAccess | | samConversion.kt:58:14:58:45 | Unit | file://:0:0:0:0 | | TypeAccess | | samConversion.kt:58:14:58:45 | Unit | file://:0:0:0:0 | | TypeAccess | | samConversion.kt:58:14:58:45 | i | samConversion.kt:58:14:58:45 | fn1 | VarAccess | @@ -4275,22 +4279,22 @@ | samConversion.kt:58:14:58:45 | int | file://:0:0:0:0 | | TypeAccess | | samConversion.kt:58:14:58:45 | invoke(...) | samConversion.kt:58:14:58:45 | fn1 | MethodCall | | samConversion.kt:58:14:58:45 | j | samConversion.kt:58:14:58:45 | fn1 | VarAccess | -| samConversion.kt:58:14:58:45 | new (...) | samConversion.kt:57:1:60:1 | test | ClassInstanceExpr | +| samConversion.kt:58:14:58:45 | new (...) | samConversion.kt:57:9:60:1 | test | ClassInstanceExpr | | samConversion.kt:58:14:58:45 | this | samConversion.kt:58:14:58:45 | | ThisAccess | | samConversion.kt:58:14:58:45 | this. | samConversion.kt:58:14:58:45 | | VarAccess | -| samConversion.kt:58:30:58:45 | ...->... | samConversion.kt:57:1:60:1 | test | LambdaExpr | -| samConversion.kt:58:30:58:45 | Function2 | samConversion.kt:57:1:60:1 | test | TypeAccess | -| samConversion.kt:58:30:58:45 | Integer | samConversion.kt:57:1:60:1 | test | TypeAccess | -| samConversion.kt:58:30:58:45 | Integer | samConversion.kt:57:1:60:1 | test | TypeAccess | +| samConversion.kt:58:30:58:45 | ...->... | samConversion.kt:57:9:60:1 | test | LambdaExpr | +| samConversion.kt:58:30:58:45 | Function2 | samConversion.kt:57:9:60:1 | test | TypeAccess | +| samConversion.kt:58:30:58:45 | Integer | samConversion.kt:57:9:60:1 | test | TypeAccess | +| samConversion.kt:58:30:58:45 | Integer | samConversion.kt:57:9:60:1 | test | TypeAccess | | samConversion.kt:58:30:58:45 | Unit | file://:0:0:0:0 | | TypeAccess | -| samConversion.kt:58:30:58:45 | Unit | samConversion.kt:57:1:60:1 | test | TypeAccess | +| samConversion.kt:58:30:58:45 | Unit | samConversion.kt:57:9:60:1 | test | TypeAccess | | samConversion.kt:58:32:58:32 | int | file://:0:0:0:0 | | TypeAccess | | samConversion.kt:58:35:58:35 | int | file://:0:0:0:0 | | TypeAccess | | samConversion.kt:58:40:58:43 | INSTANCE | samConversion.kt:58:30:58:45 | invoke | VarAccess | -| samConversion.kt:59:5:59:6 | i0 | samConversion.kt:57:1:60:1 | test | VarAccess | -| samConversion.kt:59:5:59:15 | fn1(...) | samConversion.kt:57:1:60:1 | test | MethodCall | -| samConversion.kt:59:12:59:12 | 1 | samConversion.kt:57:1:60:1 | test | IntegerLiteral | -| samConversion.kt:59:14:59:14 | 2 | samConversion.kt:57:1:60:1 | test | IntegerLiteral | +| samConversion.kt:59:5:59:6 | i0 | samConversion.kt:57:9:60:1 | test | VarAccess | +| samConversion.kt:59:5:59:15 | fn1(...) | samConversion.kt:57:9:60:1 | test | MethodCall | +| samConversion.kt:59:12:59:12 | 1 | samConversion.kt:57:9:60:1 | test | IntegerLiteral | +| samConversion.kt:59:14:59:14 | 2 | samConversion.kt:57:9:60:1 | test | IntegerLiteral | | samConversion.kt:63:5:63:9 | int | file://:0:0:0:0 | | TypeAccess | | samConversion.kt:63:5:63:9 | this | samConversion.kt:63:5:63:9 | getX | ThisAccess | | samConversion.kt:63:5:63:9 | this.x | samConversion.kt:63:5:63:9 | getX | VarAccess | diff --git a/java/ql/test-kotlin2/library-tests/exprs/funcExprs.expected b/java/ql/test-kotlin2/library-tests/exprs/funcExprs.expected index 94ef616bff83..d4da8d6e0be5 100644 --- a/java/ql/test-kotlin2/library-tests/exprs/funcExprs.expected +++ b/java/ql/test-kotlin2/library-tests/exprs/funcExprs.expected @@ -88,8 +88,8 @@ anon_class_member_modifiers | delegatedProperties.kt:23:29:23:31 | new KProperty0(...) { ... } | delegatedProperties.kt:23:29:23:31 | invoke | override, public | | delegatedProperties.kt:25:64:31:9 | new ReadWriteProperty(...) { ... } | delegatedProperties.kt:26:13:26:24 | getCurValue | final, public | | delegatedProperties.kt:25:64:31:9 | new ReadWriteProperty(...) { ... } | delegatedProperties.kt:26:13:26:24 | setCurValue | final, public | -| delegatedProperties.kt:25:64:31:9 | new ReadWriteProperty(...) { ... } | delegatedProperties.kt:27:13:27:88 | getValue | override, public | -| delegatedProperties.kt:25:64:31:9 | new ReadWriteProperty(...) { ... } | delegatedProperties.kt:28:13:30:13 | setValue | override, public | +| delegatedProperties.kt:25:64:31:9 | new ReadWriteProperty(...) { ... } | delegatedProperties.kt:27:22:27:88 | getValue | override, public | +| delegatedProperties.kt:25:64:31:9 | new ReadWriteProperty(...) { ... } | delegatedProperties.kt:28:22:30:13 | setValue | override, public | | delegatedProperties.kt:33:30:33:47 | new KProperty0(...) { ... } | delegatedProperties.kt:33:30:33:47 | get | override, public | | delegatedProperties.kt:33:30:33:47 | new KProperty0(...) { ... } | delegatedProperties.kt:33:30:33:47 | invoke | override, public | | delegatedProperties.kt:34:31:34:48 | new KMutableProperty0(...) { ... } | delegatedProperties.kt:34:31:34:48 | get | override, public | diff --git a/java/ql/test-kotlin2/library-tests/exprs/unaryOp.expected b/java/ql/test-kotlin2/library-tests/exprs/unaryOp.expected index 487226320cc2..98fd8f545a69 100644 --- a/java/ql/test-kotlin2/library-tests/exprs/unaryOp.expected +++ b/java/ql/test-kotlin2/library-tests/exprs/unaryOp.expected @@ -4,7 +4,7 @@ | exprs.kt:121:14:121:16 | !... | exprs.kt:121:15:121:16 | b1 | | exprs.kt:202:18:202:20 | ...!! | exprs.kt:202:18:202:18 | x | | exprs.kt:211:19:211:21 | ...!! | exprs.kt:211:19:211:19 | s | -| exprs.kt:212:19:212:21 | ...!! | exprs.kt:212:19:212:19 | s | +| exprs.kt:212:19:212:21 | ...!! | exprs.kt:212:19:212:19 | | | exprs.kt:286:5:286:6 | -... | exprs.kt:286:6:286:6 | i | | exprs.kt:287:5:287:6 | +... | exprs.kt:287:6:287:6 | i | | exprs.kt:288:5:288:6 | -... | exprs.kt:288:6:288:6 | d | diff --git a/java/ql/test-kotlin2/library-tests/exprs/unaryOp.ql b/java/ql/test-kotlin2/library-tests/exprs/unaryOp.ql index 9e7359e1e075..bce290e4afc8 100644 --- a/java/ql/test-kotlin2/library-tests/exprs/unaryOp.ql +++ b/java/ql/test-kotlin2/library-tests/exprs/unaryOp.ql @@ -29,7 +29,7 @@ class NoMaybeElement extends MaybeElement { } MaybeElement op(UnaryExpr e) { - if exists(e.getExpr()) then result = TElement(e.getExpr()) else result = TNoElement() + if exists(e.getOperand()) then result = TElement(e.getOperand()) else result = TNoElement() } from Expr e diff --git a/java/ql/test-kotlin2/library-tests/generic-instance-methods/test.expected b/java/ql/test-kotlin2/library-tests/generic-instance-methods/test.expected index 2a6682ec3d85..d44d1d94c097 100644 --- a/java/ql/test-kotlin2/library-tests/generic-instance-methods/test.expected +++ b/java/ql/test-kotlin2/library-tests/generic-instance-methods/test.expected @@ -71,7 +71,7 @@ refTypes | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | getter | getter() | No parameters | String | test.kt:1:1:13:1 | Generic | test.kt:7:3:7:26 | getter | | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | identity | identity(java.lang.String) | String | String | test.kt:1:1:13:1 | Generic | test.kt:6:3:6:35 | identity | | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | identity2 | identity2(java.lang.String) | String | String | test.kt:1:1:13:1 | Generic | test.kt:5:3:5:46 | identity2 | -| file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | privateid | privateid(java.lang.String) | String | String | test.kt:1:1:13:1 | Generic | test.kt:10:3:10:41 | privateid | +| file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | privateid | privateid(java.lang.String) | String | String | test.kt:1:1:13:1 | Generic | test.kt:10:11:10:41 | privateid | | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | setStored | setStored(java.lang.String) | String | void | test.kt:1:1:13:1 | Generic | test.kt:3:3:3:12 | setStored | | file:///!unknown-binary-location/Generic.class:0:0:0:0 | Generic | file:///!unknown-binary-location/Generic.class:0:0:0:0 | setter | setter(java.lang.String) | String | void | test.kt:1:1:13:1 | Generic | test.kt:8:3:8:41 | setter | | test.kt:0:0:0:0 | TestKt | test.kt:15:1:28:1 | user | user() | No parameters | void | test.kt:0:0:0:0 | TestKt | test.kt:15:1:28:1 | user | @@ -81,5 +81,5 @@ refTypes | test.kt:1:1:13:1 | Generic | test.kt:6:3:6:35 | identity | identity(java.lang.Object) | T | T | test.kt:1:1:13:1 | Generic | test.kt:6:3:6:35 | identity | | test.kt:1:1:13:1 | Generic | test.kt:7:3:7:26 | getter | getter() | No parameters | T | test.kt:1:1:13:1 | Generic | test.kt:7:3:7:26 | getter | | test.kt:1:1:13:1 | Generic | test.kt:8:3:8:41 | setter | setter(java.lang.Object) | T | void | test.kt:1:1:13:1 | Generic | test.kt:8:3:8:41 | setter | -| test.kt:1:1:13:1 | Generic | test.kt:10:3:10:41 | privateid | privateid(java.lang.Object) | T | T | test.kt:1:1:13:1 | Generic | test.kt:10:3:10:41 | privateid | +| test.kt:1:1:13:1 | Generic | test.kt:10:11:10:41 | privateid | privateid(java.lang.Object) | T | T | test.kt:1:1:13:1 | Generic | test.kt:10:11:10:41 | privateid | | test.kt:1:1:13:1 | Generic | test.kt:11:3:11:70 | callPrivateId | callPrivateId(Generic) | Generic | String | test.kt:1:1:13:1 | Generic | test.kt:11:3:11:70 | callPrivateId | diff --git a/java/ql/test-kotlin2/library-tests/generic-selective-extraction/test.expected b/java/ql/test-kotlin2/library-tests/generic-selective-extraction/test.expected index fbc7f2519f65..7132c6915e91 100644 --- a/java/ql/test-kotlin2/library-tests/generic-selective-extraction/test.expected +++ b/java/ql/test-kotlin2/library-tests/generic-selective-extraction/test.expected @@ -15,9 +15,9 @@ | Test.kt:1:1:8:1 | TestKt | Test.kt:3:3:3:15 | getField | | Test.kt:1:1:8:1 | TestKt | Test.kt:3:3:3:15 | setField | | Test.kt:1:1:8:1 | TestKt | Test.kt:3:3:3:22 | field | -| Test.kt:1:1:8:1 | TestKt | Test.kt:4:3:5:18 | getRawField | -| Test.kt:1:1:8:1 | TestKt | Test.kt:4:3:5:18 | setRawField | -| Test.kt:1:1:8:1 | TestKt | Test.kt:4:3:5:25 | rawField | +| Test.kt:1:1:8:1 | TestKt | Test.kt:5:3:5:18 | getRawField | +| Test.kt:1:1:8:1 | TestKt | Test.kt:5:3:5:18 | setRawField | +| Test.kt:1:1:8:1 | TestKt | Test.kt:5:3:5:25 | rawField | | Test.kt:1:1:8:1 | TestKt | Test.kt:6:3:6:22 | method | | Test.kt:10:1:10:20 | FieldUsedKt | Test.kt:10:1:10:20 | FieldUsedKt | | Test.kt:11:1:11:23 | RawFieldUsedKt | Test.kt:11:1:11:23 | RawFieldUsedKt | diff --git a/java/ql/test-kotlin2/library-tests/inherited-default-value/test.expected b/java/ql/test-kotlin2/library-tests/inherited-default-value/test.expected index 08da126b9b25..27b9d5d23b7c 100644 --- a/java/ql/test-kotlin2/library-tests/inherited-default-value/test.expected +++ b/java/ql/test-kotlin2/library-tests/inherited-default-value/test.expected @@ -1,2 +1,2 @@ -| test.kt:3:3:3:28 | f(...) | test.kt:3:3:3:28 | f | test.kt:1:1:5:1 | A | -| test.kt:11:16:11:23 | f$default(...) | test.kt:3:3:3:28 | f$default | test.kt:1:1:5:1 | A | +| test.kt:3:8:3:28 | f(...) | test.kt:3:8:3:28 | f | test.kt:1:1:5:1 | A | +| test.kt:11:16:11:23 | f$default(...) | test.kt:3:8:3:28 | f$default | test.kt:1:1:5:1 | A | diff --git a/java/ql/test-kotlin2/library-tests/interface-delegate/test.expected b/java/ql/test-kotlin2/library-tests/interface-delegate/test.expected index a5576a6c0837..f04dc01ae8bb 100644 --- a/java/ql/test-kotlin2/library-tests/interface-delegate/test.expected +++ b/java/ql/test-kotlin2/library-tests/interface-delegate/test.expected @@ -5,4 +5,4 @@ fields | intfDelegate.kt:3:3:3:15 | f | intfDelegate.kt:1:1:5:1 | Intf | | intfDelegate.kt:7:1:10:1 | Concrete | intfDelegate.kt:7:1:10:1 | Concrete | | intfDelegate.kt:7:26:9:1 | | intfDelegate.kt:7:26:9:1 | new Intf(...) { ... } | -| intfDelegate.kt:8:3:8:28 | f | intfDelegate.kt:7:26:9:1 | new Intf(...) { ... } | +| intfDelegate.kt:8:12:8:28 | f | intfDelegate.kt:7:26:9:1 | new Intf(...) { ... } | diff --git a/java/ql/test-kotlin2/library-tests/internal-constructor-called-from-java/test.expected b/java/ql/test-kotlin2/library-tests/internal-constructor-called-from-java/test.expected index 44dbca7993e7..c3eb1d9284f8 100644 --- a/java/ql/test-kotlin2/library-tests/internal-constructor-called-from-java/test.expected +++ b/java/ql/test-kotlin2/library-tests/internal-constructor-called-from-java/test.expected @@ -1 +1 @@ -| User.java:3:31:3:44 | new Test(...) | test.kt:3:3:3:51 | { ... } | +| User.java:3:31:3:44 | new Test(...) | test.kt:3:12:3:51 | { ... } | diff --git a/java/ql/test-kotlin2/library-tests/internal-public-alias/test.expected b/java/ql/test-kotlin2/library-tests/internal-public-alias/test.expected index 09dae53df720..db1728f23352 100644 --- a/java/ql/test-kotlin2/library-tests/internal-public-alias/test.expected +++ b/java/ql/test-kotlin2/library-tests/internal-public-alias/test.expected @@ -1,6 +1,6 @@ | User.java:3:21:3:24 | test | -| test.kt:3:3:3:26 | getInternalVal$main | +| test.kt:3:12:3:26 | getInternalVal$main | | test.kt:6:3:6:36 | getInternalVal | -| test.kt:8:3:8:26 | getInternalVar$main | -| test.kt:8:3:8:26 | setInternalVar$main | -| test.kt:10:3:10:32 | internalFun$main | +| test.kt:8:12:8:26 | getInternalVar$main | +| test.kt:8:12:8:26 | setInternalVar$main | +| test.kt:10:12:10:32 | internalFun$main | diff --git a/java/ql/test-kotlin2/library-tests/java_and_kotlin/test.expected b/java/ql/test-kotlin2/library-tests/java_and_kotlin/test.expected index 845ee4ab7884..3ae886713c31 100644 --- a/java/ql/test-kotlin2/library-tests/java_and_kotlin/test.expected +++ b/java/ql/test-kotlin2/library-tests/java_and_kotlin/test.expected @@ -1,19 +1,19 @@ #select | Java.java:5:3:5:26 | kotlinFun(...) | Kotlin.kt:2:2:4:2 | kotlinFun | -| Java.java:11:11:11:22 | fn0(...) | Kotlin.kt:8:5:8:38 | fn0 | -| Kotlin.kt:13:46:13:51 | fn0(...) | Kotlin.kt:8:5:8:38 | fn0 | -| Kotlin.kt:14:54:14:59 | fn1(...) | Kotlin.kt:9:5:9:46 | fn1 | +| Java.java:11:11:11:22 | fn0(...) | Kotlin.kt:8:10:8:38 | fn0 | +| Kotlin.kt:13:40:13:51 | fn0(...) | Kotlin.kt:8:10:8:38 | fn0 | +| Kotlin.kt:14:48:14:59 | fn1(...) | Kotlin.kt:9:18:9:46 | fn1 | methods | Java.java:4:7:4:13 | javaFun | javaFun() | | Java.java:10:17:10:19 | fn0 | fn0(int) | | Kotlin.kt:2:2:4:2 | kotlinFun | kotlinFun() | -| Kotlin.kt:8:5:8:38 | fn0 | fn0(int) | -| Kotlin.kt:9:5:9:46 | fn1 | fn1(int) | -| Kotlin.kt:13:5:13:51 | fn0 | fn0(int) | -| Kotlin.kt:14:5:14:59 | fn1 | fn1(int) | +| Kotlin.kt:8:10:8:38 | fn0 | fn0(int) | +| Kotlin.kt:9:18:9:46 | fn1 | fn1(int) | +| Kotlin.kt:13:14:13:51 | fn0 | fn0(int) | +| Kotlin.kt:14:22:14:59 | fn1 | fn1(int) | overrides -| Java.java:10:17:10:19 | fn0 | Kotlin.kt:8:5:8:38 | fn0 | -| Kotlin.kt:13:5:13:51 | fn0 | Kotlin.kt:8:5:8:38 | fn0 | -| Kotlin.kt:14:5:14:59 | fn1 | Kotlin.kt:9:5:9:46 | fn1 | +| Java.java:10:17:10:19 | fn0 | Kotlin.kt:8:10:8:38 | fn0 | +| Kotlin.kt:13:14:13:51 | fn0 | Kotlin.kt:8:10:8:38 | fn0 | +| Kotlin.kt:14:22:14:59 | fn1 | Kotlin.kt:9:18:9:46 | fn1 | signature_mismatch -| Kotlin.kt:9:5:9:46 | fn1 | fn1(int) | +| Kotlin.kt:9:18:9:46 | fn1 | fn1(int) | diff --git a/java/ql/test-kotlin2/library-tests/java_and_kotlin_internal/visibility.expected b/java/ql/test-kotlin2/library-tests/java_and_kotlin_internal/visibility.expected index 222e90470fe2..43e5e8eefbe3 100644 --- a/java/ql/test-kotlin2/library-tests/java_and_kotlin_internal/visibility.expected +++ b/java/ql/test-kotlin2/library-tests/java_and_kotlin_internal/visibility.expected @@ -1,16 +1,16 @@ #select -| Kotlin.kt:2:2:3:2 | kotlinFun$main | final | -| Kotlin.kt:2:2:3:2 | kotlinFun$main | internal | -| Kotlin.kt:6:1:6:36 | topLevelKotlinFun | final | -| Kotlin.kt:6:1:6:36 | topLevelKotlinFun | internal | -| Kotlin.kt:6:1:6:36 | topLevelKotlinFun | static | +| Kotlin.kt:2:11:3:2 | kotlinFun$main | final | +| Kotlin.kt:2:11:3:2 | kotlinFun$main | internal | +| Kotlin.kt:6:10:6:36 | topLevelKotlinFun | final | +| Kotlin.kt:6:10:6:36 | topLevelKotlinFun | internal | +| Kotlin.kt:6:10:6:36 | topLevelKotlinFun | static | isPublic isInternal -| Kotlin.kt:2:2:3:2 | kotlinFun$main | -| Kotlin.kt:6:1:6:36 | topLevelKotlinFun | +| Kotlin.kt:2:11:3:2 | kotlinFun$main | +| Kotlin.kt:6:10:6:36 | topLevelKotlinFun | modifiers_methods -| file://:0:0:0:0 | final | Kotlin.kt:2:2:3:2 | kotlinFun$main | -| file://:0:0:0:0 | final | Kotlin.kt:6:1:6:36 | topLevelKotlinFun | -| file://:0:0:0:0 | internal | Kotlin.kt:2:2:3:2 | kotlinFun$main | -| file://:0:0:0:0 | internal | Kotlin.kt:6:1:6:36 | topLevelKotlinFun | -| file://:0:0:0:0 | static | Kotlin.kt:6:1:6:36 | topLevelKotlinFun | +| file://:0:0:0:0 | final | Kotlin.kt:2:11:3:2 | kotlinFun$main | +| file://:0:0:0:0 | final | Kotlin.kt:6:10:6:36 | topLevelKotlinFun | +| file://:0:0:0:0 | internal | Kotlin.kt:2:11:3:2 | kotlinFun$main | +| file://:0:0:0:0 | internal | Kotlin.kt:6:10:6:36 | topLevelKotlinFun | +| file://:0:0:0:0 | static | Kotlin.kt:6:10:6:36 | topLevelKotlinFun | diff --git a/java/ql/test-kotlin2/library-tests/jvmoverloads-annotation/PrintAst.expected b/java/ql/test-kotlin2/library-tests/jvmoverloads-annotation/PrintAst.expected index 6355cc86a7a0..aed31ecc1f84 100644 --- a/java/ql/test-kotlin2/library-tests/jvmoverloads-annotation/PrintAst.expected +++ b/java/ql/test-kotlin2/library-tests/jvmoverloads-annotation/PrintAst.expected @@ -6,8 +6,8 @@ test.kt: # 1| 5: [BlockStmt] { ... } # 1| 0: [ReturnStmt] return ... # 1| 0: [StringLiteral] "Hello world" -# 44| 2: [ExtensionMethod] testExtensionFunction -# 44| 3: [TypeAccess] int +# 45| 2: [ExtensionMethod] testExtensionFunction +# 45| 3: [TypeAccess] int #-----| 4: (Parameters) # 45| 0: [Parameter] # 45| 0: [TypeAccess] Test @@ -19,10 +19,10 @@ test.kt: # 45| 0: [TypeAccess] double # 45| 4: [Parameter] e # 45| 0: [TypeAccess] boolean -# 44| 5: [BlockStmt] { ... } -# 44| 0: [ReturnStmt] return ... -# 44| 0: [MethodCall] testExtensionFunction$default(...) -# 44| -1: [TypeAccess] TestKt +# 45| 5: [BlockStmt] { ... } +# 45| 0: [ReturnStmt] return ... +# 45| 0: [MethodCall] testExtensionFunction$default(...) +# 45| -1: [TypeAccess] TestKt # 0| 0: [ExtensionReceiverAccess] this # 0| 1: [VarAccess] a # 0| 2: [VarAccess] b @@ -31,10 +31,10 @@ test.kt: # 0| 5: [VarAccess] e # 1| 6: [IntegerLiteral] 23 # 1| 7: [NullLiteral] null -# 44| 3: [ExtensionMethod] testExtensionFunction +# 45| 3: [ExtensionMethod] testExtensionFunction #-----| 1: (Annotations) # 44| 1: [Annotation] JvmOverloads -# 44| 3: [TypeAccess] int +# 45| 3: [TypeAccess] int #-----| 4: (Parameters) # 45| 0: [Parameter] # 45| 0: [TypeAccess] Test @@ -51,8 +51,8 @@ test.kt: # 45| 5: [BlockStmt] { ... } # 45| 0: [ReturnStmt] return ... # 45| 0: [VarAccess] a -# 44| 4: [ExtensionMethod] testExtensionFunction -# 44| 3: [TypeAccess] int +# 45| 4: [ExtensionMethod] testExtensionFunction +# 45| 3: [TypeAccess] int #-----| 4: (Parameters) # 45| 0: [Parameter] # 45| 0: [TypeAccess] Test @@ -62,10 +62,10 @@ test.kt: # 45| 0: [TypeAccess] double # 45| 3: [Parameter] e # 45| 0: [TypeAccess] boolean -# 44| 5: [BlockStmt] { ... } -# 44| 0: [ReturnStmt] return ... -# 44| 0: [MethodCall] testExtensionFunction$default(...) -# 44| -1: [TypeAccess] TestKt +# 45| 5: [BlockStmt] { ... } +# 45| 0: [ReturnStmt] return ... +# 45| 0: [MethodCall] testExtensionFunction$default(...) +# 45| -1: [TypeAccess] TestKt # 0| 0: [ExtensionReceiverAccess] this # 0| 1: [VarAccess] a # 1| 2: [NullLiteral] null @@ -74,63 +74,63 @@ test.kt: # 0| 5: [VarAccess] e # 1| 6: [IntegerLiteral] 21 # 1| 7: [NullLiteral] null -# 44| 5: [ExtensionMethod] testExtensionFunction$default -# 44| 3: [TypeAccess] int +# 45| 5: [ExtensionMethod] testExtensionFunction$default +# 45| 3: [TypeAccess] int #-----| 4: (Parameters) -# 44| 0: [Parameter] p0 -# 44| 0: [TypeAccess] Test -# 44| 1: [Parameter] p1 -# 44| 0: [TypeAccess] int -# 44| 2: [Parameter] p2 -# 44| 0: [TypeAccess] String -# 44| 3: [Parameter] p3 -# 44| 0: [TypeAccess] double -# 44| 4: [Parameter] p4 -# 44| 0: [TypeAccess] float -# 44| 5: [Parameter] p5 -# 44| 0: [TypeAccess] boolean -# 44| 6: [Parameter] p6 -# 44| 0: [TypeAccess] int -# 44| 7: [Parameter] p7 -# 44| 0: [TypeAccess] Object -# 44| 5: [BlockStmt] { ... } -# 44| 0: [IfStmt] if (...) -# 44| 0: [EQExpr] ... == ... -# 44| 0: [AndBitwiseExpr] ... & ... -# 44| 0: [IntegerLiteral] 2 -# 44| 1: [VarAccess] p6 -# 44| 1: [IntegerLiteral] 0 -# 44| 1: [ExprStmt] ; -# 44| 0: [AssignExpr] ...=... -# 44| 0: [VarAccess] p2 +# 45| 0: [Parameter] p0 +# 45| 0: [TypeAccess] Test +# 45| 1: [Parameter] p1 +# 45| 0: [TypeAccess] int +# 45| 2: [Parameter] p2 +# 45| 0: [TypeAccess] String +# 45| 3: [Parameter] p3 +# 45| 0: [TypeAccess] double +# 45| 4: [Parameter] p4 +# 45| 0: [TypeAccess] float +# 45| 5: [Parameter] p5 +# 45| 0: [TypeAccess] boolean +# 45| 6: [Parameter] p6 +# 45| 0: [TypeAccess] int +# 45| 7: [Parameter] p7 +# 45| 0: [TypeAccess] Object +# 45| 5: [BlockStmt] { ... } +# 45| 0: [IfStmt] if (...) +# 45| 0: [EQExpr] ... == ... +# 45| 0: [AndBitwiseExpr] ... & ... +# 45| 0: [IntegerLiteral] 2 +# 45| 1: [VarAccess] p6 +# 45| 1: [IntegerLiteral] 0 +# 45| 1: [ExprStmt] ; +# 45| 0: [AssignExpr] ...=... +# 45| 0: [VarAccess] p2 # 45| 1: [MethodCall] getString(...) # 45| -1: [TypeAccess] TestKt -# 44| 1: [IfStmt] if (...) -# 44| 0: [EQExpr] ... == ... -# 44| 0: [AndBitwiseExpr] ... & ... -# 44| 0: [IntegerLiteral] 8 -# 44| 1: [VarAccess] p6 -# 44| 1: [IntegerLiteral] 0 -# 44| 1: [ExprStmt] ; -# 44| 0: [AssignExpr] ...=... -# 44| 0: [VarAccess] p4 +# 45| 1: [IfStmt] if (...) +# 45| 0: [EQExpr] ... == ... +# 45| 0: [AndBitwiseExpr] ... & ... +# 45| 0: [IntegerLiteral] 8 +# 45| 1: [VarAccess] p6 +# 45| 1: [IntegerLiteral] 0 +# 45| 1: [ExprStmt] ; +# 45| 0: [AssignExpr] ...=... +# 45| 0: [VarAccess] p4 # 45| 1: [FloatLiteral] 1.0 -# 44| 2: [ReturnStmt] return ... -# 44| 0: [MethodCall] testExtensionFunction(...) -# 44| -1: [TypeAccess] TestKt -# 44| 0: [ExtensionReceiverAccess] this -# 44| 1: [VarAccess] p1 -# 44| 2: [VarAccess] p2 -# 44| 3: [VarAccess] p3 -# 44| 4: [VarAccess] p4 -# 44| 5: [VarAccess] p5 +# 45| 2: [ReturnStmt] return ... +# 45| 0: [MethodCall] testExtensionFunction(...) +# 45| -1: [TypeAccess] TestKt +# 45| 0: [ExtensionReceiverAccess] this +# 45| 1: [VarAccess] p1 +# 45| 2: [VarAccess] p2 +# 45| 3: [VarAccess] p3 +# 45| 4: [VarAccess] p4 +# 45| 5: [VarAccess] p5 # 3| 2: [Class] Test # 3| 1: [Constructor] Test # 3| 5: [BlockStmt] { ... } # 3| 0: [SuperConstructorInvocationStmt] super(...) # 3| 1: [BlockStmt] { ... } -# 5| 2: [Method] testStaticFunction -# 5| 3: [TypeAccess] int +# 6| 2: [Method] testStaticFunction +# 6| 3: [TypeAccess] int #-----| 4: (Parameters) # 6| 0: [Parameter] a # 6| 0: [TypeAccess] int @@ -140,10 +140,10 @@ test.kt: # 6| 0: [TypeAccess] double # 6| 3: [Parameter] e # 6| 0: [TypeAccess] boolean -# 5| 5: [BlockStmt] { ... } -# 5| 0: [ReturnStmt] return ... -# 5| 0: [MethodCall] testStaticFunction$default(...) -# 5| -1: [TypeAccess] Test +# 6| 5: [BlockStmt] { ... } +# 6| 0: [ReturnStmt] return ... +# 6| 0: [MethodCall] testStaticFunction$default(...) +# 6| -1: [TypeAccess] Test # 0| 0: [VarAccess] a # 0| 1: [VarAccess] b # 0| 2: [VarAccess] c @@ -151,11 +151,11 @@ test.kt: # 0| 4: [VarAccess] e # 1| 5: [IntegerLiteral] 23 # 1| 6: [NullLiteral] null -# 5| 3: [Method] testStaticFunction +# 6| 3: [Method] testStaticFunction #-----| 1: (Annotations) # 5| 1: [Annotation] JvmOverloads # 5| 2: [Annotation] JvmStatic -# 5| 3: [TypeAccess] int +# 6| 3: [TypeAccess] int #-----| 4: (Parameters) # 6| 0: [Parameter] a # 6| 0: [TypeAccess] int @@ -170,8 +170,8 @@ test.kt: # 6| 5: [BlockStmt] { ... } # 6| 0: [ReturnStmt] return ... # 6| 0: [VarAccess] a -# 5| 4: [Method] testStaticFunction -# 5| 3: [TypeAccess] int +# 6| 4: [Method] testStaticFunction +# 6| 3: [TypeAccess] int #-----| 4: (Parameters) # 6| 0: [Parameter] a # 6| 0: [TypeAccess] int @@ -179,10 +179,10 @@ test.kt: # 6| 0: [TypeAccess] double # 6| 2: [Parameter] e # 6| 0: [TypeAccess] boolean -# 5| 5: [BlockStmt] { ... } -# 5| 0: [ReturnStmt] return ... -# 5| 0: [MethodCall] testStaticFunction$default(...) -# 5| -1: [TypeAccess] Test +# 6| 5: [BlockStmt] { ... } +# 6| 0: [ReturnStmt] return ... +# 6| 0: [MethodCall] testStaticFunction$default(...) +# 6| -1: [TypeAccess] Test # 0| 0: [VarAccess] a # 1| 1: [NullLiteral] null # 0| 2: [VarAccess] c @@ -190,55 +190,55 @@ test.kt: # 0| 4: [VarAccess] e # 1| 5: [IntegerLiteral] 21 # 1| 6: [NullLiteral] null -# 5| 5: [Method] testStaticFunction$default -# 5| 3: [TypeAccess] int +# 6| 5: [Method] testStaticFunction$default +# 6| 3: [TypeAccess] int #-----| 4: (Parameters) -# 5| 0: [Parameter] p0 -# 5| 0: [TypeAccess] int -# 5| 1: [Parameter] p1 -# 5| 0: [TypeAccess] String -# 5| 2: [Parameter] p2 -# 5| 0: [TypeAccess] double -# 5| 3: [Parameter] p3 -# 5| 0: [TypeAccess] float -# 5| 4: [Parameter] p4 -# 5| 0: [TypeAccess] boolean -# 5| 5: [Parameter] p5 -# 5| 0: [TypeAccess] int -# 5| 6: [Parameter] p6 -# 5| 0: [TypeAccess] Object -# 5| 5: [BlockStmt] { ... } -# 5| 0: [IfStmt] if (...) -# 5| 0: [EQExpr] ... == ... -# 5| 0: [AndBitwiseExpr] ... & ... -# 5| 0: [IntegerLiteral] 2 -# 5| 1: [VarAccess] p5 -# 5| 1: [IntegerLiteral] 0 -# 5| 1: [ExprStmt] ; -# 5| 0: [AssignExpr] ...=... -# 5| 0: [VarAccess] p1 +# 6| 0: [Parameter] p0 +# 6| 0: [TypeAccess] int +# 6| 1: [Parameter] p1 +# 6| 0: [TypeAccess] String +# 6| 2: [Parameter] p2 +# 6| 0: [TypeAccess] double +# 6| 3: [Parameter] p3 +# 6| 0: [TypeAccess] float +# 6| 4: [Parameter] p4 +# 6| 0: [TypeAccess] boolean +# 6| 5: [Parameter] p5 +# 6| 0: [TypeAccess] int +# 6| 6: [Parameter] p6 +# 6| 0: [TypeAccess] Object +# 6| 5: [BlockStmt] { ... } +# 6| 0: [IfStmt] if (...) +# 6| 0: [EQExpr] ... == ... +# 6| 0: [AndBitwiseExpr] ... & ... +# 6| 0: [IntegerLiteral] 2 +# 6| 1: [VarAccess] p5 +# 6| 1: [IntegerLiteral] 0 +# 6| 1: [ExprStmt] ; +# 6| 0: [AssignExpr] ...=... +# 6| 0: [VarAccess] p1 # 6| 1: [MethodCall] getString(...) # 6| -1: [TypeAccess] TestKt -# 5| 1: [IfStmt] if (...) -# 5| 0: [EQExpr] ... == ... -# 5| 0: [AndBitwiseExpr] ... & ... -# 5| 0: [IntegerLiteral] 8 -# 5| 1: [VarAccess] p5 -# 5| 1: [IntegerLiteral] 0 -# 5| 1: [ExprStmt] ; -# 5| 0: [AssignExpr] ...=... -# 5| 0: [VarAccess] p3 +# 6| 1: [IfStmt] if (...) +# 6| 0: [EQExpr] ... == ... +# 6| 0: [AndBitwiseExpr] ... & ... +# 6| 0: [IntegerLiteral] 8 +# 6| 1: [VarAccess] p5 +# 6| 1: [IntegerLiteral] 0 +# 6| 1: [ExprStmt] ; +# 6| 0: [AssignExpr] ...=... +# 6| 0: [VarAccess] p3 # 6| 1: [FloatLiteral] 1.0 -# 5| 2: [ReturnStmt] return ... -# 5| 0: [MethodCall] testStaticFunction(...) -# 5| -1: [TypeAccess] Test -# 5| 0: [VarAccess] p0 -# 5| 1: [VarAccess] p1 -# 5| 2: [VarAccess] p2 -# 5| 3: [VarAccess] p3 -# 5| 4: [VarAccess] p4 -# 8| 6: [Method] testMemberFunction -# 8| 3: [TypeAccess] int +# 6| 2: [ReturnStmt] return ... +# 6| 0: [MethodCall] testStaticFunction(...) +# 6| -1: [TypeAccess] Test +# 6| 0: [VarAccess] p0 +# 6| 1: [VarAccess] p1 +# 6| 2: [VarAccess] p2 +# 6| 3: [VarAccess] p3 +# 6| 4: [VarAccess] p4 +# 9| 6: [Method] testMemberFunction +# 9| 3: [TypeAccess] int #-----| 4: (Parameters) # 9| 0: [Parameter] a # 9| 0: [TypeAccess] int @@ -248,10 +248,10 @@ test.kt: # 9| 0: [TypeAccess] double # 9| 3: [Parameter] e # 9| 0: [TypeAccess] boolean -# 8| 5: [BlockStmt] { ... } -# 8| 0: [ReturnStmt] return ... -# 8| 0: [MethodCall] testMemberFunction$default(...) -# 8| -1: [TypeAccess] Test +# 9| 5: [BlockStmt] { ... } +# 9| 0: [ReturnStmt] return ... +# 9| 0: [MethodCall] testMemberFunction$default(...) +# 9| -1: [TypeAccess] Test # 0| 0: [ThisAccess] this # 0| 1: [VarAccess] a # 0| 2: [VarAccess] b @@ -260,10 +260,10 @@ test.kt: # 0| 5: [VarAccess] e # 1| 6: [IntegerLiteral] 23 # 1| 7: [NullLiteral] null -# 8| 7: [Method] testMemberFunction +# 9| 7: [Method] testMemberFunction #-----| 1: (Annotations) # 8| 1: [Annotation] JvmOverloads -# 8| 3: [TypeAccess] int +# 9| 3: [TypeAccess] int #-----| 4: (Parameters) # 9| 0: [Parameter] a # 9| 0: [TypeAccess] int @@ -278,8 +278,8 @@ test.kt: # 9| 5: [BlockStmt] { ... } # 9| 0: [ReturnStmt] return ... # 9| 0: [VarAccess] a -# 8| 8: [Method] testMemberFunction -# 8| 3: [TypeAccess] int +# 9| 8: [Method] testMemberFunction +# 9| 3: [TypeAccess] int #-----| 4: (Parameters) # 9| 0: [Parameter] a # 9| 0: [TypeAccess] int @@ -287,10 +287,10 @@ test.kt: # 9| 0: [TypeAccess] double # 9| 2: [Parameter] e # 9| 0: [TypeAccess] boolean -# 8| 5: [BlockStmt] { ... } -# 8| 0: [ReturnStmt] return ... -# 8| 0: [MethodCall] testMemberFunction$default(...) -# 8| -1: [TypeAccess] Test +# 9| 5: [BlockStmt] { ... } +# 9| 0: [ReturnStmt] return ... +# 9| 0: [MethodCall] testMemberFunction$default(...) +# 9| -1: [TypeAccess] Test # 0| 0: [ThisAccess] this # 0| 1: [VarAccess] a # 1| 2: [NullLiteral] null @@ -299,57 +299,57 @@ test.kt: # 0| 5: [VarAccess] e # 1| 6: [IntegerLiteral] 21 # 1| 7: [NullLiteral] null -# 8| 9: [Method] testMemberFunction$default -# 8| 3: [TypeAccess] int +# 9| 9: [Method] testMemberFunction$default +# 9| 3: [TypeAccess] int #-----| 4: (Parameters) -# 8| 0: [Parameter] p0 -# 8| 0: [TypeAccess] Test -# 8| 1: [Parameter] p1 -# 8| 0: [TypeAccess] int -# 8| 2: [Parameter] p2 -# 8| 0: [TypeAccess] String -# 8| 3: [Parameter] p3 -# 8| 0: [TypeAccess] double -# 8| 4: [Parameter] p4 -# 8| 0: [TypeAccess] float -# 8| 5: [Parameter] p5 -# 8| 0: [TypeAccess] boolean -# 8| 6: [Parameter] p6 -# 8| 0: [TypeAccess] int -# 8| 7: [Parameter] p7 -# 8| 0: [TypeAccess] Object -# 8| 5: [BlockStmt] { ... } -# 8| 0: [IfStmt] if (...) -# 8| 0: [EQExpr] ... == ... -# 8| 0: [AndBitwiseExpr] ... & ... -# 8| 0: [IntegerLiteral] 2 -# 8| 1: [VarAccess] p6 -# 8| 1: [IntegerLiteral] 0 -# 8| 1: [ExprStmt] ; -# 8| 0: [AssignExpr] ...=... -# 8| 0: [VarAccess] p2 +# 9| 0: [Parameter] p0 +# 9| 0: [TypeAccess] Test +# 9| 1: [Parameter] p1 +# 9| 0: [TypeAccess] int +# 9| 2: [Parameter] p2 +# 9| 0: [TypeAccess] String +# 9| 3: [Parameter] p3 +# 9| 0: [TypeAccess] double +# 9| 4: [Parameter] p4 +# 9| 0: [TypeAccess] float +# 9| 5: [Parameter] p5 +# 9| 0: [TypeAccess] boolean +# 9| 6: [Parameter] p6 +# 9| 0: [TypeAccess] int +# 9| 7: [Parameter] p7 +# 9| 0: [TypeAccess] Object +# 9| 5: [BlockStmt] { ... } +# 9| 0: [IfStmt] if (...) +# 9| 0: [EQExpr] ... == ... +# 9| 0: [AndBitwiseExpr] ... & ... +# 9| 0: [IntegerLiteral] 2 +# 9| 1: [VarAccess] p6 +# 9| 1: [IntegerLiteral] 0 +# 9| 1: [ExprStmt] ; +# 9| 0: [AssignExpr] ...=... +# 9| 0: [VarAccess] p2 # 9| 1: [MethodCall] getString(...) # 9| -1: [TypeAccess] TestKt -# 8| 1: [IfStmt] if (...) -# 8| 0: [EQExpr] ... == ... -# 8| 0: [AndBitwiseExpr] ... & ... -# 8| 0: [IntegerLiteral] 8 -# 8| 1: [VarAccess] p6 -# 8| 1: [IntegerLiteral] 0 -# 8| 1: [ExprStmt] ; -# 8| 0: [AssignExpr] ...=... -# 8| 0: [VarAccess] p4 +# 9| 1: [IfStmt] if (...) +# 9| 0: [EQExpr] ... == ... +# 9| 0: [AndBitwiseExpr] ... & ... +# 9| 0: [IntegerLiteral] 8 +# 9| 1: [VarAccess] p6 +# 9| 1: [IntegerLiteral] 0 +# 9| 1: [ExprStmt] ; +# 9| 0: [AssignExpr] ...=... +# 9| 0: [VarAccess] p4 # 9| 1: [FloatLiteral] 1.0 -# 8| 2: [ReturnStmt] return ... -# 8| 0: [MethodCall] testMemberFunction(...) -# 8| -1: [VarAccess] p0 -# 8| 0: [VarAccess] p1 -# 8| 1: [VarAccess] p2 -# 8| 2: [VarAccess] p3 -# 8| 3: [VarAccess] p4 -# 8| 4: [VarAccess] p5 -# 11| 10: [ExtensionMethod] testMemberExtensionFunction -# 11| 3: [TypeAccess] int +# 9| 2: [ReturnStmt] return ... +# 9| 0: [MethodCall] testMemberFunction(...) +# 9| -1: [VarAccess] p0 +# 9| 0: [VarAccess] p1 +# 9| 1: [VarAccess] p2 +# 9| 2: [VarAccess] p3 +# 9| 3: [VarAccess] p4 +# 9| 4: [VarAccess] p5 +# 12| 10: [ExtensionMethod] testMemberExtensionFunction +# 12| 3: [TypeAccess] int #-----| 4: (Parameters) # 12| 0: [Parameter] # 12| 0: [TypeAccess] Test2 @@ -361,10 +361,10 @@ test.kt: # 12| 0: [TypeAccess] double # 12| 4: [Parameter] e # 12| 0: [TypeAccess] boolean -# 11| 5: [BlockStmt] { ... } -# 11| 0: [ReturnStmt] return ... -# 11| 0: [MethodCall] testMemberExtensionFunction$default(...) -# 11| -1: [TypeAccess] Test +# 12| 5: [BlockStmt] { ... } +# 12| 0: [ReturnStmt] return ... +# 12| 0: [MethodCall] testMemberExtensionFunction$default(...) +# 12| -1: [TypeAccess] Test # 0| 0: [ThisAccess] Test.this # 0| 0: [TypeAccess] Test # 0| 1: [ExtensionReceiverAccess] this @@ -375,10 +375,10 @@ test.kt: # 0| 6: [VarAccess] e # 1| 7: [IntegerLiteral] 23 # 1| 8: [NullLiteral] null -# 11| 11: [ExtensionMethod] testMemberExtensionFunction +# 12| 11: [ExtensionMethod] testMemberExtensionFunction #-----| 1: (Annotations) # 11| 1: [Annotation] JvmOverloads -# 11| 3: [TypeAccess] int +# 12| 3: [TypeAccess] int #-----| 4: (Parameters) # 12| 0: [Parameter] # 12| 0: [TypeAccess] Test2 @@ -395,8 +395,8 @@ test.kt: # 12| 5: [BlockStmt] { ... } # 12| 0: [ReturnStmt] return ... # 12| 0: [VarAccess] a -# 11| 12: [ExtensionMethod] testMemberExtensionFunction -# 11| 3: [TypeAccess] int +# 12| 12: [ExtensionMethod] testMemberExtensionFunction +# 12| 3: [TypeAccess] int #-----| 4: (Parameters) # 12| 0: [Parameter] # 12| 0: [TypeAccess] Test2 @@ -406,10 +406,10 @@ test.kt: # 12| 0: [TypeAccess] double # 12| 3: [Parameter] e # 12| 0: [TypeAccess] boolean -# 11| 5: [BlockStmt] { ... } -# 11| 0: [ReturnStmt] return ... -# 11| 0: [MethodCall] testMemberExtensionFunction$default(...) -# 11| -1: [TypeAccess] Test +# 12| 5: [BlockStmt] { ... } +# 12| 0: [ReturnStmt] return ... +# 12| 0: [MethodCall] testMemberExtensionFunction$default(...) +# 12| -1: [TypeAccess] Test # 0| 0: [ThisAccess] Test.this # 0| 0: [TypeAccess] Test # 0| 1: [ExtensionReceiverAccess] this @@ -420,58 +420,58 @@ test.kt: # 0| 6: [VarAccess] e # 1| 7: [IntegerLiteral] 21 # 1| 8: [NullLiteral] null -# 11| 13: [ExtensionMethod] testMemberExtensionFunction$default -# 11| 3: [TypeAccess] int +# 12| 13: [ExtensionMethod] testMemberExtensionFunction$default +# 12| 3: [TypeAccess] int #-----| 4: (Parameters) -# 11| 0: [Parameter] p0 -# 11| 0: [TypeAccess] Test -# 11| 1: [Parameter] p1 -# 11| 0: [TypeAccess] Test2 -# 11| 2: [Parameter] p2 -# 11| 0: [TypeAccess] int -# 11| 3: [Parameter] p3 -# 11| 0: [TypeAccess] String -# 11| 4: [Parameter] p4 -# 11| 0: [TypeAccess] double -# 11| 5: [Parameter] p5 -# 11| 0: [TypeAccess] float -# 11| 6: [Parameter] p6 -# 11| 0: [TypeAccess] boolean -# 11| 7: [Parameter] p7 -# 11| 0: [TypeAccess] int -# 11| 8: [Parameter] p8 -# 11| 0: [TypeAccess] Object -# 11| 5: [BlockStmt] { ... } -# 11| 0: [IfStmt] if (...) -# 11| 0: [EQExpr] ... == ... -# 11| 0: [AndBitwiseExpr] ... & ... -# 11| 0: [IntegerLiteral] 2 -# 11| 1: [VarAccess] p7 -# 11| 1: [IntegerLiteral] 0 -# 11| 1: [ExprStmt] ; -# 11| 0: [AssignExpr] ...=... -# 11| 0: [VarAccess] p3 +# 12| 0: [Parameter] p0 +# 12| 0: [TypeAccess] Test +# 12| 1: [Parameter] p1 +# 12| 0: [TypeAccess] Test2 +# 12| 2: [Parameter] p2 +# 12| 0: [TypeAccess] int +# 12| 3: [Parameter] p3 +# 12| 0: [TypeAccess] String +# 12| 4: [Parameter] p4 +# 12| 0: [TypeAccess] double +# 12| 5: [Parameter] p5 +# 12| 0: [TypeAccess] float +# 12| 6: [Parameter] p6 +# 12| 0: [TypeAccess] boolean +# 12| 7: [Parameter] p7 +# 12| 0: [TypeAccess] int +# 12| 8: [Parameter] p8 +# 12| 0: [TypeAccess] Object +# 12| 5: [BlockStmt] { ... } +# 12| 0: [IfStmt] if (...) +# 12| 0: [EQExpr] ... == ... +# 12| 0: [AndBitwiseExpr] ... & ... +# 12| 0: [IntegerLiteral] 2 +# 12| 1: [VarAccess] p7 +# 12| 1: [IntegerLiteral] 0 +# 12| 1: [ExprStmt] ; +# 12| 0: [AssignExpr] ...=... +# 12| 0: [VarAccess] p3 # 12| 1: [MethodCall] getString(...) # 12| -1: [TypeAccess] TestKt -# 11| 1: [IfStmt] if (...) -# 11| 0: [EQExpr] ... == ... -# 11| 0: [AndBitwiseExpr] ... & ... -# 11| 0: [IntegerLiteral] 8 -# 11| 1: [VarAccess] p7 -# 11| 1: [IntegerLiteral] 0 -# 11| 1: [ExprStmt] ; -# 11| 0: [AssignExpr] ...=... -# 11| 0: [VarAccess] p5 +# 12| 1: [IfStmt] if (...) +# 12| 0: [EQExpr] ... == ... +# 12| 0: [AndBitwiseExpr] ... & ... +# 12| 0: [IntegerLiteral] 8 +# 12| 1: [VarAccess] p7 +# 12| 1: [IntegerLiteral] 0 +# 12| 1: [ExprStmt] ; +# 12| 0: [AssignExpr] ...=... +# 12| 0: [VarAccess] p5 # 12| 1: [FloatLiteral] 1.0 -# 11| 2: [ReturnStmt] return ... -# 11| 0: [MethodCall] testMemberExtensionFunction(...) -# 11| -1: [VarAccess] p0 -# 11| 0: [ExtensionReceiverAccess] this -# 11| 1: [VarAccess] p2 -# 11| 2: [VarAccess] p3 -# 11| 3: [VarAccess] p4 -# 11| 4: [VarAccess] p5 -# 11| 5: [VarAccess] p6 +# 12| 2: [ReturnStmt] return ... +# 12| 0: [MethodCall] testMemberExtensionFunction(...) +# 12| -1: [VarAccess] p0 +# 12| 0: [ExtensionReceiverAccess] this +# 12| 1: [VarAccess] p2 +# 12| 2: [VarAccess] p3 +# 12| 3: [VarAccess] p4 +# 12| 4: [VarAccess] p5 +# 12| 5: [VarAccess] p6 # 16| 3: [Class] Test2 # 16| 1: [Constructor] Test2 #-----| 4: (Parameters) @@ -575,8 +575,8 @@ test.kt: # 18| 5: [BlockStmt] { ... } # 18| 0: [SuperConstructorInvocationStmt] super(...) # 18| 1: [BlockStmt] { ... } -# 20| 2: [Method] testCompanionFunction -# 20| 3: [TypeAccess] int +# 21| 2: [Method] testCompanionFunction +# 21| 3: [TypeAccess] int #-----| 4: (Parameters) # 21| 0: [Parameter] a # 21| 0: [TypeAccess] int @@ -586,10 +586,10 @@ test.kt: # 21| 0: [TypeAccess] double # 21| 3: [Parameter] e # 21| 0: [TypeAccess] boolean -# 20| 5: [BlockStmt] { ... } -# 20| 0: [ReturnStmt] return ... -# 20| 0: [MethodCall] testCompanionFunction$default(...) -# 20| -1: [TypeAccess] Companion +# 21| 5: [BlockStmt] { ... } +# 21| 0: [ReturnStmt] return ... +# 21| 0: [MethodCall] testCompanionFunction$default(...) +# 21| -1: [TypeAccess] Companion # 0| 0: [ThisAccess] this # 0| 1: [VarAccess] a # 0| 2: [VarAccess] b @@ -598,10 +598,10 @@ test.kt: # 0| 5: [VarAccess] e # 1| 6: [IntegerLiteral] 23 # 1| 7: [NullLiteral] null -# 20| 3: [Method] testCompanionFunction +# 21| 3: [Method] testCompanionFunction #-----| 1: (Annotations) # 20| 1: [Annotation] JvmOverloads -# 20| 3: [TypeAccess] int +# 21| 3: [TypeAccess] int #-----| 4: (Parameters) # 21| 0: [Parameter] a # 21| 0: [TypeAccess] int @@ -616,8 +616,8 @@ test.kt: # 21| 5: [BlockStmt] { ... } # 21| 0: [ReturnStmt] return ... # 21| 0: [VarAccess] a -# 20| 4: [Method] testCompanionFunction -# 20| 3: [TypeAccess] int +# 21| 4: [Method] testCompanionFunction +# 21| 3: [TypeAccess] int #-----| 4: (Parameters) # 21| 0: [Parameter] a # 21| 0: [TypeAccess] int @@ -625,10 +625,10 @@ test.kt: # 21| 0: [TypeAccess] double # 21| 2: [Parameter] e # 21| 0: [TypeAccess] boolean -# 20| 5: [BlockStmt] { ... } -# 20| 0: [ReturnStmt] return ... -# 20| 0: [MethodCall] testCompanionFunction$default(...) -# 20| -1: [TypeAccess] Companion +# 21| 5: [BlockStmt] { ... } +# 21| 0: [ReturnStmt] return ... +# 21| 0: [MethodCall] testCompanionFunction$default(...) +# 21| -1: [TypeAccess] Companion # 0| 0: [ThisAccess] this # 0| 1: [VarAccess] a # 1| 2: [NullLiteral] null @@ -637,57 +637,57 @@ test.kt: # 0| 5: [VarAccess] e # 1| 6: [IntegerLiteral] 21 # 1| 7: [NullLiteral] null -# 20| 5: [Method] testCompanionFunction$default -# 20| 3: [TypeAccess] int +# 21| 5: [Method] testCompanionFunction$default +# 21| 3: [TypeAccess] int #-----| 4: (Parameters) -# 20| 0: [Parameter] p0 -# 20| 0: [TypeAccess] Companion -# 20| 1: [Parameter] p1 -# 20| 0: [TypeAccess] int -# 20| 2: [Parameter] p2 -# 20| 0: [TypeAccess] String -# 20| 3: [Parameter] p3 -# 20| 0: [TypeAccess] double -# 20| 4: [Parameter] p4 -# 20| 0: [TypeAccess] float -# 20| 5: [Parameter] p5 -# 20| 0: [TypeAccess] boolean -# 20| 6: [Parameter] p6 -# 20| 0: [TypeAccess] int -# 20| 7: [Parameter] p7 -# 20| 0: [TypeAccess] Object -# 20| 5: [BlockStmt] { ... } -# 20| 0: [IfStmt] if (...) -# 20| 0: [EQExpr] ... == ... -# 20| 0: [AndBitwiseExpr] ... & ... -# 20| 0: [IntegerLiteral] 2 -# 20| 1: [VarAccess] p6 -# 20| 1: [IntegerLiteral] 0 -# 20| 1: [ExprStmt] ; -# 20| 0: [AssignExpr] ...=... -# 20| 0: [VarAccess] p2 +# 21| 0: [Parameter] p0 +# 21| 0: [TypeAccess] Companion +# 21| 1: [Parameter] p1 +# 21| 0: [TypeAccess] int +# 21| 2: [Parameter] p2 +# 21| 0: [TypeAccess] String +# 21| 3: [Parameter] p3 +# 21| 0: [TypeAccess] double +# 21| 4: [Parameter] p4 +# 21| 0: [TypeAccess] float +# 21| 5: [Parameter] p5 +# 21| 0: [TypeAccess] boolean +# 21| 6: [Parameter] p6 +# 21| 0: [TypeAccess] int +# 21| 7: [Parameter] p7 +# 21| 0: [TypeAccess] Object +# 21| 5: [BlockStmt] { ... } +# 21| 0: [IfStmt] if (...) +# 21| 0: [EQExpr] ... == ... +# 21| 0: [AndBitwiseExpr] ... & ... +# 21| 0: [IntegerLiteral] 2 +# 21| 1: [VarAccess] p6 +# 21| 1: [IntegerLiteral] 0 +# 21| 1: [ExprStmt] ; +# 21| 0: [AssignExpr] ...=... +# 21| 0: [VarAccess] p2 # 21| 1: [MethodCall] getString(...) # 21| -1: [TypeAccess] TestKt -# 20| 1: [IfStmt] if (...) -# 20| 0: [EQExpr] ... == ... -# 20| 0: [AndBitwiseExpr] ... & ... -# 20| 0: [IntegerLiteral] 8 -# 20| 1: [VarAccess] p6 -# 20| 1: [IntegerLiteral] 0 -# 20| 1: [ExprStmt] ; -# 20| 0: [AssignExpr] ...=... -# 20| 0: [VarAccess] p4 +# 21| 1: [IfStmt] if (...) +# 21| 0: [EQExpr] ... == ... +# 21| 0: [AndBitwiseExpr] ... & ... +# 21| 0: [IntegerLiteral] 8 +# 21| 1: [VarAccess] p6 +# 21| 1: [IntegerLiteral] 0 +# 21| 1: [ExprStmt] ; +# 21| 0: [AssignExpr] ...=... +# 21| 0: [VarAccess] p4 # 21| 1: [FloatLiteral] 1.0 -# 20| 2: [ReturnStmt] return ... -# 20| 0: [MethodCall] testCompanionFunction(...) -# 20| -1: [VarAccess] p0 -# 20| 0: [VarAccess] p1 -# 20| 1: [VarAccess] p2 -# 20| 2: [VarAccess] p3 -# 20| 3: [VarAccess] p4 -# 20| 4: [VarAccess] p5 -# 23| 6: [Method] testStaticCompanionFunction -# 23| 3: [TypeAccess] int +# 21| 2: [ReturnStmt] return ... +# 21| 0: [MethodCall] testCompanionFunction(...) +# 21| -1: [VarAccess] p0 +# 21| 0: [VarAccess] p1 +# 21| 1: [VarAccess] p2 +# 21| 2: [VarAccess] p3 +# 21| 3: [VarAccess] p4 +# 21| 4: [VarAccess] p5 +# 24| 6: [Method] testStaticCompanionFunction +# 24| 3: [TypeAccess] int #-----| 4: (Parameters) # 24| 0: [Parameter] a # 24| 0: [TypeAccess] int @@ -697,10 +697,10 @@ test.kt: # 24| 0: [TypeAccess] double # 24| 3: [Parameter] e # 24| 0: [TypeAccess] boolean -# 23| 5: [BlockStmt] { ... } -# 23| 0: [ReturnStmt] return ... -# 23| 0: [MethodCall] testStaticCompanionFunction$default(...) -# 23| -1: [TypeAccess] Companion +# 24| 5: [BlockStmt] { ... } +# 24| 0: [ReturnStmt] return ... +# 24| 0: [MethodCall] testStaticCompanionFunction$default(...) +# 24| -1: [TypeAccess] Companion # 0| 0: [ThisAccess] this # 0| 1: [VarAccess] a # 0| 2: [VarAccess] b @@ -709,11 +709,11 @@ test.kt: # 0| 5: [VarAccess] e # 1| 6: [IntegerLiteral] 23 # 1| 7: [NullLiteral] null -# 23| 7: [Method] testStaticCompanionFunction +# 24| 7: [Method] testStaticCompanionFunction #-----| 1: (Annotations) # 23| 1: [Annotation] JvmOverloads # 23| 2: [Annotation] JvmStatic -# 23| 3: [TypeAccess] int +# 24| 3: [TypeAccess] int #-----| 4: (Parameters) # 24| 0: [Parameter] a # 24| 0: [TypeAccess] int @@ -728,8 +728,8 @@ test.kt: # 24| 5: [BlockStmt] { ... } # 24| 0: [ReturnStmt] return ... # 24| 0: [VarAccess] a -# 23| 8: [Method] testStaticCompanionFunction -# 23| 3: [TypeAccess] int +# 24| 8: [Method] testStaticCompanionFunction +# 24| 3: [TypeAccess] int #-----| 4: (Parameters) # 24| 0: [Parameter] a # 24| 0: [TypeAccess] int @@ -737,10 +737,10 @@ test.kt: # 24| 0: [TypeAccess] double # 24| 2: [Parameter] e # 24| 0: [TypeAccess] boolean -# 23| 5: [BlockStmt] { ... } -# 23| 0: [ReturnStmt] return ... -# 23| 0: [MethodCall] testStaticCompanionFunction$default(...) -# 23| -1: [TypeAccess] Companion +# 24| 5: [BlockStmt] { ... } +# 24| 0: [ReturnStmt] return ... +# 24| 0: [MethodCall] testStaticCompanionFunction$default(...) +# 24| -1: [TypeAccess] Companion # 0| 0: [ThisAccess] this # 0| 1: [VarAccess] a # 1| 2: [NullLiteral] null @@ -749,57 +749,57 @@ test.kt: # 0| 5: [VarAccess] e # 1| 6: [IntegerLiteral] 21 # 1| 7: [NullLiteral] null -# 23| 9: [Method] testStaticCompanionFunction$default -# 23| 3: [TypeAccess] int +# 24| 9: [Method] testStaticCompanionFunction$default +# 24| 3: [TypeAccess] int #-----| 4: (Parameters) -# 23| 0: [Parameter] p0 -# 23| 0: [TypeAccess] Companion -# 23| 1: [Parameter] p1 -# 23| 0: [TypeAccess] int -# 23| 2: [Parameter] p2 -# 23| 0: [TypeAccess] String -# 23| 3: [Parameter] p3 -# 23| 0: [TypeAccess] double -# 23| 4: [Parameter] p4 -# 23| 0: [TypeAccess] float -# 23| 5: [Parameter] p5 -# 23| 0: [TypeAccess] boolean -# 23| 6: [Parameter] p6 -# 23| 0: [TypeAccess] int -# 23| 7: [Parameter] p7 -# 23| 0: [TypeAccess] Object -# 23| 5: [BlockStmt] { ... } -# 23| 0: [IfStmt] if (...) -# 23| 0: [EQExpr] ... == ... -# 23| 0: [AndBitwiseExpr] ... & ... -# 23| 0: [IntegerLiteral] 2 -# 23| 1: [VarAccess] p6 -# 23| 1: [IntegerLiteral] 0 -# 23| 1: [ExprStmt] ; -# 23| 0: [AssignExpr] ...=... -# 23| 0: [VarAccess] p2 +# 24| 0: [Parameter] p0 +# 24| 0: [TypeAccess] Companion +# 24| 1: [Parameter] p1 +# 24| 0: [TypeAccess] int +# 24| 2: [Parameter] p2 +# 24| 0: [TypeAccess] String +# 24| 3: [Parameter] p3 +# 24| 0: [TypeAccess] double +# 24| 4: [Parameter] p4 +# 24| 0: [TypeAccess] float +# 24| 5: [Parameter] p5 +# 24| 0: [TypeAccess] boolean +# 24| 6: [Parameter] p6 +# 24| 0: [TypeAccess] int +# 24| 7: [Parameter] p7 +# 24| 0: [TypeAccess] Object +# 24| 5: [BlockStmt] { ... } +# 24| 0: [IfStmt] if (...) +# 24| 0: [EQExpr] ... == ... +# 24| 0: [AndBitwiseExpr] ... & ... +# 24| 0: [IntegerLiteral] 2 +# 24| 1: [VarAccess] p6 +# 24| 1: [IntegerLiteral] 0 +# 24| 1: [ExprStmt] ; +# 24| 0: [AssignExpr] ...=... +# 24| 0: [VarAccess] p2 # 24| 1: [MethodCall] getString(...) # 24| -1: [TypeAccess] TestKt -# 23| 1: [IfStmt] if (...) -# 23| 0: [EQExpr] ... == ... -# 23| 0: [AndBitwiseExpr] ... & ... -# 23| 0: [IntegerLiteral] 8 -# 23| 1: [VarAccess] p6 -# 23| 1: [IntegerLiteral] 0 -# 23| 1: [ExprStmt] ; -# 23| 0: [AssignExpr] ...=... -# 23| 0: [VarAccess] p4 +# 24| 1: [IfStmt] if (...) +# 24| 0: [EQExpr] ... == ... +# 24| 0: [AndBitwiseExpr] ... & ... +# 24| 0: [IntegerLiteral] 8 +# 24| 1: [VarAccess] p6 +# 24| 1: [IntegerLiteral] 0 +# 24| 1: [ExprStmt] ; +# 24| 0: [AssignExpr] ...=... +# 24| 0: [VarAccess] p4 # 24| 1: [FloatLiteral] 1.0 -# 23| 2: [ReturnStmt] return ... -# 23| 0: [MethodCall] testStaticCompanionFunction(...) -# 23| -1: [VarAccess] p0 -# 23| 0: [VarAccess] p1 -# 23| 1: [VarAccess] p2 -# 23| 2: [VarAccess] p3 -# 23| 3: [VarAccess] p4 -# 23| 4: [VarAccess] p5 -# 23| 6: [Method] testStaticCompanionFunction -# 23| 3: [TypeAccess] int +# 24| 2: [ReturnStmt] return ... +# 24| 0: [MethodCall] testStaticCompanionFunction(...) +# 24| -1: [VarAccess] p0 +# 24| 0: [VarAccess] p1 +# 24| 1: [VarAccess] p2 +# 24| 2: [VarAccess] p3 +# 24| 3: [VarAccess] p4 +# 24| 4: [VarAccess] p5 +# 24| 6: [Method] testStaticCompanionFunction +# 24| 3: [TypeAccess] int #-----| 4: (Parameters) # 24| 0: [Parameter] a # 24| 0: [TypeAccess] int @@ -809,10 +809,10 @@ test.kt: # 24| 0: [TypeAccess] double # 24| 3: [Parameter] e # 24| 0: [TypeAccess] boolean -# 23| 5: [BlockStmt] { ... } -# 23| 0: [ReturnStmt] return ... -# 23| 0: [MethodCall] testStaticCompanionFunction$default(...) -# 23| -1: [TypeAccess] Companion +# 24| 5: [BlockStmt] { ... } +# 24| 0: [ReturnStmt] return ... +# 24| 0: [MethodCall] testStaticCompanionFunction$default(...) +# 24| -1: [TypeAccess] Companion # 0| 0: [ThisAccess] this # 0| 1: [VarAccess] a # 0| 2: [VarAccess] b @@ -821,8 +821,8 @@ test.kt: # 0| 5: [VarAccess] e # 1| 6: [IntegerLiteral] 23 # 1| 7: [NullLiteral] null -# 23| 7: [Method] testStaticCompanionFunction -# 23| 3: [TypeAccess] int +# 24| 7: [Method] testStaticCompanionFunction +# 24| 3: [TypeAccess] int #-----| 4: (Parameters) # 24| 0: [Parameter] a # 24| 0: [TypeAccess] int @@ -834,18 +834,18 @@ test.kt: # 24| 0: [TypeAccess] float # 24| 4: [Parameter] e # 24| 0: [TypeAccess] boolean -# 23| 5: [BlockStmt] { ... } -# 23| 0: [ReturnStmt] return ... -# 23| 0: [MethodCall] testStaticCompanionFunction(...) -# 23| -1: [VarAccess] Test2.Companion -# 23| -1: [TypeAccess] Test2 -# 23| 0: [VarAccess] a -# 23| 1: [VarAccess] b -# 23| 2: [VarAccess] c -# 23| 3: [VarAccess] d -# 23| 4: [VarAccess] e -# 23| 8: [Method] testStaticCompanionFunction -# 23| 3: [TypeAccess] int +# 24| 5: [BlockStmt] { ... } +# 24| 0: [ReturnStmt] return ... +# 24| 0: [MethodCall] testStaticCompanionFunction(...) +# 24| -1: [VarAccess] Test2.Companion +# 24| -1: [TypeAccess] Test2 +# 24| 0: [VarAccess] a +# 24| 1: [VarAccess] b +# 24| 2: [VarAccess] c +# 24| 3: [VarAccess] d +# 24| 4: [VarAccess] e +# 24| 8: [Method] testStaticCompanionFunction +# 24| 3: [TypeAccess] int #-----| 4: (Parameters) # 24| 0: [Parameter] a # 24| 0: [TypeAccess] int @@ -853,10 +853,10 @@ test.kt: # 24| 0: [TypeAccess] double # 24| 2: [Parameter] e # 24| 0: [TypeAccess] boolean -# 23| 5: [BlockStmt] { ... } -# 23| 0: [ReturnStmt] return ... -# 23| 0: [MethodCall] testStaticCompanionFunction$default(...) -# 23| -1: [TypeAccess] Companion +# 24| 5: [BlockStmt] { ... } +# 24| 0: [ReturnStmt] return ... +# 24| 0: [MethodCall] testStaticCompanionFunction$default(...) +# 24| -1: [TypeAccess] Companion # 0| 0: [ThisAccess] this # 0| 1: [VarAccess] a # 1| 2: [NullLiteral] null @@ -953,17 +953,17 @@ test.kt: # 0| 3: [VarAccess] d # 1| 4: [IntegerLiteral] 11 # 1| 5: [NullLiteral] null -# 32| 5: [Method] testMemberFunction -# 32| 3: [TypeAccess] int +# 33| 5: [Method] testMemberFunction +# 33| 3: [TypeAccess] int #-----| 4: (Parameters) # 33| 0: [Parameter] b # 33| 0: [TypeAccess] T # 33| 1: [Parameter] d # 33| 0: [TypeAccess] T -# 32| 5: [BlockStmt] { ... } -# 32| 0: [ReturnStmt] return ... -# 32| 0: [MethodCall] testMemberFunction$default(...) -# 32| -1: [TypeAccess] GenericTest<> +# 33| 5: [BlockStmt] { ... } +# 33| 0: [ReturnStmt] return ... +# 33| 0: [MethodCall] testMemberFunction$default(...) +# 33| -1: [TypeAccess] GenericTest<> # 0| 0: [ThisAccess] this # 1| 1: [IntegerLiteral] 0 # 0| 2: [VarAccess] b @@ -971,10 +971,10 @@ test.kt: # 0| 4: [VarAccess] d # 1| 5: [IntegerLiteral] 10 # 1| 6: [NullLiteral] null -# 32| 6: [Method] testMemberFunction +# 33| 6: [Method] testMemberFunction #-----| 1: (Annotations) # 32| 1: [Annotation] JvmOverloads -# 32| 3: [TypeAccess] int +# 33| 3: [TypeAccess] int #-----| 4: (Parameters) # 33| 0: [Parameter] a # 33| 0: [TypeAccess] int @@ -987,8 +987,8 @@ test.kt: # 33| 5: [BlockStmt] { ... } # 33| 0: [ReturnStmt] return ... # 33| 0: [VarAccess] a -# 32| 7: [Method] testMemberFunction -# 32| 3: [TypeAccess] int +# 33| 7: [Method] testMemberFunction +# 33| 3: [TypeAccess] int #-----| 4: (Parameters) # 33| 0: [Parameter] a # 33| 0: [TypeAccess] int @@ -996,10 +996,10 @@ test.kt: # 33| 0: [TypeAccess] T # 33| 2: [Parameter] d # 33| 0: [TypeAccess] T -# 32| 5: [BlockStmt] { ... } -# 32| 0: [ReturnStmt] return ... -# 32| 0: [MethodCall] testMemberFunction$default(...) -# 32| -1: [TypeAccess] GenericTest<> +# 33| 5: [BlockStmt] { ... } +# 33| 0: [ReturnStmt] return ... +# 33| 0: [MethodCall] testMemberFunction$default(...) +# 33| -1: [TypeAccess] GenericTest<> # 0| 0: [ThisAccess] this # 0| 1: [VarAccess] a # 0| 2: [VarAccess] b @@ -1007,51 +1007,51 @@ test.kt: # 0| 4: [VarAccess] d # 1| 5: [IntegerLiteral] 11 # 1| 6: [NullLiteral] null -# 32| 8: [Method] testMemberFunction$default -# 32| 3: [TypeAccess] int +# 33| 8: [Method] testMemberFunction$default +# 33| 3: [TypeAccess] int #-----| 4: (Parameters) -# 32| 0: [Parameter] p0 -# 32| 0: [TypeAccess] GenericTest<> -# 32| 1: [Parameter] p1 -# 32| 0: [TypeAccess] int -# 32| 2: [Parameter] p2 -# 32| 0: [TypeAccess] Object -# 32| 3: [Parameter] p3 -# 32| 0: [TypeAccess] String -# 32| 4: [Parameter] p4 -# 32| 0: [TypeAccess] Object -# 32| 5: [Parameter] p5 -# 32| 0: [TypeAccess] int -# 32| 6: [Parameter] p6 -# 32| 0: [TypeAccess] Object -# 32| 5: [BlockStmt] { ... } -# 32| 0: [IfStmt] if (...) -# 32| 0: [EQExpr] ... == ... -# 32| 0: [AndBitwiseExpr] ... & ... -# 32| 0: [IntegerLiteral] 1 -# 32| 1: [VarAccess] p5 -# 32| 1: [IntegerLiteral] 0 -# 32| 1: [ExprStmt] ; -# 32| 0: [AssignExpr] ...=... -# 32| 0: [VarAccess] p1 +# 33| 0: [Parameter] p0 +# 33| 0: [TypeAccess] GenericTest<> +# 33| 1: [Parameter] p1 +# 33| 0: [TypeAccess] int +# 33| 2: [Parameter] p2 +# 33| 0: [TypeAccess] Object +# 33| 3: [Parameter] p3 +# 33| 0: [TypeAccess] String +# 33| 4: [Parameter] p4 +# 33| 0: [TypeAccess] Object +# 33| 5: [Parameter] p5 +# 33| 0: [TypeAccess] int +# 33| 6: [Parameter] p6 +# 33| 0: [TypeAccess] Object +# 33| 5: [BlockStmt] { ... } +# 33| 0: [IfStmt] if (...) +# 33| 0: [EQExpr] ... == ... +# 33| 0: [AndBitwiseExpr] ... & ... +# 33| 0: [IntegerLiteral] 1 +# 33| 1: [VarAccess] p5 +# 33| 1: [IntegerLiteral] 0 +# 33| 1: [ExprStmt] ; +# 33| 0: [AssignExpr] ...=... +# 33| 0: [VarAccess] p1 # 33| 1: [IntegerLiteral] 1 -# 32| 1: [IfStmt] if (...) -# 32| 0: [EQExpr] ... == ... -# 32| 0: [AndBitwiseExpr] ... & ... -# 32| 0: [IntegerLiteral] 4 -# 32| 1: [VarAccess] p5 -# 32| 1: [IntegerLiteral] 0 -# 32| 1: [ExprStmt] ; -# 32| 0: [AssignExpr] ...=... -# 32| 0: [VarAccess] p3 +# 33| 1: [IfStmt] if (...) +# 33| 0: [EQExpr] ... == ... +# 33| 0: [AndBitwiseExpr] ... & ... +# 33| 0: [IntegerLiteral] 4 +# 33| 1: [VarAccess] p5 +# 33| 1: [IntegerLiteral] 0 +# 33| 1: [ExprStmt] ; +# 33| 0: [AssignExpr] ...=... +# 33| 0: [VarAccess] p3 # 33| 1: [StringLiteral] "Hello world" -# 32| 2: [ReturnStmt] return ... -# 32| 0: [MethodCall] testMemberFunction(...) -# 32| -1: [VarAccess] p0 -# 32| 0: [VarAccess] p1 -# 32| 1: [VarAccess] p2 -# 32| 2: [VarAccess] p3 -# 32| 3: [VarAccess] p4 +# 33| 2: [ReturnStmt] return ... +# 33| 0: [MethodCall] testMemberFunction(...) +# 33| -1: [VarAccess] p0 +# 33| 0: [VarAccess] p1 +# 33| 1: [VarAccess] p2 +# 33| 2: [VarAccess] p3 +# 33| 3: [VarAccess] p4 # 35| 9: [Method] useSpecialised # 35| 3: [TypeAccess] Unit #-----| 4: (Parameters) diff --git a/java/ql/test-kotlin2/library-tests/jvmoverloads-annotation/test.expected b/java/ql/test-kotlin2/library-tests/jvmoverloads-annotation/test.expected index a8d3f281f8c1..e47edc61a6b3 100644 --- a/java/ql/test-kotlin2/library-tests/jvmoverloads-annotation/test.expected +++ b/java/ql/test-kotlin2/library-tests/jvmoverloads-annotation/test.expected @@ -13,45 +13,45 @@ | file:///!unknown-binary-location/GenericTest.class:0:0:0:0 | GenericTest | file:///!unknown-binary-location/GenericTest.class:0:0:0:0 | testMemberFunction | testMemberFunction(java.lang.Float,java.lang.Float) | | file:///!unknown-binary-location/GenericTest.class:0:0:0:0 | GenericTest | file:///!unknown-binary-location/GenericTest.class:0:0:0:0 | useSpecialised | useSpecialised(GenericTest,GenericTest) | | test.kt:0:0:0:0 | TestKt | test.kt:1:1:1:31 | getString | getString() | -| test.kt:0:0:0:0 | TestKt | test.kt:44:1:45:112 | testExtensionFunction | testExtensionFunction(Test,int,double,boolean) | -| test.kt:0:0:0:0 | TestKt | test.kt:44:1:45:112 | testExtensionFunction | testExtensionFunction(Test,int,java.lang.String,double,boolean) | -| test.kt:0:0:0:0 | TestKt | test.kt:44:1:45:112 | testExtensionFunction | testExtensionFunction(Test,int,java.lang.String,double,float,boolean) | -| test.kt:0:0:0:0 | TestKt | test.kt:44:1:45:112 | testExtensionFunction$default | testExtensionFunction$default(Test,int,java.lang.String,double,float,boolean,int,java.lang.Object) | +| test.kt:0:0:0:0 | TestKt | test.kt:45:1:45:112 | testExtensionFunction | testExtensionFunction(Test,int,double,boolean) | +| test.kt:0:0:0:0 | TestKt | test.kt:45:1:45:112 | testExtensionFunction | testExtensionFunction(Test,int,java.lang.String,double,boolean) | +| test.kt:0:0:0:0 | TestKt | test.kt:45:1:45:112 | testExtensionFunction | testExtensionFunction(Test,int,java.lang.String,double,float,boolean) | +| test.kt:0:0:0:0 | TestKt | test.kt:45:1:45:112 | testExtensionFunction$default | testExtensionFunction$default(Test,int,java.lang.String,double,float,boolean,int,java.lang.Object) | | test.kt:3:1:14:1 | Test | test.kt:3:1:14:1 | Test | Test() | -| test.kt:3:1:14:1 | Test | test.kt:5:3:6:106 | testStaticFunction | testStaticFunction(int,double,boolean) | -| test.kt:3:1:14:1 | Test | test.kt:5:3:6:106 | testStaticFunction | testStaticFunction(int,java.lang.String,double,boolean) | -| test.kt:3:1:14:1 | Test | test.kt:5:3:6:106 | testStaticFunction | testStaticFunction(int,java.lang.String,double,float,boolean) | -| test.kt:3:1:14:1 | Test | test.kt:5:3:6:106 | testStaticFunction$default | testStaticFunction$default(int,java.lang.String,double,float,boolean,int,java.lang.Object) | -| test.kt:3:1:14:1 | Test | test.kt:8:3:9:106 | testMemberFunction | testMemberFunction(int,double,boolean) | -| test.kt:3:1:14:1 | Test | test.kt:8:3:9:106 | testMemberFunction | testMemberFunction(int,java.lang.String,double,boolean) | -| test.kt:3:1:14:1 | Test | test.kt:8:3:9:106 | testMemberFunction | testMemberFunction(int,java.lang.String,double,float,boolean) | -| test.kt:3:1:14:1 | Test | test.kt:8:3:9:106 | testMemberFunction$default | testMemberFunction$default(Test,int,java.lang.String,double,float,boolean,int,java.lang.Object) | -| test.kt:3:1:14:1 | Test | test.kt:11:3:12:121 | testMemberExtensionFunction | testMemberExtensionFunction(Test2,int,double,boolean) | -| test.kt:3:1:14:1 | Test | test.kt:11:3:12:121 | testMemberExtensionFunction | testMemberExtensionFunction(Test2,int,java.lang.String,double,boolean) | -| test.kt:3:1:14:1 | Test | test.kt:11:3:12:121 | testMemberExtensionFunction | testMemberExtensionFunction(Test2,int,java.lang.String,double,float,boolean) | -| test.kt:3:1:14:1 | Test | test.kt:11:3:12:121 | testMemberExtensionFunction$default | testMemberExtensionFunction$default(Test,Test2,int,java.lang.String,double,float,boolean,int,java.lang.Object) | -| test.kt:16:1:28:1 | Test2 | test.kt:16:20:16:117 | Test2 | Test2(int,double,boolean) | -| test.kt:16:1:28:1 | Test2 | test.kt:16:20:16:117 | Test2 | Test2(int,java.lang.String,double,boolean) | -| test.kt:16:1:28:1 | Test2 | test.kt:16:20:16:117 | Test2 | Test2(int,java.lang.String,double,float,boolean) | -| test.kt:16:1:28:1 | Test2 | test.kt:16:20:16:117 | Test2 | Test2(int,java.lang.String,double,float,boolean,int,kotlin.jvm.internal.DefaultConstructorMarker) | -| test.kt:16:1:28:1 | Test2 | test.kt:23:5:24:117 | testStaticCompanionFunction | testStaticCompanionFunction(int,double,boolean) | -| test.kt:16:1:28:1 | Test2 | test.kt:23:5:24:117 | testStaticCompanionFunction | testStaticCompanionFunction(int,java.lang.String,double,boolean) | -| test.kt:16:1:28:1 | Test2 | test.kt:23:5:24:117 | testStaticCompanionFunction | testStaticCompanionFunction(int,java.lang.String,double,float,boolean) | +| test.kt:3:1:14:1 | Test | test.kt:6:3:6:106 | testStaticFunction | testStaticFunction(int,double,boolean) | +| test.kt:3:1:14:1 | Test | test.kt:6:3:6:106 | testStaticFunction | testStaticFunction(int,java.lang.String,double,boolean) | +| test.kt:3:1:14:1 | Test | test.kt:6:3:6:106 | testStaticFunction | testStaticFunction(int,java.lang.String,double,float,boolean) | +| test.kt:3:1:14:1 | Test | test.kt:6:3:6:106 | testStaticFunction$default | testStaticFunction$default(int,java.lang.String,double,float,boolean,int,java.lang.Object) | +| test.kt:3:1:14:1 | Test | test.kt:9:3:9:106 | testMemberFunction | testMemberFunction(int,double,boolean) | +| test.kt:3:1:14:1 | Test | test.kt:9:3:9:106 | testMemberFunction | testMemberFunction(int,java.lang.String,double,boolean) | +| test.kt:3:1:14:1 | Test | test.kt:9:3:9:106 | testMemberFunction | testMemberFunction(int,java.lang.String,double,float,boolean) | +| test.kt:3:1:14:1 | Test | test.kt:9:3:9:106 | testMemberFunction$default | testMemberFunction$default(Test,int,java.lang.String,double,float,boolean,int,java.lang.Object) | +| test.kt:3:1:14:1 | Test | test.kt:12:3:12:121 | testMemberExtensionFunction | testMemberExtensionFunction(Test2,int,double,boolean) | +| test.kt:3:1:14:1 | Test | test.kt:12:3:12:121 | testMemberExtensionFunction | testMemberExtensionFunction(Test2,int,java.lang.String,double,boolean) | +| test.kt:3:1:14:1 | Test | test.kt:12:3:12:121 | testMemberExtensionFunction | testMemberExtensionFunction(Test2,int,java.lang.String,double,float,boolean) | +| test.kt:3:1:14:1 | Test | test.kt:12:3:12:121 | testMemberExtensionFunction$default | testMemberExtensionFunction$default(Test,Test2,int,java.lang.String,double,float,boolean,int,java.lang.Object) | +| test.kt:16:1:28:1 | Test2 | test.kt:16:34:16:117 | Test2 | Test2(int,double,boolean) | +| test.kt:16:1:28:1 | Test2 | test.kt:16:34:16:117 | Test2 | Test2(int,java.lang.String,double,boolean) | +| test.kt:16:1:28:1 | Test2 | test.kt:16:34:16:117 | Test2 | Test2(int,java.lang.String,double,float,boolean) | +| test.kt:16:1:28:1 | Test2 | test.kt:16:34:16:117 | Test2 | Test2(int,java.lang.String,double,float,boolean,int,kotlin.jvm.internal.DefaultConstructorMarker) | +| test.kt:16:1:28:1 | Test2 | test.kt:24:5:24:117 | testStaticCompanionFunction | testStaticCompanionFunction(int,double,boolean) | +| test.kt:16:1:28:1 | Test2 | test.kt:24:5:24:117 | testStaticCompanionFunction | testStaticCompanionFunction(int,java.lang.String,double,boolean) | +| test.kt:16:1:28:1 | Test2 | test.kt:24:5:24:117 | testStaticCompanionFunction | testStaticCompanionFunction(int,java.lang.String,double,float,boolean) | | test.kt:18:3:26:3 | Companion | test.kt:18:3:26:3 | Companion | Companion() | -| test.kt:18:3:26:3 | Companion | test.kt:20:5:21:111 | testCompanionFunction | testCompanionFunction(int,double,boolean) | -| test.kt:18:3:26:3 | Companion | test.kt:20:5:21:111 | testCompanionFunction | testCompanionFunction(int,java.lang.String,double,boolean) | -| test.kt:18:3:26:3 | Companion | test.kt:20:5:21:111 | testCompanionFunction | testCompanionFunction(int,java.lang.String,double,float,boolean) | -| test.kt:18:3:26:3 | Companion | test.kt:20:5:21:111 | testCompanionFunction$default | testCompanionFunction$default(Test2.Companion,int,java.lang.String,double,float,boolean,int,java.lang.Object) | -| test.kt:18:3:26:3 | Companion | test.kt:23:5:24:117 | testStaticCompanionFunction | testStaticCompanionFunction(int,double,boolean) | -| test.kt:18:3:26:3 | Companion | test.kt:23:5:24:117 | testStaticCompanionFunction | testStaticCompanionFunction(int,java.lang.String,double,boolean) | -| test.kt:18:3:26:3 | Companion | test.kt:23:5:24:117 | testStaticCompanionFunction | testStaticCompanionFunction(int,java.lang.String,double,float,boolean) | -| test.kt:18:3:26:3 | Companion | test.kt:23:5:24:117 | testStaticCompanionFunction$default | testStaticCompanionFunction$default(Test2.Companion,int,java.lang.String,double,float,boolean,int,java.lang.Object) | -| test.kt:30:1:42:1 | GenericTest | test.kt:30:29:30:104 | GenericTest | GenericTest(int,java.lang.Object,java.lang.Object) | -| test.kt:30:1:42:1 | GenericTest | test.kt:30:29:30:104 | GenericTest | GenericTest(int,java.lang.Object,java.lang.String,java.lang.Object) | -| test.kt:30:1:42:1 | GenericTest | test.kt:30:29:30:104 | GenericTest | GenericTest(int,java.lang.Object,java.lang.String,java.lang.Object,int,kotlin.jvm.internal.DefaultConstructorMarker) | -| test.kt:30:1:42:1 | GenericTest | test.kt:30:29:30:104 | GenericTest | GenericTest(java.lang.Object,java.lang.Object) | -| test.kt:30:1:42:1 | GenericTest | test.kt:32:3:33:84 | testMemberFunction | testMemberFunction(int,java.lang.Object,java.lang.Object) | -| test.kt:30:1:42:1 | GenericTest | test.kt:32:3:33:84 | testMemberFunction | testMemberFunction(int,java.lang.Object,java.lang.String,java.lang.Object) | -| test.kt:30:1:42:1 | GenericTest | test.kt:32:3:33:84 | testMemberFunction | testMemberFunction(java.lang.Object,java.lang.Object) | -| test.kt:30:1:42:1 | GenericTest | test.kt:32:3:33:84 | testMemberFunction$default | testMemberFunction$default(GenericTest,int,java.lang.Object,java.lang.String,java.lang.Object,int,java.lang.Object) | +| test.kt:18:3:26:3 | Companion | test.kt:21:5:21:111 | testCompanionFunction | testCompanionFunction(int,double,boolean) | +| test.kt:18:3:26:3 | Companion | test.kt:21:5:21:111 | testCompanionFunction | testCompanionFunction(int,java.lang.String,double,boolean) | +| test.kt:18:3:26:3 | Companion | test.kt:21:5:21:111 | testCompanionFunction | testCompanionFunction(int,java.lang.String,double,float,boolean) | +| test.kt:18:3:26:3 | Companion | test.kt:21:5:21:111 | testCompanionFunction$default | testCompanionFunction$default(Test2.Companion,int,java.lang.String,double,float,boolean,int,java.lang.Object) | +| test.kt:18:3:26:3 | Companion | test.kt:24:5:24:117 | testStaticCompanionFunction | testStaticCompanionFunction(int,double,boolean) | +| test.kt:18:3:26:3 | Companion | test.kt:24:5:24:117 | testStaticCompanionFunction | testStaticCompanionFunction(int,java.lang.String,double,boolean) | +| test.kt:18:3:26:3 | Companion | test.kt:24:5:24:117 | testStaticCompanionFunction | testStaticCompanionFunction(int,java.lang.String,double,float,boolean) | +| test.kt:18:3:26:3 | Companion | test.kt:24:5:24:117 | testStaticCompanionFunction$default | testStaticCompanionFunction$default(Test2.Companion,int,java.lang.String,double,float,boolean,int,java.lang.Object) | +| test.kt:30:1:42:1 | GenericTest | test.kt:30:43:30:104 | GenericTest | GenericTest(int,java.lang.Object,java.lang.Object) | +| test.kt:30:1:42:1 | GenericTest | test.kt:30:43:30:104 | GenericTest | GenericTest(int,java.lang.Object,java.lang.String,java.lang.Object) | +| test.kt:30:1:42:1 | GenericTest | test.kt:30:43:30:104 | GenericTest | GenericTest(int,java.lang.Object,java.lang.String,java.lang.Object,int,kotlin.jvm.internal.DefaultConstructorMarker) | +| test.kt:30:1:42:1 | GenericTest | test.kt:30:43:30:104 | GenericTest | GenericTest(java.lang.Object,java.lang.Object) | +| test.kt:30:1:42:1 | GenericTest | test.kt:33:3:33:84 | testMemberFunction | testMemberFunction(int,java.lang.Object,java.lang.Object) | +| test.kt:30:1:42:1 | GenericTest | test.kt:33:3:33:84 | testMemberFunction | testMemberFunction(int,java.lang.Object,java.lang.String,java.lang.Object) | +| test.kt:30:1:42:1 | GenericTest | test.kt:33:3:33:84 | testMemberFunction | testMemberFunction(java.lang.Object,java.lang.Object) | +| test.kt:30:1:42:1 | GenericTest | test.kt:33:3:33:84 | testMemberFunction$default | testMemberFunction$default(GenericTest,int,java.lang.Object,java.lang.String,java.lang.Object,int,java.lang.Object) | | test.kt:30:1:42:1 | GenericTest | test.kt:35:3:40:3 | useSpecialised | useSpecialised(GenericTest,GenericTest) | diff --git a/java/ql/test-kotlin2/library-tests/jvmoverloads_flow/test.expected b/java/ql/test-kotlin2/library-tests/jvmoverloads_flow/test.expected index feac5a14c95f..5892fe226aa5 100644 --- a/java/ql/test-kotlin2/library-tests/jvmoverloads_flow/test.expected +++ b/java/ql/test-kotlin2/library-tests/jvmoverloads_flow/test.expected @@ -12,9 +12,9 @@ | User.java:35:61:35:68 | source(...) | test.kt:74:10:74:10 | s | User.java:5:22:5:25 | test | | User.java:38:28:38:35 | source(...) | test.kt:84:10:84:10 | y | User.java:5:22:5:25 | test | | User.java:39:20:39:27 | source(...) | test.kt:84:10:84:10 | y | User.java:5:22:5:25 | test | -| test.kt:10:55:10:62 | source(...) | test.kt:10:84:10:84 | s | test.kt:9:3:10:87 | taintSuppliedAsDefault$default | -| test.kt:22:63:22:70 | source(...) | test.kt:22:92:22:92 | s | test.kt:21:5:22:95 | taintSuppliedAsDefaultStatic$default | -| test.kt:30:55:30:62 | source(...) | test.kt:30:84:30:84 | s | test.kt:29:3:30:87 | taintSuppliedAsDefault$default | -| test.kt:40:53:40:60 | source(...) | test.kt:40:80:40:80 | s | test.kt:39:3:40:83 | taintSuppliedAsDefault$default | -| test.kt:47:92:47:99 | source(...) | test.kt:50:10:50:10 | s | test.kt:47:41:47:112 | ConstructorTaintsByDefault | -| test.kt:63:100:63:107 | source(...) | test.kt:66:10:66:10 | s | test.kt:63:51:63:118 | GenericConstructorTaintsByDefault | +| test.kt:10:55:10:62 | source(...) | test.kt:10:84:10:84 | s | test.kt:10:3:10:87 | taintSuppliedAsDefault$default | +| test.kt:22:63:22:70 | source(...) | test.kt:22:92:22:92 | s | test.kt:22:5:22:95 | taintSuppliedAsDefaultStatic$default | +| test.kt:30:55:30:62 | source(...) | test.kt:30:84:30:84 | s | test.kt:30:3:30:87 | taintSuppliedAsDefault$default | +| test.kt:40:53:40:60 | source(...) | test.kt:40:80:40:80 | s | test.kt:40:3:40:83 | taintSuppliedAsDefault$default | +| test.kt:47:92:47:99 | source(...) | test.kt:50:10:50:10 | s | test.kt:47:55:47:112 | ConstructorTaintsByDefault | +| test.kt:63:100:63:107 | source(...) | test.kt:66:10:66:10 | s | test.kt:63:65:63:118 | GenericConstructorTaintsByDefault | diff --git a/java/ql/test-kotlin2/library-tests/jvmoverloads_generics/test.expected b/java/ql/test-kotlin2/library-tests/jvmoverloads_generics/test.expected index 964935c841fd..7bd54989bcf8 100644 --- a/java/ql/test-kotlin2/library-tests/jvmoverloads_generics/test.expected +++ b/java/ql/test-kotlin2/library-tests/jvmoverloads_generics/test.expected @@ -1,9 +1,9 @@ -| test.kt:3:3:4:94 | genericFunctionWithOverloads | genericFunctionWithOverloads() | return | T | genericFunctionWithOverloads() | -| test.kt:3:3:4:94 | genericFunctionWithOverloads | genericFunctionWithOverloads(java.lang.Object) | param | T | genericFunctionWithOverloads(java.lang.Object) | -| test.kt:3:3:4:94 | genericFunctionWithOverloads | genericFunctionWithOverloads(java.lang.Object) | return | T | genericFunctionWithOverloads(java.lang.Object) | -| test.kt:3:3:4:94 | genericFunctionWithOverloads | genericFunctionWithOverloads(java.lang.Object,java.util.List) | param | List | genericFunctionWithOverloads(java.lang.Object,java.util.List) | -| test.kt:3:3:4:94 | genericFunctionWithOverloads | genericFunctionWithOverloads(java.lang.Object,java.util.List) | param | T | genericFunctionWithOverloads(java.lang.Object,java.util.List) | -| test.kt:3:3:4:94 | genericFunctionWithOverloads | genericFunctionWithOverloads(java.lang.Object,java.util.List) | return | T | genericFunctionWithOverloads(java.lang.Object,java.util.List) | -| test.kt:3:3:4:94 | genericFunctionWithOverloads | genericFunctionWithOverloads(java.lang.Object,java.util.List,java.lang.Object) | param | List | genericFunctionWithOverloads(java.lang.Object,java.util.List,java.lang.Object) | -| test.kt:3:3:4:94 | genericFunctionWithOverloads | genericFunctionWithOverloads(java.lang.Object,java.util.List,java.lang.Object) | param | T | genericFunctionWithOverloads(java.lang.Object,java.util.List,java.lang.Object) | -| test.kt:3:3:4:94 | genericFunctionWithOverloads | genericFunctionWithOverloads(java.lang.Object,java.util.List,java.lang.Object) | return | T | genericFunctionWithOverloads(java.lang.Object,java.util.List,java.lang.Object) | +| test.kt:4:3:4:94 | genericFunctionWithOverloads | genericFunctionWithOverloads() | return | T | genericFunctionWithOverloads() | +| test.kt:4:3:4:94 | genericFunctionWithOverloads | genericFunctionWithOverloads(java.lang.Object) | param | T | genericFunctionWithOverloads(java.lang.Object) | +| test.kt:4:3:4:94 | genericFunctionWithOverloads | genericFunctionWithOverloads(java.lang.Object) | return | T | genericFunctionWithOverloads(java.lang.Object) | +| test.kt:4:3:4:94 | genericFunctionWithOverloads | genericFunctionWithOverloads(java.lang.Object,java.util.List) | param | List | genericFunctionWithOverloads(java.lang.Object,java.util.List) | +| test.kt:4:3:4:94 | genericFunctionWithOverloads | genericFunctionWithOverloads(java.lang.Object,java.util.List) | param | T | genericFunctionWithOverloads(java.lang.Object,java.util.List) | +| test.kt:4:3:4:94 | genericFunctionWithOverloads | genericFunctionWithOverloads(java.lang.Object,java.util.List) | return | T | genericFunctionWithOverloads(java.lang.Object,java.util.List) | +| test.kt:4:3:4:94 | genericFunctionWithOverloads | genericFunctionWithOverloads(java.lang.Object,java.util.List,java.lang.Object) | param | List | genericFunctionWithOverloads(java.lang.Object,java.util.List,java.lang.Object) | +| test.kt:4:3:4:94 | genericFunctionWithOverloads | genericFunctionWithOverloads(java.lang.Object,java.util.List,java.lang.Object) | param | T | genericFunctionWithOverloads(java.lang.Object,java.util.List,java.lang.Object) | +| test.kt:4:3:4:94 | genericFunctionWithOverloads | genericFunctionWithOverloads(java.lang.Object,java.util.List,java.lang.Object) | return | T | genericFunctionWithOverloads(java.lang.Object,java.util.List,java.lang.Object) | diff --git a/java/ql/test-kotlin2/library-tests/jvmstatic-annotation/test.expected b/java/ql/test-kotlin2/library-tests/jvmstatic-annotation/test.expected index 71e45333654a..813562aa20d6 100644 --- a/java/ql/test-kotlin2/library-tests/jvmstatic-annotation/test.expected +++ b/java/ql/test-kotlin2/library-tests/jvmstatic-annotation/test.expected @@ -3,15 +3,15 @@ staticMembers | test.kt:0:0:0:0 | TestKt | test.kt:49:1:67:1 | externalUser | Method | | test.kt:9:1:29:1 | HasCompanion | test.kt:11:3:27:3 | Companion | Class | | test.kt:9:1:29:1 | HasCompanion | test.kt:11:3:27:3 | Companion | Field | -| test.kt:9:1:29:1 | HasCompanion | test.kt:13:5:13:71 | staticMethod | Method | -| test.kt:9:1:29:1 | HasCompanion | test.kt:16:5:16:37 | getStaticProp | Method | -| test.kt:9:1:29:1 | HasCompanion | test.kt:16:5:16:37 | setStaticProp | Method | +| test.kt:9:1:29:1 | HasCompanion | test.kt:13:16:13:71 | staticMethod | Method | +| test.kt:9:1:29:1 | HasCompanion | test.kt:16:16:16:37 | getStaticProp | Method | +| test.kt:9:1:29:1 | HasCompanion | test.kt:16:16:16:37 | setStaticProp | Method | | test.kt:9:1:29:1 | HasCompanion | test.kt:20:7:20:45 | getPropWithStaticGetter | Method | | test.kt:9:1:29:1 | HasCompanion | test.kt:25:7:25:60 | setPropWithStaticSetter | Method | | test.kt:31:1:47:1 | NonCompanion | test.kt:31:1:47:1 | INSTANCE | Field | -| test.kt:31:1:47:1 | NonCompanion | test.kt:33:3:33:69 | staticMethod | Method | -| test.kt:31:1:47:1 | NonCompanion | test.kt:36:3:36:35 | getStaticProp | Method | -| test.kt:31:1:47:1 | NonCompanion | test.kt:36:3:36:35 | setStaticProp | Method | +| test.kt:31:1:47:1 | NonCompanion | test.kt:33:14:33:69 | staticMethod | Method | +| test.kt:31:1:47:1 | NonCompanion | test.kt:36:14:36:35 | getStaticProp | Method | +| test.kt:31:1:47:1 | NonCompanion | test.kt:36:14:36:35 | setStaticProp | Method | | test.kt:31:1:47:1 | NonCompanion | test.kt:40:5:40:43 | getPropWithStaticGetter | Method | | test.kt:31:1:47:1 | NonCompanion | test.kt:45:5:45:58 | setPropWithStaticSetter | Method | #select @@ -25,11 +25,11 @@ staticMembers | test.kt:11:3:27:3 | Companion | JavaUser.java:8:5:8:73 | setNonStaticProp(...) | JavaUser.java:8:5:8:26 | HasCompanion.Companion | instance | | test.kt:11:3:27:3 | Companion | JavaUser.java:9:5:9:100 | setPropWithStaticGetter(...) | JavaUser.java:9:5:9:26 | HasCompanion.Companion | instance | | test.kt:11:3:27:3 | Companion | JavaUser.java:9:52:9:99 | getPropWithStaticSetter(...) | JavaUser.java:9:52:9:73 | HasCompanion.Companion | instance | -| test.kt:11:3:27:3 | Companion | test.kt:13:5:13:71 | staticMethod(...) | test.kt:13:5:13:71 | HasCompanion.Companion | instance | +| test.kt:11:3:27:3 | Companion | test.kt:13:16:13:71 | staticMethod(...) | test.kt:13:16:13:71 | HasCompanion.Companion | instance | | test.kt:11:3:27:3 | Companion | test.kt:13:54:13:71 | nonStaticMethod(...) | test.kt:13:54:13:71 | this | instance | | test.kt:11:3:27:3 | Companion | test.kt:14:46:14:60 | staticMethod(...) | test.kt:14:46:14:60 | this | instance | -| test.kt:11:3:27:3 | Companion | test.kt:16:5:16:37 | getStaticProp(...) | test.kt:16:5:16:37 | HasCompanion.Companion | instance | -| test.kt:11:3:27:3 | Companion | test.kt:16:5:16:37 | setStaticProp(...) | test.kt:16:5:16:37 | HasCompanion.Companion | instance | +| test.kt:11:3:27:3 | Companion | test.kt:16:16:16:37 | getStaticProp(...) | test.kt:16:16:16:37 | HasCompanion.Companion | instance | +| test.kt:11:3:27:3 | Companion | test.kt:16:16:16:37 | setStaticProp(...) | test.kt:16:16:16:37 | HasCompanion.Companion | instance | | test.kt:11:3:27:3 | Companion | test.kt:20:7:20:45 | getPropWithStaticGetter(...) | test.kt:20:7:20:45 | HasCompanion.Companion | instance | | test.kt:11:3:27:3 | Companion | test.kt:20:26:20:45 | getPropWithStaticSetter(...) | test.kt:20:26:20:45 | this | instance | | test.kt:11:3:27:3 | Companion | test.kt:21:24:21:47 | setPropWithStaticSetter(...) | test.kt:21:24:21:47 | this | instance | diff --git a/java/ql/test-kotlin2/library-tests/lateinit/test.expected b/java/ql/test-kotlin2/library-tests/lateinit/test.expected index 3e8b48d298b8..4a54d9d28585 100644 --- a/java/ql/test-kotlin2/library-tests/lateinit/test.expected +++ b/java/ql/test-kotlin2/library-tests/lateinit/test.expected @@ -1,8 +1,8 @@ | test.kt:4:15:4:26 | println(...) | file:///ConsoleKt.class:0:0:0:0 | println | -| test.kt:9:9:9:13 | getTest0$private(...) | test.kt:2:5:2:40 | getTest0$private | +| test.kt:9:9:9:13 | getTest0$private(...) | test.kt:2:22:2:40 | getTest0$private | | test.kt:9:9:9:17 | f(...) | test.kt:4:5:4:26 | f | | test.kt:10:13:10:23 | get(...) | test.kt:10:13:10:23 | get | -| test.kt:10:13:10:23 | getTest0$private(...) | test.kt:2:5:2:40 | getTest0$private | -| test.kt:10:13:10:23 | setTest0$private(...) | test.kt:2:5:2:40 | setTest0$private | +| test.kt:10:13:10:23 | getTest0$private(...) | test.kt:2:22:2:40 | getTest0$private | +| test.kt:10:13:10:23 | setTest0$private(...) | test.kt:2:22:2:40 | setTest0$private | | test.kt:10:13:10:37 | isInitialized(...) | file:///LateinitKt.class:0:0:0:0 | isInitialized | | test.kt:14:9:14:17 | f(...) | test.kt:4:5:4:26 | f | diff --git a/java/ql/test-kotlin2/library-tests/methods-mixed-java-and-kotlin/test.expected b/java/ql/test-kotlin2/library-tests/methods-mixed-java-and-kotlin/test.expected index 43281e98beba..12654f3142a8 100644 --- a/java/ql/test-kotlin2/library-tests/methods-mixed-java-and-kotlin/test.expected +++ b/java/ql/test-kotlin2/library-tests/methods-mixed-java-and-kotlin/test.expected @@ -2,5 +2,5 @@ | A.java:4:10:4:12 | foo | j.A.foo | foo(java.lang.Object) | A.java:4:10:4:12 | foo | j.A.foo | | B.java:4:17:4:19 | foo | j.B.foo | foo(java.lang.String) | B.java:4:17:4:19 | foo | j.B.foo | | W.kt:4:5:4:17 | foo | k.A.foo | foo(java.lang.Object) | W.kt:4:5:4:17 | foo | k.A.foo | -| W.kt:8:5:8:34 | foo | k.B.foo | foo(java.lang.String) | W.kt:8:5:8:34 | foo | k.B.foo | +| W.kt:8:14:8:34 | foo | k.B.foo | foo(java.lang.String) | W.kt:8:14:8:34 | foo | k.B.foo | | file:///!unknown-binary-location/k/A.class:0:0:0:0 | foo | k.A.foo | foo(java.lang.String) | W.kt:4:5:4:17 | foo | k.A.foo | diff --git a/java/ql/test-kotlin2/library-tests/methods/exprs.expected b/java/ql/test-kotlin2/library-tests/methods/exprs.expected index accffb8beff8..fbe0ff419440 100644 --- a/java/ql/test-kotlin2/library-tests/methods/exprs.expected +++ b/java/ql/test-kotlin2/library-tests/methods/exprs.expected @@ -23,7 +23,6 @@ | dataClass.kt:0:0:0:0 | "DataClass(" | StringLiteral | | dataClass.kt:0:0:0:0 | "x=" | StringLiteral | | dataClass.kt:0:0:0:0 | "y=" | StringLiteral | -| dataClass.kt:0:0:0:0 | (...)... | CastExpr | | dataClass.kt:0:0:0:0 | ... !is ... | NotInstanceOfExpr | | dataClass.kt:0:0:0:0 | ... & ... | AndBitwiseExpr | | dataClass.kt:0:0:0:0 | ... & ... | AndBitwiseExpr | @@ -37,6 +36,7 @@ | dataClass.kt:0:0:0:0 | ...=... | AssignExpr | | dataClass.kt:0:0:0:0 | ...=... | AssignExpr | | dataClass.kt:0:0:0:0 | ...=... | AssignExpr | +| dataClass.kt:0:0:0:0 | | ImplicitCastExpr | | dataClass.kt:0:0:0:0 | DataClass | TypeAccess | | dataClass.kt:0:0:0:0 | DataClass | TypeAccess | | dataClass.kt:0:0:0:0 | DataClass | TypeAccess | @@ -233,12 +233,12 @@ | enumClass.kt:0:0:0:0 | EnumWithFunctions | TypeAccess | | enumClass.kt:0:0:0:0 | EnumWithFunctions | TypeAccess | | enumClass.kt:0:0:0:0 | EnumWithFunctions[] | TypeAccess | +| enumClass.kt:1:1:4:1 | 0 | IntegerLiteral | +| enumClass.kt:1:1:4:1 | Enum | TypeAccess | +| enumClass.kt:1:1:4:1 | EnumClass | TypeAccess | | enumClass.kt:1:1:4:1 | String | TypeAccess | -| enumClass.kt:1:21:1:32 | 0 | IntegerLiteral | -| enumClass.kt:1:21:1:32 | Enum | TypeAccess | -| enumClass.kt:1:21:1:32 | EnumClass | TypeAccess | -| enumClass.kt:1:21:1:32 | new Enum(...) | ClassInstanceExpr | -| enumClass.kt:1:21:1:32 | null | NullLiteral | +| enumClass.kt:1:1:4:1 | new Enum(...) | ClassInstanceExpr | +| enumClass.kt:1:1:4:1 | null | NullLiteral | | enumClass.kt:1:22:1:31 | ...=... | KtInitializerAssignExpr | | enumClass.kt:1:22:1:31 | int | TypeAccess | | enumClass.kt:1:22:1:31 | int | TypeAccess | @@ -275,19 +275,19 @@ | enumClass.kt:8:3:11:4 | VAL | TypeAccess | | enumClass.kt:8:3:11:4 | new EnumWithFunctions(...) | ClassInstanceExpr | | enumClass.kt:8:3:11:4 | new VAL(...) | ClassInstanceExpr | -| enumClass.kt:9:5:9:30 | int | TypeAccess | +| enumClass.kt:9:14:9:30 | int | TypeAccess | | enumClass.kt:9:20:9:25 | int | TypeAccess | | enumClass.kt:9:30:9:30 | i | VarAccess | -| enumClass.kt:10:5:10:42 | int | TypeAccess | +| enumClass.kt:10:14:10:42 | int | TypeAccess | | enumClass.kt:10:20:10:25 | int | TypeAccess | | enumClass.kt:10:30:10:33 | this | ThisAccess | | enumClass.kt:10:30:10:38 | f(...) | MethodCall | | enumClass.kt:10:30:10:42 | ... + ... | AddExpr | | enumClass.kt:10:37:10:37 | i | VarAccess | | enumClass.kt:10:42:10:42 | i | VarAccess | -| enumClass.kt:13:3:13:29 | int | TypeAccess | +| enumClass.kt:13:12:13:29 | int | TypeAccess | | enumClass.kt:13:18:13:23 | int | TypeAccess | -| enumClass.kt:14:3:14:29 | int | TypeAccess | +| enumClass.kt:14:12:14:29 | int | TypeAccess | | enumClass.kt:14:18:14:23 | int | TypeAccess | | methods2.kt:4:1:5:1 | Unit | TypeAccess | | methods2.kt:4:26:4:31 | int | TypeAccess | @@ -374,7 +374,7 @@ | methods5.kt:10:13:10:18 | | ImplicitCoercionToUnitExpr | | methods5.kt:10:13:10:18 | Unit | TypeAccess | | methods5.kt:10:16:10:17 | 42 | IntegerLiteral | -| methods6.kt:3:1:4:1 | Unit | TypeAccess | +| methods6.kt:3:9:4:1 | Unit | TypeAccess | | methods.kt:2:1:3:1 | Unit | TypeAccess | | methods.kt:2:20:2:25 | int | TypeAccess | | methods.kt:2:28:2:33 | int | TypeAccess | @@ -392,9 +392,9 @@ | methods.kt:11:9:11:28 | topLevelMethod(...) | MethodCall | | methods.kt:11:24:11:24 | b | VarAccess | | methods.kt:11:27:11:27 | 4 | IntegerLiteral | -| methods.kt:14:5:14:29 | Unit | TypeAccess | -| methods.kt:15:5:15:35 | Unit | TypeAccess | -| methods.kt:16:5:16:31 | Unit | TypeAccess | -| methods.kt:17:5:17:33 | Unit | TypeAccess | +| methods.kt:14:12:14:29 | Unit | TypeAccess | +| methods.kt:15:15:15:35 | Unit | TypeAccess | +| methods.kt:16:13:16:31 | Unit | TypeAccess | +| methods.kt:17:14:17:33 | Unit | TypeAccess | | methods.kt:18:5:18:36 | Unit | TypeAccess | -| methods.kt:19:5:19:29 | Unit | TypeAccess | +| methods.kt:19:12:19:29 | Unit | TypeAccess | diff --git a/java/ql/test-kotlin2/library-tests/methods/methods.expected b/java/ql/test-kotlin2/library-tests/methods/methods.expected index 94c0d62e20b1..abd50a29c1f2 100644 --- a/java/ql/test-kotlin2/library-tests/methods/methods.expected +++ b/java/ql/test-kotlin2/library-tests/methods/methods.expected @@ -34,10 +34,10 @@ methods | enumClass.kt:6:1:16:1 | EnumWithFunctions | enumClass.kt:0:0:0:0 | getEntries | getEntries() | final, public, static | Compiler generated | | enumClass.kt:6:1:16:1 | EnumWithFunctions | enumClass.kt:0:0:0:0 | valueOf | valueOf(java.lang.String) | final, public, static | Compiler generated | | enumClass.kt:6:1:16:1 | EnumWithFunctions | enumClass.kt:0:0:0:0 | values | values() | final, public, static | Compiler generated | -| enumClass.kt:6:1:16:1 | EnumWithFunctions | enumClass.kt:13:3:13:29 | f | f(int) | abstract, public | | -| enumClass.kt:6:1:16:1 | EnumWithFunctions | enumClass.kt:14:3:14:29 | g | g(int) | abstract, public | | -| enumClass.kt:8:3:11:4 | VAL | enumClass.kt:9:5:9:30 | f | f(int) | override, public | | -| enumClass.kt:8:3:11:4 | VAL | enumClass.kt:10:5:10:42 | g | g(int) | override, public | | +| enumClass.kt:6:1:16:1 | EnumWithFunctions | enumClass.kt:13:12:13:29 | f | f(int) | abstract, public | | +| enumClass.kt:6:1:16:1 | EnumWithFunctions | enumClass.kt:14:12:14:29 | g | g(int) | abstract, public | | +| enumClass.kt:8:3:11:4 | VAL | enumClass.kt:9:14:9:30 | f | f(int) | override, public | | +| enumClass.kt:8:3:11:4 | VAL | enumClass.kt:10:14:10:42 | g | g(int) | override, public | | | methods2.kt:0:0:0:0 | Methods2Kt | methods2.kt:4:1:5:1 | fooBarTopLevelMethod | fooBarTopLevelMethod(int,int) | final, public, static | | | methods2.kt:7:1:10:1 | Class2 | methods2.kt:8:5:9:5 | fooBarClassMethod | fooBarClassMethod(int,int) | final, public | | | methods3.kt:0:0:0:0 | Methods3Kt | methods3.kt:3:1:3:49 | fooBarTopLevelMethodExt | fooBarTopLevelMethodExt(java.lang.String,int) | final, public, static | | @@ -48,16 +48,16 @@ methods | methods5.kt:0:0:0:0 | Methods5Kt | methods5.kt:3:1:11:1 | x | x() | final, public, static | | | methods5.kt:5:3:5:27 | | methods5.kt:5:3:5:27 | a | a(int) | final, public | | | methods5.kt:9:3:9:32 | | methods5.kt:9:3:9:32 | f1 | f1(foo.bar.C1,int) | final, public | | -| methods6.kt:0:0:0:0 | Methods6Kt | methods6.kt:3:1:4:1 | s | s() | final, public, static, suspend | | +| methods6.kt:0:0:0:0 | Methods6Kt | methods6.kt:3:9:4:1 | s | s() | final, public, static, suspend | | | methods.kt:0:0:0:0 | MethodsKt | methods.kt:2:1:3:1 | topLevelMethod | topLevelMethod(int,int) | final, public, static | | | methods.kt:5:1:20:1 | Class | methods.kt:6:5:7:5 | classMethod | classMethod(int,int) | final, public | | | methods.kt:5:1:20:1 | Class | methods.kt:9:5:12:5 | anotherClassMethod | anotherClassMethod(int,int) | final, public | | -| methods.kt:5:1:20:1 | Class | methods.kt:14:5:14:29 | publicFun | publicFun() | final, public | | -| methods.kt:5:1:20:1 | Class | methods.kt:15:5:15:35 | protectedFun | protectedFun() | final, protected | | -| methods.kt:5:1:20:1 | Class | methods.kt:16:5:16:31 | privateFun | privateFun() | final, private | | -| methods.kt:5:1:20:1 | Class | methods.kt:17:5:17:33 | internalFun$main | internalFun$main() | final, internal | | +| methods.kt:5:1:20:1 | Class | methods.kt:14:12:14:29 | publicFun | publicFun() | final, public | | +| methods.kt:5:1:20:1 | Class | methods.kt:15:15:15:35 | protectedFun | protectedFun() | final, protected | | +| methods.kt:5:1:20:1 | Class | methods.kt:16:13:16:31 | privateFun | privateFun() | final, private | | +| methods.kt:5:1:20:1 | Class | methods.kt:17:14:17:33 | internalFun$main | internalFun$main() | final, internal | | | methods.kt:5:1:20:1 | Class | methods.kt:18:5:18:36 | noExplicitVisibilityFun | noExplicitVisibilityFun() | final, public | | -| methods.kt:5:1:20:1 | Class | methods.kt:19:5:19:29 | inlineFun | inlineFun() | final, inline, public | | +| methods.kt:5:1:20:1 | Class | methods.kt:19:12:19:29 | inlineFun | inlineFun() | final, inline, public | | constructors | dataClass.kt:1:1:1:47 | DataClass | dataClass.kt:1:21:1:47 | DataClass | DataClass(int,java.lang.String) | | delegates.kt:3:1:12:1 | MyClass | delegates.kt:3:1:12:1 | MyClass | MyClass() | diff --git a/java/ql/test-kotlin2/library-tests/methods/parameters.expected b/java/ql/test-kotlin2/library-tests/methods/parameters.expected index 3e5485f27245..b26345a228d5 100644 --- a/java/ql/test-kotlin2/library-tests/methods/parameters.expected +++ b/java/ql/test-kotlin2/library-tests/methods/parameters.expected @@ -24,10 +24,10 @@ | delegates.kt:8:66:11:5 | invoke | delegates.kt:9:20:9:22 | new | 2 | | enumClass.kt:0:0:0:0 | valueOf | enumClass.kt:1:1:4:1 | value | 0 | | enumClass.kt:0:0:0:0 | valueOf | enumClass.kt:6:1:16:1 | value | 0 | -| enumClass.kt:9:5:9:30 | f | enumClass.kt:9:20:9:25 | i | 0 | -| enumClass.kt:10:5:10:42 | g | enumClass.kt:10:20:10:25 | i | 0 | -| enumClass.kt:13:3:13:29 | f | enumClass.kt:13:18:13:23 | i | 0 | -| enumClass.kt:14:3:14:29 | g | enumClass.kt:14:18:14:23 | i | 0 | +| enumClass.kt:9:14:9:30 | f | enumClass.kt:9:20:9:25 | i | 0 | +| enumClass.kt:10:14:10:42 | g | enumClass.kt:10:20:10:25 | i | 0 | +| enumClass.kt:13:12:13:29 | f | enumClass.kt:13:18:13:23 | i | 0 | +| enumClass.kt:14:12:14:29 | g | enumClass.kt:14:18:14:23 | i | 0 | | methods2.kt:4:1:5:1 | fooBarTopLevelMethod | methods2.kt:4:26:4:31 | x | 0 | | methods2.kt:4:1:5:1 | fooBarTopLevelMethod | methods2.kt:4:34:4:39 | y | 1 | | methods2.kt:8:5:9:5 | fooBarClassMethod | methods2.kt:8:27:8:32 | x | 0 | diff --git a/java/ql/test-kotlin2/library-tests/modifiers/modifiers.expected b/java/ql/test-kotlin2/library-tests/modifiers/modifiers.expected index 6bc77b34a0ad..4fc6ff961db5 100644 --- a/java/ql/test-kotlin2/library-tests/modifiers/modifiers.expected +++ b/java/ql/test-kotlin2/library-tests/modifiers/modifiers.expected @@ -1,20 +1,20 @@ | modifiers.kt:1:1:29:1 | X | Class | public | | modifiers.kt:1:1:29:1 | X | Constructor | public | -| modifiers.kt:2:5:2:17 | getA$private | Method | final | -| modifiers.kt:2:5:2:17 | getA$private | Method | private | -| modifiers.kt:2:5:2:21 | a | Field | final | -| modifiers.kt:2:5:2:21 | a | Field | private | -| modifiers.kt:2:5:2:21 | a | Property | private | -| modifiers.kt:3:5:3:19 | getB | Method | final | -| modifiers.kt:3:5:3:19 | getB | Method | protected | -| modifiers.kt:3:5:3:23 | b | Field | final | -| modifiers.kt:3:5:3:23 | b | Field | private | -| modifiers.kt:3:5:3:23 | b | Property | protected | -| modifiers.kt:4:5:4:18 | getC$main | Method | final | -| modifiers.kt:4:5:4:18 | getC$main | Method | internal | -| modifiers.kt:4:5:4:22 | c | Field | final | -| modifiers.kt:4:5:4:22 | c | Field | private | -| modifiers.kt:4:5:4:22 | c | Property | internal | +| modifiers.kt:2:13:2:17 | getA$private | Method | final | +| modifiers.kt:2:13:2:17 | getA$private | Method | private | +| modifiers.kt:2:13:2:21 | a | Field | final | +| modifiers.kt:2:13:2:21 | a | Field | private | +| modifiers.kt:2:13:2:21 | a | Property | private | +| modifiers.kt:3:15:3:19 | getB | Method | final | +| modifiers.kt:3:15:3:19 | getB | Method | protected | +| modifiers.kt:3:15:3:23 | b | Field | final | +| modifiers.kt:3:15:3:23 | b | Field | private | +| modifiers.kt:3:15:3:23 | b | Property | protected | +| modifiers.kt:4:14:4:18 | getC$main | Method | final | +| modifiers.kt:4:14:4:18 | getC$main | Method | internal | +| modifiers.kt:4:14:4:22 | c | Field | final | +| modifiers.kt:4:14:4:22 | c | Field | private | +| modifiers.kt:4:14:4:22 | c | Property | internal | | modifiers.kt:5:5:5:9 | getD | Method | final | | modifiers.kt:5:5:5:9 | getD | Method | public | | modifiers.kt:5:5:5:34 | d | Field | final | @@ -23,11 +23,11 @@ | modifiers.kt:7:5:9:5 | Nested | Class | final | | modifiers.kt:7:5:9:5 | Nested | Class | protected | | modifiers.kt:7:5:9:5 | Nested | Constructor | public | -| modifiers.kt:8:9:8:25 | getE | Method | final | -| modifiers.kt:8:9:8:25 | getE | Method | public | -| modifiers.kt:8:9:8:29 | e | Field | final | -| modifiers.kt:8:9:8:29 | e | Field | private | -| modifiers.kt:8:9:8:29 | e | Property | public | +| modifiers.kt:8:16:8:25 | getE | Method | final | +| modifiers.kt:8:16:8:25 | getE | Method | public | +| modifiers.kt:8:16:8:29 | e | Field | final | +| modifiers.kt:8:16:8:29 | e | Field | private | +| modifiers.kt:8:16:8:29 | e | Property | public | | modifiers.kt:11:5:15:5 | fn1 | Method | final | | modifiers.kt:11:5:15:5 | fn1 | Method | public | | modifiers.kt:12:16:14:9 | | Constructor | public | @@ -49,17 +49,17 @@ | modifiers.kt:23:9:23:27 | localClass | Constructor | public | | modifiers.kt:23:9:23:27 | localClass | LocalClass | final | | modifiers.kt:23:9:23:27 | localClass | LocalClass | private | -| modifiers.kt:26:5:26:46 | fn4 | Method | final | -| modifiers.kt:26:5:26:46 | fn4 | Method | inline | -| modifiers.kt:26:5:26:46 | fn4 | Method | public | +| modifiers.kt:26:12:26:46 | fn4 | Method | final | +| modifiers.kt:26:12:26:46 | fn4 | Method | inline | +| modifiers.kt:26:12:26:46 | fn4 | Method | public | | modifiers.kt:26:20:26:41 | f | Parameter | noinline | -| modifiers.kt:27:5:27:49 | fn5 | Method | final | -| modifiers.kt:27:5:27:49 | fn5 | Method | inline | -| modifiers.kt:27:5:27:49 | fn5 | Method | public | +| modifiers.kt:27:12:27:49 | fn5 | Method | final | +| modifiers.kt:27:12:27:49 | fn5 | Method | inline | +| modifiers.kt:27:12:27:49 | fn5 | Method | public | | modifiers.kt:27:20:27:44 | f | Parameter | crossinline | -| modifiers.kt:28:5:28:39 | fn6 | Method | final | -| modifiers.kt:28:5:28:39 | fn6 | Method | inline | -| modifiers.kt:28:5:28:39 | fn6 | Method | public | +| modifiers.kt:28:12:28:39 | fn6 | Method | final | +| modifiers.kt:28:12:28:39 | fn6 | Method | inline | +| modifiers.kt:28:12:28:39 | fn6 | Method | public | | modifiers.kt:28:17:28:25 | T | TypeVariable | reified | | modifiers.kt:31:1:33:1 | Y | Class | final | | modifiers.kt:31:1:33:1 | Y | Class | public | @@ -75,13 +75,13 @@ | modifiers.kt:35:1:41:1 | LateInit | Class | final | | modifiers.kt:35:1:41:1 | LateInit | Class | public | | modifiers.kt:35:1:41:1 | LateInit | Constructor | public | -| modifiers.kt:36:5:36:40 | getTest0$private | Method | final | -| modifiers.kt:36:5:36:40 | getTest0$private | Method | private | -| modifiers.kt:36:5:36:40 | setTest0$private | Method | final | -| modifiers.kt:36:5:36:40 | setTest0$private | Method | private | -| modifiers.kt:36:5:36:40 | test0 | Field | private | -| modifiers.kt:36:5:36:40 | test0 | Property | lateinit | -| modifiers.kt:36:5:36:40 | test0 | Property | private | +| modifiers.kt:36:22:36:40 | getTest0$private | Method | final | +| modifiers.kt:36:22:36:40 | getTest0$private | Method | private | +| modifiers.kt:36:22:36:40 | setTest0$private | Method | final | +| modifiers.kt:36:22:36:40 | setTest0$private | Method | private | +| modifiers.kt:36:22:36:40 | test0 | Field | private | +| modifiers.kt:36:22:36:40 | test0 | Property | lateinit | +| modifiers.kt:36:22:36:40 | test0 | Property | private | | modifiers.kt:38:5:40:5 | fn | Method | final | | modifiers.kt:38:5:40:5 | fn | Method | public | -| modifiers.kt:39:9:39:36 | LateInit test1 | LocalVariableDecl | lateinit | +| modifiers.kt:39:18:39:36 | LateInit test1 | LocalVariableDecl | lateinit | diff --git a/java/ql/test-kotlin2/library-tests/parameter-defaults/defaults.expected b/java/ql/test-kotlin2/library-tests/parameter-defaults/defaults.expected index 2e7d2920d78d..fe02743697d8 100644 --- a/java/ql/test-kotlin2/library-tests/parameter-defaults/defaults.expected +++ b/java/ql/test-kotlin2/library-tests/parameter-defaults/defaults.expected @@ -1,6 +1,6 @@ | test.kt:5:3:7:3 | f | test.kt:5:3:7:3 | f$default | | test.kt:19:3:22:3 | f | test.kt:19:3:22:3 | f$default | -| test.kt:34:3:36:3 | f | test.kt:34:3:36:3 | f$default | +| test.kt:34:14:36:3 | f | test.kt:34:14:36:3 | f$default | | test.kt:56:3:58:3 | test | test.kt:56:3:58:3 | test$default | | test.kt:68:22:68:75 | TestConstructor | test.kt:68:22:68:75 | TestConstructor | | test.kt:86:5:88:5 | f | test.kt:86:5:88:5 | f$default | @@ -9,9 +9,9 @@ | test.kt:135:3:135:43 | testReturn | test.kt:135:3:135:43 | testReturn$default | | test.kt:145:3:147:3 | f | test.kt:145:3:147:3 | f$default | | test.kt:158:3:158:35 | f | test.kt:158:3:158:35 | f$default | -| test.kt:159:3:159:44 | g$main | test.kt:159:3:159:44 | g$main$default | -| test.kt:160:3:160:45 | h | test.kt:160:3:160:45 | h$default | -| test.kt:161:3:161:43 | i | test.kt:161:3:161:43 | i$default | +| test.kt:159:12:159:44 | g$main | test.kt:159:12:159:44 | g$main$default | +| test.kt:160:13:160:45 | h | test.kt:160:13:160:45 | h$default | +| test.kt:161:11:161:43 | i | test.kt:161:11:161:43 | i$default | | test.kt:171:3:171:97 | f | test.kt:171:3:171:97 | f$default | | test.kt:179:3:179:46 | f | test.kt:179:3:179:46 | f$default | | test.kt:180:3:180:34 | f | test.kt:180:3:180:34 | f$default | diff --git a/java/ql/test-kotlin2/library-tests/private-anonymous-types/test.expected b/java/ql/test-kotlin2/library-tests/private-anonymous-types/test.expected index fa622bab6ff8..c87337a92c74 100644 --- a/java/ql/test-kotlin2/library-tests/private-anonymous-types/test.expected +++ b/java/ql/test-kotlin2/library-tests/private-anonymous-types/test.expected @@ -19,15 +19,15 @@ | test.kt:7:1:22:1 | A | test.kt:7:16:7:21 | A | | test.kt:7:1:22:1 | A | test.kt:9:3:9:14 | getAnonType | | test.kt:7:1:22:1 | A | test.kt:9:3:11:3 | anonType | -| test.kt:7:1:22:1 | A | test.kt:13:3:13:29 | getPrivateAnonType$private | -| test.kt:7:1:22:1 | A | test.kt:13:3:15:3 | privateAnonType | +| test.kt:7:1:22:1 | A | test.kt:13:11:13:29 | getPrivateAnonType$private | +| test.kt:7:1:22:1 | A | test.kt:13:11:15:3 | privateAnonType | | test.kt:7:1:22:1 | A | test.kt:17:3:20:3 | privateUser | | test.kt:9:18:11:3 | new If(...) { ... } | test.kt:9:18:11:3 | | -| test.kt:9:18:11:3 | new If(...) { ... } | test.kt:10:5:10:18 | getX | -| test.kt:9:18:11:3 | new If(...) { ... } | test.kt:10:5:10:22 | x | +| test.kt:9:18:11:3 | new If(...) { ... } | test.kt:10:14:10:18 | getX | +| test.kt:9:18:11:3 | new If(...) { ... } | test.kt:10:14:10:22 | x | | test.kt:13:33:15:3 | new If(...) { ... } | test.kt:13:33:15:3 | | -| test.kt:13:33:15:3 | new If(...) { ... } | test.kt:14:5:14:18 | getX | -| test.kt:13:33:15:3 | new If(...) { ... } | test.kt:14:5:14:22 | x | +| test.kt:13:33:15:3 | new If(...) { ... } | test.kt:14:14:14:18 | getX | +| test.kt:13:33:15:3 | new If(...) { ... } | test.kt:14:14:14:22 | x | enclosingTypes | file:///!unknown-binary-location/A$.class:0:0:0:0 | new If(...) { ... }<> | file:///!unknown-binary-location/A.class:0:0:0:0 | A | | file:///!unknown-binary-location/A$.class:0:0:0:0 | new If(...) { ... }<> | file:///!unknown-binary-location/A.class:0:0:0:0 | A | diff --git a/java/ql/test-kotlin2/library-tests/properties/properties.expected b/java/ql/test-kotlin2/library-tests/properties/properties.expected index 6e2d867153ce..705427f13a86 100644 --- a/java/ql/test-kotlin2/library-tests/properties/properties.expected +++ b/java/ql/test-kotlin2/library-tests/properties/properties.expected @@ -4,7 +4,7 @@ | properties.kt:3:5:3:25 | modifiableInt | properties.kt:3:5:3:21 | getModifiableInt | properties.kt:3:5:3:21 | setModifiableInt | properties.kt:3:5:3:25 | modifiableInt | public | | properties.kt:4:5:4:24 | immutableInt | properties.kt:4:5:4:20 | getImmutableInt | file://:0:0:0:0 | | properties.kt:4:5:4:24 | immutableInt | public | | properties.kt:5:5:5:26 | typedProp | properties.kt:5:5:5:22 | getTypedProp | file://:0:0:0:0 | | properties.kt:5:5:5:26 | typedProp | public | -| properties.kt:6:5:6:38 | abstractTypeProp | properties.kt:6:5:6:38 | getAbstractTypeProp | file://:0:0:0:0 | | file://:0:0:0:0 | | public | +| properties.kt:6:14:6:38 | abstractTypeProp | properties.kt:6:14:6:38 | getAbstractTypeProp | file://:0:0:0:0 | | file://:0:0:0:0 | | public | | properties.kt:7:5:7:30 | initialisedInInit | properties.kt:7:5:7:30 | getInitialisedInInit | file://:0:0:0:0 | | properties.kt:7:5:7:30 | initialisedInInit | public | | properties.kt:11:5:11:40 | useConstructorArg | properties.kt:11:5:11:25 | getUseConstructorArg | file://:0:0:0:0 | | properties.kt:11:5:11:40 | useConstructorArg | public | | properties.kt:12:5:13:21 | five | properties.kt:13:13:13:21 | getFive | file://:0:0:0:0 | | file://:0:0:0:0 | | public | @@ -17,17 +17,17 @@ | properties.kt:28:5:29:22 | overrideGetter | properties.kt:29:13:29:22 | getOverrideGetter | properties.kt:28:5:28:22 | setOverrideGetter | properties.kt:28:5:29:22 | overrideGetter | public | | properties.kt:30:5:31:29 | overrideGetterUseField | properties.kt:31:13:31:29 | getOverrideGetterUseField | properties.kt:30:5:30:30 | setOverrideGetterUseField | properties.kt:30:5:31:29 | overrideGetterUseField | public | | properties.kt:32:5:33:29 | useField | properties.kt:33:13:33:29 | getUseField | file://:0:0:0:0 | | properties.kt:32:5:33:29 | useField | public | -| properties.kt:34:5:34:36 | lateInitVar | properties.kt:34:5:34:36 | getLateInitVar | properties.kt:34:5:34:36 | setLateInitVar | properties.kt:34:5:34:36 | lateInitVar | lateinit, public | -| properties.kt:35:5:35:32 | privateProp | properties.kt:35:5:35:27 | getPrivateProp$private | file://:0:0:0:0 | | properties.kt:35:5:35:32 | privateProp | private | -| properties.kt:36:5:36:36 | protectedProp | properties.kt:36:5:36:31 | getProtectedProp | file://:0:0:0:0 | | properties.kt:36:5:36:36 | protectedProp | protected | -| properties.kt:37:5:37:30 | publicProp | properties.kt:37:5:37:25 | getPublicProp | file://:0:0:0:0 | | properties.kt:37:5:37:30 | publicProp | public | -| properties.kt:38:5:38:34 | internalProp | properties.kt:38:5:38:29 | getInternalProp$main | file://:0:0:0:0 | | properties.kt:38:5:38:34 | internalProp | internal | -| properties.kt:67:1:67:23 | constVal | properties.kt:67:1:67:18 | getConstVal | file://:0:0:0:0 | | properties.kt:67:1:67:23 | constVal | public | +| properties.kt:34:14:34:36 | lateInitVar | properties.kt:34:14:34:36 | getLateInitVar | properties.kt:34:14:34:36 | setLateInitVar | properties.kt:34:14:34:36 | lateInitVar | lateinit, public | +| properties.kt:35:13:35:32 | privateProp | properties.kt:35:13:35:27 | getPrivateProp$private | file://:0:0:0:0 | | properties.kt:35:13:35:32 | privateProp | private | +| properties.kt:36:15:36:36 | protectedProp | properties.kt:36:15:36:31 | getProtectedProp | file://:0:0:0:0 | | properties.kt:36:15:36:36 | protectedProp | protected | +| properties.kt:37:12:37:30 | publicProp | properties.kt:37:12:37:25 | getPublicProp | file://:0:0:0:0 | | properties.kt:37:12:37:30 | publicProp | public | +| properties.kt:38:14:38:34 | internalProp | properties.kt:38:14:38:29 | getInternalProp$main | file://:0:0:0:0 | | properties.kt:38:14:38:34 | internalProp | internal | +| properties.kt:67:7:67:23 | constVal | properties.kt:67:7:67:18 | getConstVal | file://:0:0:0:0 | | properties.kt:67:7:67:23 | constVal | public | | properties.kt:70:5:70:16 | prop | properties.kt:70:5:70:12 | getProp | file://:0:0:0:0 | | properties.kt:70:5:70:16 | prop | public | | properties.kt:78:1:79:13 | x | properties.kt:79:5:79:13 | getX | file://:0:0:0:0 | | file://:0:0:0:0 | | public | | properties.kt:80:1:81:13 | x | properties.kt:81:5:81:13 | getX | file://:0:0:0:0 | | file://:0:0:0:0 | | public | -| properties.kt:84:5:84:29 | data | properties.kt:84:5:84:25 | getData$private | properties.kt:84:5:84:25 | setData$private | properties.kt:84:5:84:29 | data | private | -| properties.kt:92:5:93:18 | data | properties.kt:93:9:93:18 | getData | properties.kt:92:5:92:25 | setData$private | properties.kt:92:5:93:18 | data | private | +| properties.kt:84:13:84:29 | data | properties.kt:84:13:84:25 | getData$private | properties.kt:84:13:84:25 | setData$private | properties.kt:84:13:84:29 | data | private | +| properties.kt:92:13:93:18 | data | properties.kt:93:9:93:18 | getData | properties.kt:92:13:92:25 | setData$private | properties.kt:92:13:93:18 | data | private | fieldDeclarations | properties.kt:2:27:2:50 | int constructorProp; | properties.kt:2:27:2:50 | constructorProp | 0 | | properties.kt:2:53:2:83 | int mutableConstructorProp; | properties.kt:2:53:2:83 | mutableConstructorProp | 0 | @@ -43,12 +43,12 @@ fieldDeclarations | properties.kt:28:5:29:22 | int overrideGetter; | properties.kt:28:5:29:22 | overrideGetter | 0 | | properties.kt:30:5:31:29 | int overrideGetterUseField; | properties.kt:30:5:31:29 | overrideGetterUseField | 0 | | properties.kt:32:5:33:29 | int useField; | properties.kt:32:5:33:29 | useField | 0 | -| properties.kt:34:5:34:36 | String lateInitVar; | properties.kt:34:5:34:36 | lateInitVar | 0 | -| properties.kt:35:5:35:32 | int privateProp; | properties.kt:35:5:35:32 | privateProp | 0 | -| properties.kt:36:5:36:36 | int protectedProp; | properties.kt:36:5:36:36 | protectedProp | 0 | -| properties.kt:37:5:37:30 | int publicProp; | properties.kt:37:5:37:30 | publicProp | 0 | -| properties.kt:38:5:38:34 | int internalProp; | properties.kt:38:5:38:34 | internalProp | 0 | -| properties.kt:67:1:67:23 | int constVal; | properties.kt:67:1:67:23 | constVal | 0 | +| properties.kt:34:14:34:36 | String lateInitVar; | properties.kt:34:14:34:36 | lateInitVar | 0 | +| properties.kt:35:13:35:32 | int privateProp; | properties.kt:35:13:35:32 | privateProp | 0 | +| properties.kt:36:15:36:36 | int protectedProp; | properties.kt:36:15:36:36 | protectedProp | 0 | +| properties.kt:37:12:37:30 | int publicProp; | properties.kt:37:12:37:30 | publicProp | 0 | +| properties.kt:38:14:38:34 | int internalProp; | properties.kt:38:14:38:34 | internalProp | 0 | +| properties.kt:67:7:67:23 | int constVal; | properties.kt:67:7:67:23 | constVal | 0 | | properties.kt:70:5:70:16 | int prop; | properties.kt:70:5:70:16 | prop | 0 | -| properties.kt:84:5:84:29 | int data; | properties.kt:84:5:84:29 | data | 0 | -| properties.kt:92:5:93:18 | int data; | properties.kt:92:5:93:18 | data | 0 | +| properties.kt:84:13:84:29 | int data; | properties.kt:84:13:84:29 | data | 0 | +| properties.kt:92:13:93:18 | int data; | properties.kt:92:13:93:18 | data | 0 | diff --git a/java/ql/test-kotlin2/library-tests/stmts/PrintAst.expected b/java/ql/test-kotlin2/library-tests/stmts/PrintAst.expected index c97765b3a733..473e06e32310 100644 --- a/java/ql/test-kotlin2/library-tests/stmts/PrintAst.expected +++ b/java/ql/test-kotlin2/library-tests/stmts/PrintAst.expected @@ -97,20 +97,19 @@ stmts.kt: # 23| 0: [LTExpr] ... < ... # 23| 0: [VarAccess] x # 23| 1: [IntegerLiteral] 100 -# 23| 1: [BlockStmt] { ... } -# 24| 0: [BlockStmt] { ... } -# 24| 0: [DoStmt] do ... while (...) -# 26| 0: [GTExpr] ... > ... -# 26| 0: [VarAccess] y -# 26| 1: [IntegerLiteral] 100 -# 24| 1: [BlockStmt] { ... } -# 25| 0: [ExprStmt] ; -# 25| 0: [WhenExpr] when ... -# 25| 0: [WhenBranch] ... -> ... -# 25| 0: [GTExpr] ... > ... -# 25| 0: [VarAccess] x -# 25| 1: [VarAccess] y -# 25| 1: [BreakStmt] break +# 24| 1: [BlockStmt] { ... } +# 24| 0: [DoStmt] do ... while (...) +# 26| 0: [GTExpr] ... > ... +# 26| 0: [VarAccess] y +# 26| 1: [IntegerLiteral] 100 +# 24| 1: [BlockStmt] { ... } +# 25| 0: [ExprStmt] ; +# 25| 0: [WhenExpr] when ... +# 25| 0: [WhenBranch] ... -> ... +# 25| 0: [GTExpr] ... > ... +# 25| 0: [VarAccess] x +# 25| 1: [VarAccess] y +# 25| 1: [BreakStmt] break # 28| 1: [WhileStmt] while (...) # 28| 0: [GTExpr] ... > ... # 28| 0: [VarAccess] x @@ -137,20 +136,19 @@ stmts.kt: # 35| 1: [MethodCall] rangeTo(...) # 35| -1: [VarAccess] x # 35| 0: [VarAccess] y -# 35| 2: [BlockStmt] { ... } -# 36| 0: [BlockStmt] { ... } -# 36| 0: [DoStmt] do ... while (...) -# 38| 0: [GTExpr] ... > ... -# 38| 0: [VarAccess] y -# 38| 1: [IntegerLiteral] 100 -# 36| 1: [BlockStmt] { ... } -# 37| 0: [ExprStmt] ; -# 37| 0: [WhenExpr] when ... -# 37| 0: [WhenBranch] ... -> ... -# 37| 0: [GTExpr] ... > ... -# 37| 0: [VarAccess] x -# 37| 1: [VarAccess] y -# 37| 1: [BreakStmt] break +# 36| 2: [BlockStmt] { ... } +# 36| 0: [DoStmt] do ... while (...) +# 38| 0: [GTExpr] ... > ... +# 38| 0: [VarAccess] y +# 38| 1: [IntegerLiteral] 100 +# 36| 1: [BlockStmt] { ... } +# 37| 0: [ExprStmt] ; +# 37| 0: [WhenExpr] when ... +# 37| 0: [WhenBranch] ... -> ... +# 37| 0: [GTExpr] ... > ... +# 37| 0: [VarAccess] x +# 37| 1: [VarAccess] y +# 37| 1: [BreakStmt] break # 41| 4: [EnhancedForStmt] for (... : ...) #-----| 0: (Single Local Variable Declaration) # 41| 1: [LocalVariableDeclExpr] diff --git a/java/ql/test-kotlin2/library-tests/stmts/stmts.expected b/java/ql/test-kotlin2/library-tests/stmts/stmts.expected index 62238cbfaefc..c004c4bc0d6f 100644 --- a/java/ql/test-kotlin2/library-tests/stmts/stmts.expected +++ b/java/ql/test-kotlin2/library-tests/stmts/stmts.expected @@ -33,7 +33,6 @@ | stmts.kt:22:27:44:1 | { ... } | BlockStmt | | stmts.kt:23:11:27:5 |